From 764ae2a348fe1e830e4bc4d76ef7d8f83826a0c6 Mon Sep 17 00:00:00 2001 From: Aryan Salmanpour Date: Wed, 8 May 2024 15:57:19 -0400 Subject: [PATCH] Fix compilation issues on systems without std::filesystem (#23) --- samples/rocjpeg_samples_utils.h | 9 +++++++++ src/rocjpeg_vaapi_decoder.cpp | 4 ++++ src/rocjpeg_vaapi_decoder.h | 6 +++++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/samples/rocjpeg_samples_utils.h b/samples/rocjpeg_samples_utils.h index 2164d0a898..302e29ad46 100644 --- a/samples/rocjpeg_samples_utils.h +++ b/samples/rocjpeg_samples_utils.h @@ -156,10 +156,19 @@ void RocJpegUtils::ParseCommandLine(std::string &input_path, std::string &output } bool RocJpegUtils::GetFilePaths(std::string &input_path, std::vector &file_paths, bool &is_dir, bool &is_file) { +#if __cplusplus >= 201703L && __has_include() is_dir = std::filesystem::is_directory(input_path); is_file = std::filesystem::is_regular_file(input_path); +#else + is_dir = std::experimental::filesystem::is_directory(input_path); + is_file = std::experimental::filesystem::is_regular_file(input_path); +#endif if (is_dir) { +#if __cplusplus >= 201703L && __has_include() for (const auto &entry : std::filesystem::directory_iterator(input_path)) +#else + for (const auto &entry : std::experimental::filesystem::directory_iterator(input_path)) +#endif file_paths.push_back(entry.path()); } else if (is_file) { file_paths.push_back(input_path); diff --git a/src/rocjpeg_vaapi_decoder.cpp b/src/rocjpeg_vaapi_decoder.cpp index f5e1b14759..6e4bd126c1 100644 --- a/src/rocjpeg_vaapi_decoder.cpp +++ b/src/rocjpeg_vaapi_decoder.cpp @@ -499,7 +499,11 @@ void RocJpegVappiDecoder::GetVisibleDevices(std::vector& visible_devices_ve void RocJpegVappiDecoder::GetCurrentComputePartition(std::vector ¤t_compute_partitions) { std::string search_path = "/sys/devices/"; std::string partition_file = "current_compute_partition"; +#if __cplusplus >= 201703L && __has_include() for (const auto& entry : std::filesystem::recursive_directory_iterator(search_path)) { +#else + for (const auto& entry : std::experimental::filesystem::recursive_directory_iterator(search_path)) { +#endif if (entry.path().filename() == partition_file) { std::ifstream file(entry.path()); if (file.is_open()) { diff --git a/src/rocjpeg_vaapi_decoder.h b/src/rocjpeg_vaapi_decoder.h index 53f9eb29f2..4d6d94cd89 100644 --- a/src/rocjpeg_vaapi_decoder.h +++ b/src/rocjpeg_vaapi_decoder.h @@ -31,7 +31,11 @@ THE SOFTWARE. #include #include #include -#include +#if __cplusplus >= 201703L && __has_include() + #include +#else + #include +#endif #include #include #include