diff --git a/cmake/modules/3rdParty.cmake b/cmake/modules/3rdParty.cmake index c991a13..49eca3c 100644 --- a/cmake/modules/3rdParty.cmake +++ b/cmake/modules/3rdParty.cmake @@ -6,6 +6,7 @@ if (DEFINED THIRD_PARTY_MODULE_LOADED) endif () set(THIRD_PARTY_MODULE_LOADED YES) +cmake_policy(SET CMP0067 NEW) # make check_cxx_source_compiles() pick up the variables for the C++ version include(CheckCXXSourceCompiles) macro (save_default_library_suffixes) @@ -328,6 +329,10 @@ function (use_standard_filesystem) # parse and validate arguments parse_arguments_for_use_functions(${ARGN}) + # set c++ standard for `check_cxx_source_compiles()` + set(CMAKE_CXX_STANDARD 17) + set(CMAKE_CXX_STANDARD_REQUIRED 17) + # check whether an additional library for std::filesystem support is required set(TEST_PROGRAM [[ @@ -343,15 +348,14 @@ function (use_standard_filesystem) } ]]) set(DEFAULT_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}) - set(CMAKE_REQUIRED_FLAGS -std=c++17) set(REQUIRED_LIBRARY FAILED) set(INDEX 0) foreach (LIBRARY "" "stdc++fs" "c++fs") if (NOT LIBRARY STREQUAL "") set(CMAKE_REQUIRED_LIBRARIES ${DEFAULT_REQUIRED_LIBRARIES} -l${LIBRARY}) endif () - check_cxx_source_compiles("${TEST_PROGRAM}" COULD_COMPILE_TEST_PROGRAM_${INDEX}) - if (COULD_COMPILE_TEST_PROGRAM_${INDEX}) + check_cxx_source_compiles("${TEST_PROGRAM}" STD_FILESYSTEM_TEST_${INDEX}) + if (STD_FILESYSTEM_TEST_${INDEX}) set(REQUIRED_LIBRARY "${LIBRARY}") break() endif ()