From a4c9e44d741b19a752c04d372152be1d7ad8ee46 Mon Sep 17 00:00:00 2001 From: dengwirda Date: Thu, 14 Aug 2025 00:21:04 +1000 Subject: [PATCH 1/2] Allow user-defined paths to NetCDF + OpenMP libs --- src/CMakeLists.txt | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 16922f2..016c607 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -59,7 +59,13 @@ endif () # try to find netcdf support -find_library (NETCDF_LIBRARY NAMES netcdf) +if (DEFINED NETCDF_USER_PATH) + message (STATUS "Testing user NetCDF path") + find_library (NETCDF_LIBRARY NAMES netcdf + PATHS ${NETCDF_USER_PATH} NO_DEFAULT_PATH) +else () + find_library (NETCDF_LIBRARY NAMES netcdf) +endif () if (NETCDF_LIBRARY) message (STATUS "NetCDF library found") @@ -70,7 +76,13 @@ endif () # try to find openmp support -find_package (OpenMP) +if (DEFINED OPENMP_USER_PATH) + message (STATUS "Testing user OpenMP path") + find_package (OpenMP + PATHS ${OPENMP_USER_PATH} NO_DEFAULT_PATH) +else () + find_package (OpenMP) +endif () if (OpenMP_CXX_FOUND AND (OpenMP_CXX_VERSION LESS 3)) set (OpenMP_CXX_FOUND FALSE) From e2d9a884454dae3c231d071bc58f85ef3b333bc2 Mon Sep 17 00:00:00 2001 From: dengwirda Date: Fri, 15 Aug 2025 07:37:42 +1000 Subject: [PATCH 2/2] Use OPENMP_USER_PATH to set OpenMP__INCLUDE_DIR - This appears to direct CMAKE's find_package (OpenMP) to detect a non-system installation --- src/CMakeLists.txt | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 016c607..abfaf75 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -4,9 +4,15 @@ function (cfg_compile_options OPT CFG) endfunction () include (CheckCXXCompilerFlag) +include (CheckIPOSupported) set (CMAKE_CXX_STANDARD 17) -set (CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) + +check_ipo_supported (RESULT IPO OUTPUT IPO_ERR LANGUAGES C CXX) + +if (IPO) + set (CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) +endif () if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR @@ -78,8 +84,9 @@ endif () if (DEFINED OPENMP_USER_PATH) message (STATUS "Testing user OpenMP path") - find_package (OpenMP - PATHS ${OPENMP_USER_PATH} NO_DEFAULT_PATH) + set ( OpenMP_C_INCLUDE_DIR ${OPENMP_USER_PATH}) + set (OpenMP_CXX_INCLUDE_DIR ${OPENMP_USER_PATH}) + find_package (OpenMP) else () find_package (OpenMP) endif () @@ -92,6 +99,7 @@ endif () if (OpenMP_CXX_FOUND) message (STATUS "OpenMP library found") message (STATUS "OpenMP inc. lib: ${OpenMP_CXX_LIB_NAMES}") + message (STATUS "OpenMP inc. lib: ${OpenMP_CXX_LIBRARIES}") else () message (STATUS "OpenMP library not found") endif ()