Skip to content

Commit

Permalink
Merge pull request #432 from scivision/cmake-exec
Browse files Browse the repository at this point in the history
CMake remove deprecated syntax
  • Loading branch information
WardF authored Mar 11, 2024
2 parents 54a3d84 + 3756c5d commit 624858f
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 62 deletions.
94 changes: 39 additions & 55 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,20 +32,7 @@ SET(PACKAGE_VERSION ${VERSION})

# Set known dependencies.
SET(EXTRA_DEPS "")
# Get system configuration,
# Use it to determine osname,
# os release, cpu. These will be used
# when committing to CDash.
find_program(UNAME NAMES uname)
IF(UNAME)
macro(getuname name flag)
exec_program("${UNAME}" ARGS "${flag}" OUTPUT_VARIABLE "${name}")
endmacro(getuname)
getuname(osname -s)
getuname(osrel -r)
getuname(cpu -m)
set(TMP_BUILDNAME "${osname}-${osrel}-${cpu}" CACHE STRING "Build name variable for CDash")
ENDIF()
set(TMP_BUILDNAME "${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_VERSION}-${CMAKE_SYSTEM_PROCESSOR}" CACHE STRING "Build name variable for CDash")

# For CMAKE_INSTALL_LIBDIR
INCLUDE(GNUInstallDirs)
Expand Down Expand Up @@ -188,13 +175,10 @@ IF(NOT ENABLE_COVERAGE_TESTS)
string(APPEND CMAKE_C_FLAGS " -O2")
ENDIF()


ADD_DEFINITIONS()

# Supress CRT Warnings.
# Only necessary for Windows
IF(MSVC)
ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)
add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
ENDIF()


Expand All @@ -210,7 +194,7 @@ ENDIF()
# Macro to append files to the EXTRA_DIST files.
SET(EXTRA_DIST "")
MACRO(ADD_EXTRA_DIST files)
FOREACH(F ${files})
FOREACH(F IN LISTS files)
list(APPEND EXTRA_DIST ${CMAKE_CURRENT_SOURCE_DIR}/${F})
ENDFOREACH()
SET(EXTRA_DIST ${EXTRA_DIST} PARENT_SCOPE)
Expand Down Expand Up @@ -320,7 +304,7 @@ MACRO(print_conf_summary)

SET(ALL_DEP_LIBS "${NETCDF_C_LIBRARY};${EXTRA_DEPS}")
MESSAGE(STATUS "\tLinking against:\t\t" "${ALL_DEP_LIBS}")
FOREACH(_LIB ${EXTRA_DEPS})
FOREACH(_LIB IN LISTS EXTRA_DEPS)
GET_FILENAME_COMPONENT(_LIB_NAME ${_LIB} NAME_WE)
STRING(REGEX REPLACE "^lib" "" _NAME ${_LIB_NAME})
LIST(APPEND NCF_LIBS "-l${_NAME}")
Expand Down Expand Up @@ -355,13 +339,13 @@ MACRO(specify_static_crt_flag)
CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL
CMAKE_CXX_FLAGS_RELWITHDEBINFO)

