From 044a691f4c6cd548f64fcee59f33e1129d0baa02 Mon Sep 17 00:00:00 2001 From: Oliver Heidmann <oliver.heidmann@mpimet.mpg.de> Date: Fri, 16 Aug 2024 10:57:15 +0200 Subject: [PATCH] cmake now working on levante --- CMakeLists.txt | 41 +++++++++++++++++++++++++++-------------- app/CMakeLists.txt | 2 +- src/CMakeLists.txt | 2 ++ 3 files changed, 30 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 71c43b56e..038943200 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,26 +4,39 @@ cmake_minimum_required( VERSION 3.12 FATAL_ERROR ) -project( cdi VERSION 2.4.0 LANGUAGES C ) +project(libcdi VERSION 2.4.0 LANGUAGES C ) set(CMAKE_C_STANDARD 11) +include(CheckIncludeFile) + configure_file ( "${PROJECT_SOURCE_DIR}/cmake/cdi_config.h.in" - "${PROJECT_BINARY_DIR}/config.h" + "${PROJECT_SOURCE_DIR}/src/config.h" ) -include_directories("${PROJECT_BINARY_DIR}") - -list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) - -find_package(NetCDF) +find_package(hdf5 REQUIRED) +if(hdf5_FOUND) + message(STATUS "HDF5 shaed found") +else() + message(FATAL_ERROR "HDF shared not found") +endif() + +#NetCDF +find_package(netCDF COMPONENTS C REQUIRED) +set(netcdf_flag HAVE_LIBNETCDF) +set(netcdf_flag ${HAVE_LIBNETCDF}) +check_include_files("netcdf.h" ${netcdf_flag} C) +if (${netCDF_FOUND}) + message(STATUS "added compile definition HAVE_LIBNETCDF=${netCDF_FOUND}") + add_compile_definitions(HAVE_LIBNETCDF=${netCDF_FOUND}) +else() + message(WARNING "netcdf not found, compiling without netcdf") +endif () -set(HAVE_NETCDF ${netCDF_FOUND} ) -if (netCDF_FOUND) - set(HAVE_NETCDF 1) -endif () +#adding subdirectories +## lib and general files +add_subdirectory(src) +## cdi executable +add_subdirectory(app) -add_subdirectory( src ) -add_subdirectory( app ) -#target_link_libraries(cdi PRIVATE NetCDF) diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index 22bca89f7..ce87f4968 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -7,6 +7,6 @@ target_include_directories(cdi PUBLIC $<INSTALL_INTERFACE:include ) -target_link_libraries(cdi PUBLIC cdilib) +target_link_libraries(cdi PUBLIC cdilib netCDF::netcdf ${HDF5_LIBS} pthread) target_compile_definitions(cdi PUBLIC HAVE_CONFIG_H) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3d2dc7e69..1f88fe09b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -142,5 +142,7 @@ add_library(cdilib ${cdi_src_files} # INSTALL_HEADERS_LIST cdi.h ) +find_package(HDF5 REQUIRED COMPONENTS C REQUIRED) +target_link_libraries(cdilib PUBLIC netCDF::netcdf ${HDF5_LIBS}) target_compile_definitions(cdilib PUBLIC HAVE_CONFIG_H) -- GitLab