@@ -15,7 +15,8 @@ FetchContent_MakeAvailable(filesystem)
15
15
add_library (ghc::filesystem ALIAS ghc_filesystem)
16
16
17
17
# Check if we need to link against any special libraries (e.g., stdc++fs for GCC < 9)
18
- cmake_push_check_state()
18
+ set (SAVED_CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} )
19
+ set (SAVED_CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} )
19
20
20
21
set (GHC_FILESYSTEM_TEST_CODE [[
21
22
#include <ghc/fs_std.hpp>
@@ -27,20 +28,17 @@ set(GHC_FILESYSTEM_TEST_CODE [[
27
28
28
29
29
30
# Try to compile a simple filesystem program without any linker flags
30
- set (CMAKE_REQUIRED_QUIET ON )
31
31
list (APPEND CMAKE_REQUIRED_INCLUDES "${filesystem_SOURCE_DIR} /include" )
32
32
check_cxx_source_compiles("${GHC_FILESYSTEM_TEST_CODE} " GHC_FILESYSTEM_NO_LINK_NEEDED)
33
33
34
34
if (NOT GHC_FILESYSTEM_NO_LINK_NEEDED)
35
- set (PREV_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} )
36
-
37
35
# Add the libstdc++ flag
38
- set (CMAKE_REQUIRED_LIBRARIES ${PREV_LIBRARIES } -lstdc++fs)
36
+ set (CMAKE_REQUIRED_LIBRARIES ${SAVED_CMAKE_REQUIRED_LIBRARIES } -lstdc++fs)
39
37
check_cxx_source_compiles("${GHC_FILESYSTEM_TEST_CODE} " GHC_FILESYSTEM_STDCPPFS_NEEDED)
40
38
41
39
if (NOT GHC_FILESYSTEM_STDCPPFS_NEEDED)
42
40
# Try the libc++ flag
43
- set (CMAKE_REQUIRED_LIBRARIES ${PREV_LIBRARIES } -lc++fs)
41
+ set (CMAKE_REQUIRED_LIBRARIES ${SAVED_CMAKE_REQUIRED_LIBRARIES } -lc++fs)
44
42
check_cxx_source_compiles("${GHC_FILESYSTEM_TEST_CODE} " GHC_FILESYSTEM_CPPFS_NEEDED)
45
43
endif ()
46
44
endif ()
61
59
message (FATAL_ERROR "Unable to determine correct linking options to compile GHC filesystem!" )
62
60
endif ()
63
61
64
- cmake_pop_check_state()
62
+ set (CMAKE_REQUIRED_INCLUDES ${SAVED_CMAKE_REQUIRED_INCLUDES} )
63
+ set (CMAKE_REQUIRED_LIBRARIES ${SAVED_CMAKE_REQUIRED_LIBRARIES} )
0 commit comments