FOREACH(flag_var ${vars})
FOREACH(flag_var IN LISTS vars)
IF(${flag_var} MATCHES "/MD")
STRING(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
ENDIF()
ENDFOREACH()

FOREACH(flag_var ${vars})
FOREACH(flag_var IN LISTS vars)
MESSAGE(STATUS " '${flag_var}': ${${flag_var}}")
ENDFOREACH()
MESSAGE(STATUS "")
Expand Down Expand Up @@ -546,26 +530,26 @@ CHECK_INCLUDE_FILE("netcdf.h" HAVE_NETCDF_H)
# End Check for various system header files.
###

ADD_DEFINITIONS(-DNCSHORT_T=integer*2)
ADD_DEFINITIONS(-DNCBYTE_T=byte)
ADD_DEFINITIONS(-DNF_RELAX_COORD_BOUND)
ADD_DEFINITIONS(-DNF_HAS_PARALLEL4)
ADD_DEFINITIONS(-DNF_HAS_PNETCDF)
#ADD_DEFINITIONS(-DENABLE_CDF5)
ADD_DEFINITIONS(-DNF_INT1_IS_C_SIGNED_CHAR)
#ADD_DEFINITIONS(-DNF_INT1_IS_C_SHORT)
#ADD_DEFINITIONS(-DNF_INT1_IS_C_INT)
#ADD_DEFINITIONS(-DNF_INT1_IS_C_LONG)
ADD_DEFINITIONS(-DNF_INT2_IS_C_SHORT)
#ADD_DEFINITIONS(-DNF_INT2_IS_C_INT)
#ADD_DEFINITIONS(-DNF_INT2_IS_C_LONG)
ADD_DEFINITIONS(-DNF_INT_IS_C_INT)
#ADD_DEFINITIONS(-DNF_INT_IS_C_LONG)
ADD_DEFINITIONS(-DNF_INT8_IS_C_LONG_LONG)
ADD_DEFINITIONS(-DNF_REAL_IS_C_FLOAT)
#ADD_DEFINITIONS(-DNF_REAL_IS_C_DOUBLE)
ADD_DEFINITIONS(-DNF_DOUBLEPRECISION_IS_C_DOUBLE)
#ADD_DEFINITIONS(-DNF_DOUBLEPRECISION_IS_C_FLOAT)
add_compile_definitions(NCSHORT_T=integer*2)
add_compile_definitions(NCBYTE_T=byte)
add_compile_definitions(NF_RELAX_COORD_BOUND)
add_compile_definitions(NF_HAS_PARALLEL4)
add_compile_definitions(NF_HAS_PNETCDF)
#add_compile_definitions(ENABLE_CDF5)
add_compile_definitions(NF_INT1_IS_C_SIGNED_CHAR)
#add_compile_definitions(NF_INT1_IS_C_SHORT)
#add_compile_definitions(NF_INT1_IS_C_INT)
#add_compile_definitions(NF_INT1_IS_C_LONG)
add_compile_definitions(NF_INT2_IS_C_SHORT)
#add_compile_definitions(NF_INT2_IS_C_INT)
#add_compile_definitions(NF_INT2_IS_C_LONG)
add_compile_definitions(NF_INT_IS_C_INT)
#add_compile_definitions(NF_INT_IS_C_LONG)
add_compile_definitions(NF_INT8_IS_C_LONG_LONG)
add_compile_definitions(NF_REAL_IS_C_FLOAT)
#add_compile_definitions(NF_REAL_IS_C_DOUBLE)
add_compile_definitions(NF_DOUBLEPRECISION_IS_C_DOUBLE)
#add_compile_definitions(NF_DOUBLEPRECISION_IS_C_FLOAT)

###
# Type checks
Expand Down Expand Up @@ -664,7 +648,7 @@ CHECK_C_SOURCE_COMPILES("
#endif
int main() {return 0;}" HAVE_QUANTIZE)
if (HAVE_QUANTIZE)
ADD_DEFINITIONS(-DNF_HAS_QUANTIZE)
add_compile_definitions(NF_HAS_QUANTIZE)
endif()

CHECK_LIBRARY_EXISTS(${NETCDF_C_LIBRARY} nc_def_var_szip "" HAVE_DEF_VAR_SZIP)
Expand All @@ -687,7 +671,7 @@ endif()

OPTION(DISABLE_ZSTANDARD_PLUGIN "Disable ZStandard plugin detection and functionality, even if libnetcdf was compiled with plugin support" OFF)

IF(NOT DISABLE_ZSTANDARD_PLUGIN)
IF(NOT DISABLE_ZSTANDARD_PLUGIN)
SET(CMAKE_REQUIRED_INCLUDES ${NETCDF_INCLUDE_DIR})
CHECK_C_SOURCE_COMPILES("
#include <netcdf_meta.h>
Expand Down Expand Up @@ -756,12 +740,12 @@ ENDIF(BUILD_DAP)
SET(ENABLE_NETCDF4 OFF)
IF(USE_NETCDF4)
SET(ENABLE_NETCDF4 ON)
ADD_DEFINITIONS(-DUSE_NETCDF4)
add_compile_definitions(USE_NETCDF4)
SET(ENABLE_NETCDF4 ON CACHE BOOL "")
ENDIF()

IF (UNIX AND ${CMAKE_SIZEOF_VOID_P} MATCHES "8")
ADD_DEFINITIONS(-DLONGLONG_IS_LONG)
add_compile_definitions(LONGLONG_IS_LONG)
# for easier debugging of cfortran.h
IF (APPLE)
IF(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
Expand Down Expand Up @@ -795,10 +779,10 @@ try_compile(NF_HAS_PARALLEL4 ${CMAKE_CURRENT_BINARY_DIR}
)

IF(NF_HAS_PARALLEL4)
ADD_DEFINITIONS(-DNF_HAS_PARALLEL4)
add_compile_definitions(NF_HAS_PARALLEL4)
ENDIF()
IF(NF_HAS_PNETCDF)
ADD_DEFINITIONS(-DNF_HAS_PNETCDF)
add_compile_definitions(NF_HAS_PNETCDF)
ENDIF()

IF(NF_HAS_PNETCDF OR NF_HAS_PARALLEL4)
Expand Down Expand Up @@ -826,7 +810,7 @@ try_compile(COMPILE_SUCCESS ${CMAKE_CURRENT_BINARY_DIR}
"${CMAKE_CURRENT_SOURCE_DIR}/CMakeExtras/test_c_ptrdiff_t.f90"
)
IF (COMPILE_SUCCESS)
ADD_DEFINITIONS(-DHAVE_TS29113_SUPPORT)
add_compile_definitions(HAVE_TS29113_SUPPORT)
SET(HAVE_TS29113_SUPPORT TRUE)
ELSE ()
# If the compile fails, PTRDIFF_T is not defined.
Expand All @@ -845,7 +829,7 @@ ELSE ()
IF (SIZEOF_RESULT)
MESSAGE (FATAL_ERROR "UNABLE TO DETERMINE SIZEOF PTRDIFF_T")
ELSE (SIZEOF_RESULT)
ADD_DEFINITIONS(-DSIZEOF_PTRDIFF_T=${SIZEOF_PTRDIFF_T})
add_compile_definitions(SIZEOF_PTRDIFF_T=${SIZEOF_PTRDIFF_T})
ENDIF (SIZEOF_RESULT)
ELSE()
MESSAGE(FATAL_ERROR "Unable to compile ptrdiff")
Expand Down Expand Up @@ -972,7 +956,7 @@ SET(MOD_FLAG -I)
SET(NC_EXTRA_DEPS "" CACHE STRING "Additional libraries to link against.")
IF(NC_EXTRA_DEPS)
STRING(REPLACE " " ";" DEPS_LIST ${NC_EXTRA_DEPS})
FOREACH(_DEP ${DEPS_LIST})
FOREACH(_DEP IN LISTS DEPS_LIST)
STRING(REGEX REPLACE "^-l" "" _LIB ${_DEP})
FIND_LIBRARY("${_LIB}_DEP" NAMES "${_LIB}" "lib${_LIB}")
# MESSAGE(${${_LIB}_DEP})
Expand Down Expand Up @@ -1085,9 +1069,9 @@ print_conf_summary()
# Set variables to mirror those used by autoconf.
# This way we don't need to maintain two separate template
# files.
SET(host_cpu "${cpu}")
SET(host_vendor "${osname}")
SET(host_os "${osrel}")
SET(host_cpu "${CMAKE_SYSTEM_PROCESSOR}")
SET(host_vendor "${CMAKE_SYSTEM_NAME}")
SET(host_os "${CMAKE_SYSTEM_VERSION}")
SET(abs_top_builddir "${CMAKE_CURRENT_BINARY_DIR}")
SET(abs_top_srcdir "${CMAKE_CURRENT_SOURCE_DIR}")

Expand All @@ -1103,7 +1087,7 @@ SET(NC_FLIBS "")

get_target_property(ALL_TLL_LIBS netcdff LINK_LIBRARIES)

FOREACH(_LIB ${ALL_TLL_LIBS})
FOREACH(_LIB IN LISTS ALL_TLL_LIBS)
GET_FILENAME_COMPONENT(_LIB_NAME ${_LIB} NAME_WE)
STRING(REGEX REPLACE "^lib" "" _NAME ${_LIB_NAME})
LIST(APPEND NC_FLIBS "-l${_NAME}")
Expand Down
2 changes: 1 addition & 1 deletion nf03_test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ SET(tst_fill_int64_SOURCES tst_fill_int64.F90)
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/fortran ${CMAKE_SOURCE_DIR}/libsrc ${CMAKE_SOURCE_DIR}
${CMAKE_CPP_FLAGS} ${NETCDF_C_INCLUDE_DIR})
LINK_DIRECTORIES(${CMAKE_SOURCE_DIR}/fortran ${CMAKE_SOURCE_DIR}/libsrc)
FOREACH(t ${TESTS})
FOREACH(t IN LISTS TESTS)
ADD_EXECUTABLE(${t} ${${t}_SOURCES})
TARGET_LINK_LIBRARIES(${t} netcdff)
ADD_TEST(${t} ${t})
Expand Down
4 changes: 2 additions & 2 deletions nf03_test4/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ if (USE_NETCDF4)
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/run_f90_par_test.sh.in"
"${CMAKE_CURRENT_SOURCE_DIR}/run_f90_par_test.sh"
@ONLY)
FILE(COPY "${CMAKE_CURRENT_SOURCE_DIR}/run_f90_par_test.sh"
FILE(COPY "${CMAKE_CURRENT_SOURCE_DIR}/run_f90_par_test.sh"
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE)

Expand Down Expand Up @@ -74,7 +74,7 @@ if (USE_NETCDF4)
endif(USE_NETCDF4)

# Create pre-compiled tests.
FOREACH(t ${TESTS})
FOREACH(t IN LISTS TESTS)
ADD_EXECUTABLE(${t} ${${t}_SOURCES})
TARGET_LINK_LIBRARIES(${t} netcdff)
ADD_TEST(${t} ${t})
Expand Down
6 changes: 3 additions & 3 deletions nf_test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ SET(CMAKE_INCLUDE_CURRENT_DIR ON)

# Process these files with m4.
SET(m4_SOURCES test_get test_put)
foreach (f ${m4_SOURCES})
foreach (f IN LISTS m4_SOURCES)
GEN_m4(${f})
endforeach(f)

Expand Down Expand Up @@ -57,7 +57,7 @@ LINK_DIRECTORIES(${CMAKE_SOURCE_DIR}/fortran ${CMAKE_SOURCE_DIR}/libsrc

# Create pre-compiled tests.
message ("Create pre-compiled tests.")
FOREACH(t ${TESTS})
FOREACH(t IN LISTS TESTS)
ADD_EXECUTABLE(${t} ${${t}_SOURCES})
message(" " ${t} " C_SOURCES: " ${${t}_C_SOURCES})
IF(${t}_C_SOURCES)
Expand All @@ -78,7 +78,7 @@ FILE(COPY ${COPY_FILES}
FILE_PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE)

# Add script-based tests.
FOREACH(t ${SCRIPT_TESTS})
FOREACH(t IN LISTS SCRIPT_TESTS)
add_sh_test(nf_test ${t})
ENDFOREACH()

Expand Down
2 changes: 1 addition & 1 deletion nf_test4/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ IF (HAVE_SZIP_WRITE)
ENDIF()

# Create pre-compiled tests.
FOREACH(t ${TESTS})
FOREACH(t IN LISTS TESTS)
ADD_EXECUTABLE(${t} ${${t}_SOURCES})
TARGET_LINK_LIBRARIES(${t} netcdff)
ADD_TEST(${t} ${t})
Expand Down

0 comments on commit 624858f

Please sign in to comment.