diff --git a/CMakeLists.txt b/CMakeLists.txt index 177abeae..5f4058fc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -74,12 +74,12 @@ elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$") endif() message(STATUS "Checking if user wants to use NCEPLIBS-g2c...") -if(USE_G2CLIB) - if(USE_PNG) +if(USE_G2CLIB) + if(USE_PNG) message(FATAL_ERROR "If USE_G2CLIB is on, USE_PNG must be off") endif() - if(USE_JASPER) + if(USE_JASPER) message(FATAL_ERROR "If USE_G2CLIB is on, USE_JASPER must be off") endif() endif() @@ -87,14 +87,22 @@ endif() # If user wants to use NCEPLIBS-ip, find it and the sp library. message(STATUS "Checking if the user want to use NCEPLIBS-ip...") if(USE_IPOLATES) - find_package(ip 5.1.0 CONFIG REQUIRED) - list(APPEND definitions_list -DIPOLATES_LIB="ipolates_lib_d") - # list(APPEND definitions_list -DUSE_IPOLATES) + find_package(ip 5.1.0 CONFIG) + if (ip_FOUND) + list(APPEND definitions_list -DIPOLATES_LIB="ipolates_lib_d") + else() + message(STATUS "NCEPLIBS-ip not found, USE_IPOLATES set to off") + set(USE_IPOLATES off) + endif() endif() message(STATUS "Checking if the user want to use NetCDF...") if(USE_NETCDF) - find_package(NetCDF MODULE REQUIRED COMPONENTS C) + find_package(NetCDF MODULE COMPONENTS C) + if (NOT NETCDF_FOUND) + set(USE_NETCDF off) + message(STATUS "NetCDF libs not found, USE_NETCDF set to off") + endif() endif() if(USE_OPENJPEG AND USE_JASPER) @@ -103,17 +111,26 @@ endif() message(STATUS "Checking if the user wants to use Jasper...") if(USE_JASPER) - list(APPEND definitions_list -DUSE_JASPER) - find_package(Jasper REQUIRED) - if(JASPER_VERSION_STRING VERSION_GREATER_EQUAL "1.900.25") - list(APPEND definitions_list -DJAS_VERSION_MAJOR=2) + find_package(Jasper) + if(JASPER_FOUND) + list(APPEND definitions_list -DUSE_JASPER) + if(JASPER_VERSION_STRING VERSION_GREATER_EQUAL "1.900.25") + list(APPEND definitions_list -DJAS_VERSION_MAJOR=2) + endif() + else() + message(STATUS "Jasper not found, USE_JASPER set to off") + set(USE_JASPER off) endif() endif() # Find required packages to use OpenJPEG message(STATUS "Checking if the user wants to use OpenJPEG...") if(USE_OPENJPEG) - find_package(OpenJPEG REQUIRED) + find_package(OpenJPEG) + if(NOT USE_OPENJPEG) + message(STATUS "OpenJSON not found, USE_OPENJPEG set to off") + set(USE_OPENJPEG off) + endif() endif() message(STATUS "Checking if the user want to use OpenMP...") @@ -121,6 +138,9 @@ if(USE_OPENMP) find_package(OpenMP) if(OpenMP_CXX_FOUND) target_link_libraries(MyTarget PUBLIC OpenMP::OpenMP_CXX) + else() + message(STATUS "OpenMP not found, USE_OPENMP set to off") + set(USE_OPENMP off) endif() # if(OpenMP_Fortran_FOUND) # target_link_libraries(MyTarget PUBLIC OpenMP::OpenMP_Fortran) @@ -195,6 +215,6 @@ endif() # Determine whether or not to generate documentation. if(ENABLE_DOCS) find_package(Doxygen REQUIRED) - add_subdirectory(docs) + add_subdirectory(docs) endif()