diff --git a/CMakeLists.txt b/CMakeLists.txt index 71c43b56eb83dde30767073a4375a64f8d883746..03894320066b2f06649b9c3e8228d6b4fcea86e0 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 22bca89f702b3c330d8e9cfdf9f2ff7d493f6f4c..ce87f49683bff30ea6f52c4f06e33dc4d1bf135e 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 3d2dc7e693e16780f4b8e4fdcca1d2725de8e272..1f88fe09b84956160e7b52fb11ea0605f0b274a3 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)