From 537e85c57aae75406d2929a066421d585672480a Mon Sep 17 00:00:00 2001 From: Nate Koenig Date: Mon, 13 Mar 2023 22:02:56 -0700 Subject: [PATCH 1/2] Support clang and std::filesystem Signed-off-by: Nate Koenig --- test/test_config.h.in | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/test/test_config.h.in b/test/test_config.h.in index 9d67b46b3..a008ba66b 100644 --- a/test/test_config.h.in +++ b/test/test_config.h.in @@ -31,10 +31,15 @@ #endif #ifndef __APPLE__ - #if __unix__ && __GNUC__ < 8 - #include - #else + #if ((defined(__clang__) && __cplusplus >= 201703L) || \ + (__unix__ && __GNUC__ >= 8)) + #define GZ_STD_FILESYSTEM + #endif + + #ifdef GZ_STD_FILESYSTEM #include + #else + #include #endif #endif @@ -98,10 +103,10 @@ namespace testing // Ugly as hell but trying to avoid boost::filesystem return _str1 + "/" + _str2; #else - #if __unix__ && __GNUC__ < 8 - using namespace std::experimental::filesystem; - #else + #ifdef GZ_STD_FILESYSTEM using namespace std::filesystem; + #else + using namespace std::experimental::filesystem; #endif return (path(_str1) / path(_str2)).string(); #endif From ce80df65541f8a62d651d9cfbad2f892e8fab5c1 Mon Sep 17 00:00:00 2001 From: Nate Koenig Date: Mon, 13 Mar 2023 22:06:10 -0700 Subject: [PATCH 2/2] A bit cleaner Signed-off-by: Nate Koenig --- test/test_config.h.in | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/test/test_config.h.in b/test/test_config.h.in index a008ba66b..80358af4a 100644 --- a/test/test_config.h.in +++ b/test/test_config.h.in @@ -31,15 +31,15 @@ #endif #ifndef __APPLE__ - #if ((defined(__clang__) && __cplusplus >= 201703L) || \ - (__unix__ && __GNUC__ >= 8)) - #define GZ_STD_FILESYSTEM + #if ((defined(__clang__) && __cplusplus < 201703L) || \ + (__unix__ && __GNUC__ < 8)) + #define GZ_EXPERIMENTAL_FILESYSTEM #endif - #ifdef GZ_STD_FILESYSTEM - #include - #else + #ifdef GZ_EXPERIMENTAL_FILESYSTEM #include + #else + #include #endif #endif @@ -103,10 +103,10 @@ namespace testing // Ugly as hell but trying to avoid boost::filesystem return _str1 + "/" + _str2; #else - #ifdef GZ_STD_FILESYSTEM - using namespace std::filesystem; - #else + #ifdef GZ_EXPERIMENTAL_FILESYSTEM using namespace std::experimental::filesystem; + #else + using namespace std::filesystem; #endif return (path(_str1) / path(_str2)).string(); #endif