Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Disable use options if libs not available #240

Closed
wants to merge 2 commits into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 33 additions & 13 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -74,27 +74,35 @@ 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()

# 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)
Expand All @@ -103,24 +111,36 @@ 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...")
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)
Expand Down Expand Up @@ -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()

Loading