diff --git a/config/DefaultFlags.cmake b/config/DefaultFlags.cmake index f8c8d5367..eafe7a409 100644 --- a/config/DefaultFlags.cmake +++ b/config/DefaultFlags.cmake @@ -3,7 +3,6 @@ if(CMAKE_Fortran_COMPILER_ID STREQUAL "GNU") CMAKE_Fortran_FLAGS_INIT "-fimplicit-none" "-ffree-line-length-132" - "-fno-range-check" ) set( CMAKE_Fortran_FLAGS_RELEASE_INIT diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d48975a4e..78270a559 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -94,6 +94,14 @@ set(SRC add_library(${PROJECT_NAME} ${SRC}) +if(CMAKE_Fortran_COMPILER_ID STREQUAL GNU AND CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 10.0) + target_compile_options( + ${PROJECT_NAME} + PRIVATE + $<$:-fno-range-check> + ) +endif() + set(LIB_MOD_DIR ${CMAKE_CURRENT_BINARY_DIR}/mod_files/) # We need the module directory before we finish the configure stage since the # build interface might resolve before the module directory is generated by CMake diff --git a/src/tests/hash_functions/CMakeLists.txt b/src/tests/hash_functions/CMakeLists.txt index db8f9b0fa..eacdd727e 100755 --- a/src/tests/hash_functions/CMakeLists.txt +++ b/src/tests/hash_functions/CMakeLists.txt @@ -1,25 +1,26 @@ #ADDTEST(hash_functions) -set(SRC -nmhash_scalar.c -pengyhash.c -SpookyV2.cpp -SpookyV2Test.cpp -waterhash.c -generate_hash_arrays.cpp -) - enable_language(CXX) enable_language(C) -add_library(libc_hash ${SRC}) - -set(CMAKE_FORTRAN_LINK_EXECUTABLE " -o ") - -add_executable(test_hash_functions test_hash_functions.f90) -target_link_libraries(test_hash_functions "${PROJECT_NAME}" "test-drive::test-drive" "libc_hash") -add_test(NAME hash_functions - COMMAND $ ${CMAKE_CURRENT_BINARY_DIR} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) - -set_target_properties(test_hash_functions PROPERTIES LINKER_LANGUAGE FORTRAN) +ADDTEST(hash_functions) +target_sources( + test_hash_functions + PRIVATE + nmhash_scalar.c + pengyhash.c + SpookyV2.cpp + SpookyV2Test.cpp + waterhash.c + generate_hash_arrays.cpp +) +if(CMAKE_Fortran_COMPILER_ID MATCHES "^Intel") + set_target_properties(test_hash_functions PROPERTIES LINKER_LANGUAGE Fortran) +endif() +if(CMAKE_Fortran_COMPILER_ID STREQUAL GNU AND CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 10.0) + target_compile_options( + test_hash_functions + PRIVATE + $<$:-fno-range-check> + ) +endif() diff --git a/src/tests/hash_functions_perf/CMakeLists.txt b/src/tests/hash_functions_perf/CMakeLists.txt index 459719c32..1c14ccbf8 100755 --- a/src/tests/hash_functions_perf/CMakeLists.txt +++ b/src/tests/hash_functions_perf/CMakeLists.txt @@ -1,2 +1,10 @@ ADDTEST(32_bit_hash_performance) ADDTEST(64_bit_hash_performance) + +if(CMAKE_Fortran_COMPILER_ID STREQUAL GNU AND CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 10.0) + target_compile_options( + test_64_bit_hash_performance + PRIVATE + $<$:-fno-range-check> + ) +endif()