From 6ab19a917322f6026ac44b3d3e66d69415fa75d4 Mon Sep 17 00:00:00 2001
From: Michael Kuron <m.kuron@gmx.de>
Date: Tue, 4 May 2021 10:27:00 +0200
Subject: [PATCH] Actually execute TestStdFilesystem

---
 CMakeLists.txt              | 6 +++++-
 cmake/TestStdFilesystem.cpp | 4 ----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index f3ff04c9e..74cac38d2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -475,8 +475,12 @@ endif()
 ############################################################################################################################
 
 try_compile( WALBERLA_USE_STD_FILESYSTEM "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/TestStdFilesystem.cpp"
-             COMPILE_DEFINITIONS -DWALBERLA_USE_STD_FILESYSTEM )
+             COMPILE_DEFINITIONS -DWALBERLA_USE_STD_FILESYSTEM COPY_FILE "${CMAKE_CURRENT_BINARY_DIR}/TestStdFilesystem" )
 if( WALBERLA_USE_STD_FILESYSTEM )
+  # detect https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90050 by checking whether it segfaults
+  execute_process( COMMAND "${CMAKE_CURRENT_BINARY_DIR}/TestStdFilesystem" RESULT_VARIABLE WALBERLA_STD_FILESYSTEM_WORKS )
+endif()
+if( WALBERLA_USE_STD_FILESYSTEM AND WALBERLA_STD_FILESYSTEM_WORKS EQUAL 0 )
    message( STATUS "Found std::filesystem")
 else()
    try_compile( WALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/TestStdFilesystem.cpp"
diff --git a/cmake/TestStdFilesystem.cpp b/cmake/TestStdFilesystem.cpp
index 079e23582..1caf5057d 100644
--- a/cmake/TestStdFilesystem.cpp
+++ b/cmake/TestStdFilesystem.cpp
@@ -5,10 +5,6 @@
 #include <experimental/filesystem>
 #endif
 
-#if defined(WALBERLA_USE_STD_FILESYSTEM) && defined(__GLIBCXX__) && (!defined(_GLIBCXX_RELEASE) || _GLIBCXX_RELEASE < 9)
-#error "std:filesystem broken due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90050"
-#endif
-
 int main() {
 #if defined(WALBERLA_USE_STD_FILESYSTEM)
    std::filesystem::path p("/tmp/test.txt");
-- 
GitLab