From 348acbd6eb752a87e15c28fe1ad1cb827eaaadec Mon Sep 17 00:00:00 2001 From: Allison Vacanti Date: Tue, 11 Jan 2022 17:19:55 -0500 Subject: [PATCH] Use experimental/filesystem on GCC. --- cmake/NVBenchConfigTarget.cmake | 5 +++++ nvbench/json_printer.cu | 13 +++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/cmake/NVBenchConfigTarget.cmake b/cmake/NVBenchConfigTarget.cmake index 295feb5..ebb6e4d 100644 --- a/cmake/NVBenchConfigTarget.cmake +++ b/cmake/NVBenchConfigTarget.cmake @@ -63,6 +63,11 @@ else() endif() endif() +# GCC-specific flags +if (CMAKE_CXX_COMPILER_ID STREQUAL GNU) + target_link_libraries(nvbench.build_interface INTERFACE stdc++fs) +endif() + # CUDA-specific flags target_compile_options(nvbench.build_interface INTERFACE $<$:-Xcudafe=--display_error_number> diff --git a/nvbench/json_printer.cu b/nvbench/json_printer.cu index bc4d6ad..7c99f2a 100644 --- a/nvbench/json_printer.cu +++ b/nvbench/json_printer.cu @@ -35,7 +35,6 @@ #include #include -#include #include #include #include @@ -44,6 +43,12 @@ #include #include +#ifdef __GNUC__ +#include +#else +#include +#endif + #if NVBENCH_CPP_DIALECT >= 2020 #include #endif @@ -94,7 +99,7 @@ void write_named_values(JsonNode &node, const nvbench::named_values &values) break; default: - NVBENCH_THROW(std::runtime_error, "Unrecognized value type."); + NVBENCH_THROW(std::runtime_error, "{}", "Unrecognized value type."); } // end switch (value type) } // end foreach value name } @@ -136,7 +141,11 @@ void json_printer::do_process_bulk_data_float64( if (hint == "sample_times") { +#ifdef __GNUC__ + namespace fs = std::experimental::filesystem; +#else namespace fs = std::filesystem; +#endif nvbench::cpu_timer timer; timer.start();