Skip to content

Commit

Permalink
Use std::filesystem only if selected by CMake even if include is present
Browse files Browse the repository at this point in the history
  • Loading branch information
piernov committed Feb 13, 2023
1 parent adf35f7 commit 26bf54e
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 1 deletion.
3 changes: 3 additions & 0 deletions src/CMakeLists.txt
Expand Up @@ -151,17 +151,20 @@ if(((CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "G
message(CHECK_PASS "available")
set(CMAKE_CXX_STANDARD 17)
set(FILESYSTEM_LIBRARIES)
add_definitions(-DWITH_STD_FILESYSTEM)
# Clang 8 requires explicit linking with lc++fs. AppleClang 11.0 is Clang 8.0
elseif((CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 8.0))
#OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 11.0))
message(CHECK_PASS "available")
set(CMAKE_CXX_STANDARD 17)
set(FILESYSTEM_LIBRARIES lc++fs)
add_definitions(-DWITH_STD_FILESYSTEM)
# GCC 8 requires explicit linking with stdc++fs
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 8.0)
message(CHECK_PASS "available")
set(CMAKE_CXX_STANDARD 17)
set(FILESYSTEM_LIBRARIES stdc++fs)
add_definitions(-DWITH_STD_FILESYSTEM)
else() # Other compiler/version are unsupported, use external lib
message(CHECK_FAIL "not available, using ghc::filesystem")
execute_process(
Expand Down
2 changes: 1 addition & 1 deletion src/openboardview/filesystem_impl.h
@@ -1,5 +1,5 @@
// Filesystem fallback to ghc::filesystem if std::filesystem not available
#if __cplusplus >= 201703L && defined(__has_include)
#if __cplusplus >= 201703L && defined(__has_include) && defined(WITH_STD_FILESYSTEM)
#if __has_include(<filesystem>)
#define GHC_USE_STD_FS
#include <filesystem>
Expand Down

0 comments on commit 26bf54e

Please sign in to comment.