Move filesystem out of experimental namespace
This fix is needed for gcc8. Also fix out of tree build
warning looking for sdbusplus instead of sdbusplus-project.
Change-Id: I2a476ddc9e26154fed23d3992016a6e1056f7a12
Signed-off-by: James Feist <james.feist@linux.intel.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ee70413..a31dda5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -106,24 +106,24 @@
include_directories (${CMAKE_CURRENT_SOURCE_DIR}/include)
add_executable (fansensor src/FanMain.cpp ${FAN_SRC_FILES})
-add_dependencies (fansensor sdbusplus)
+add_dependencies (fansensor sdbusplus-project)
target_link_libraries (fansensor ${SENSOR_LINK_LIBS})
add_executable (hwmontempsensor src/HwmonTempMain.cpp ${HWMON_TEMP_SRC_FILES})
-add_dependencies (hwmontempsensor sdbusplus)
+add_dependencies (hwmontempsensor sdbusplus-project)
target_link_libraries (hwmontempsensor ${SENSOR_LINK_LIBS})
add_executable (cpusensor src/CPUSensorMain.cpp ${CPU_SRC_FILES})
-add_dependencies (cpusensor sdbusplus)
+add_dependencies (cpusensor sdbusplus-project)
target_link_libraries (cpusensor ${SENSOR_LINK_LIBS})
add_executable (adcsensor src/ADCSensorMain.cpp ${ADC_SRC_FILES})
-add_dependencies (adcsensor sdbusplus)
+add_dependencies (adcsensor sdbusplus-project)
target_link_libraries (adcsensor ${SENSOR_LINK_LIBS})
add_executable (exitairtempsensor src/ExitAirTempSensor.cpp
${EXIT_AIR_SRC_FILES})
-add_dependencies (exitairtempsensor sdbusplus)
+add_dependencies (exitairtempsensor sdbusplus-project)
target_link_libraries (exitairtempsensor ${SENSOR_LINK_LIBS})
if (NOT YOCTO)
diff --git a/include/Utils.hpp b/include/Utils.hpp
index 933d5f6..006c2bc 100644
--- a/include/Utils.hpp
+++ b/include/Utils.hpp
@@ -1,8 +1,8 @@
#pragma once
#include "VariantVisitors.hpp"
+#include "filesystem.hpp"
#include <boost/container/flat_map.hpp>
-#include <experimental/filesystem>
#include <iostream>
#include <regex>
#include <sdbusplus/asio/connection.hpp>
@@ -30,9 +30,9 @@
std::pair<std::string,
boost::container::flat_map<std::string, BasicVariantType>>;
-bool findFiles(const std::experimental::filesystem::path dirPath,
+bool findFiles(const std::filesystem::path dirPath,
const std::string& matchString,
- std::vector<std::experimental::filesystem::path>& foundPaths,
+ std::vector<std::filesystem::path>& foundPaths,
unsigned int symlinkDepth = 1);
bool isPowerOn(void);
void setupPowerMatch(const std::shared_ptr<sdbusplus::asio::connection>& conn);
diff --git a/include/filesystem.hpp b/include/filesystem.hpp
new file mode 100644
index 0000000..ead619e
--- /dev/null
+++ b/include/filesystem.hpp
@@ -0,0 +1,14 @@
+// this file splices filesystem in depending on the implementation
+
+#if __has_include(<filesystem>)
+#include <filesystem.hpp>
+#elif __has_include(<experimental/filesystem>)
+#include <experimental/filesystem>
+namespace std
+{
+// splice experimental::filesystem into std
+namespace filesystem = std::experimental::filesystem;
+} // namespace std
+#else
+#error filesystem not available
+#endif
\ No newline at end of file
diff --git a/src/ADCSensorMain.cpp b/src/ADCSensorMain.cpp
index 8bd28b9..dbbaf75 100644
--- a/src/ADCSensorMain.cpp
+++ b/src/ADCSensorMain.cpp
@@ -14,13 +14,14 @@
// limitations under the License.
*/
+#include "filesystem.hpp"
+
#include <ADCSensor.hpp>
#include <Utils.hpp>
#include <VariantVisitors.hpp>
#include <boost/algorithm/string/predicate.hpp>
#include <boost/algorithm/string/replace.hpp>
#include <boost/container/flat_set.hpp>
-#include <experimental/filesystem>
#include <fstream>
#include <regex>
#include <sdbusplus/asio/connection.hpp>
@@ -28,7 +29,7 @@
static constexpr bool DEBUG = false;
-namespace fs = std::experimental::filesystem;
+namespace fs = std::filesystem;
namespace variant_ns = sdbusplus::message::variant_ns;
static constexpr std::array<const char*, 1> sensorTypes = {
"xyz.openbmc_project.Configuration.ADC"};
diff --git a/src/CPUSensorMain.cpp b/src/CPUSensorMain.cpp
index 0ea131b..dcfb27a 100644
--- a/src/CPUSensorMain.cpp
+++ b/src/CPUSensorMain.cpp
@@ -14,6 +14,8 @@
// limitations under the License.
*/
+#include "filesystem.hpp"
+
#include <fcntl.h>
#include <CPUSensor.hpp>
@@ -24,7 +26,6 @@
#include <boost/container/flat_set.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/process/child.hpp>
-#include <experimental/filesystem>
#include <fstream>
#include <regex>
#include <sdbusplus/asio/connection.hpp>
@@ -66,7 +67,7 @@
static constexpr const char* peciDev = "/dev/peci-";
static constexpr const unsigned int rankNumMax = 8;
-namespace fs = std::experimental::filesystem;
+namespace fs = std::filesystem;
namespace variant_ns = sdbusplus::message::variant_ns;
static constexpr const char* configPrefix =
"xyz.openbmc_project.Configuration.";
@@ -328,12 +329,11 @@
std::string parameters = "peci-client 0x" + addrHexStr;
std::string device = "/sys/bus/peci/devices/peci-" + busStr + "/new_device";
- std::experimental::filesystem::path devicePath(device);
+ std::filesystem::path devicePath(device);
const std::string& dir = devicePath.parent_path().string();
- for (const auto& path :
- std::experimental::filesystem::directory_iterator(dir))
+ for (const auto& path : std::filesystem::directory_iterator(dir))
{
- if (!std::experimental::filesystem::is_directory(path))
+ if (!std::filesystem::is_directory(path))
{
continue;
}
diff --git a/src/FanMain.cpp b/src/FanMain.cpp
index 121621d..fd5e7af 100644
--- a/src/FanMain.cpp
+++ b/src/FanMain.cpp
@@ -14,6 +14,8 @@
// limitations under the License.
*/
+#include "filesystem.hpp"
+
#include <PwmSensor.hpp>
#include <TachSensor.hpp>
#include <Utils.hpp>
@@ -22,7 +24,6 @@
#include <boost/algorithm/string/replace.hpp>
#include <boost/container/flat_set.hpp>
#include <boost/lexical_cast.hpp>
-#include <experimental/filesystem>
#include <fstream>
#include <regex>
#include <sdbusplus/asio/connection.hpp>
@@ -30,7 +31,7 @@
static constexpr bool DEBUG = false;
-namespace fs = std::experimental::filesystem;
+namespace fs = std::filesystem;
namespace variant_ns = sdbusplus::message::variant_ns;
static constexpr std::array<const char*, 2> sensorTypes = {
"xyz.openbmc_project.Configuration.AspeedFan",
diff --git a/src/HwmonTempMain.cpp b/src/HwmonTempMain.cpp
index 70fbb75..0a19636 100644
--- a/src/HwmonTempMain.cpp
+++ b/src/HwmonTempMain.cpp
@@ -14,12 +14,13 @@
// limitations under the License.
*/
+#include "filesystem.hpp"
+
#include <HwmonTempSensor.hpp>
#include <Utils.hpp>
#include <boost/algorithm/string/predicate.hpp>
#include <boost/algorithm/string/replace.hpp>
#include <boost/container/flat_set.hpp>
-#include <experimental/filesystem>
#include <fstream>
#include <regex>
#include <sdbusplus/asio/connection.hpp>
@@ -27,7 +28,7 @@
static constexpr bool DEBUG = false;
-namespace fs = std::experimental::filesystem;
+namespace fs = std::filesystem;
static constexpr std::array<const char*, 2> sensorTypes = {
"xyz.openbmc_project.Configuration.TMP75",
"xyz.openbmc_project.Configuration.TMP421"};
diff --git a/src/Utils.cpp b/src/Utils.cpp
index c52f88f..1a4210d 100644
--- a/src/Utils.cpp
+++ b/src/Utils.cpp
@@ -14,15 +14,16 @@
// limitations under the License.
*/
+#include "filesystem.hpp"
+
#include <Utils.hpp>
#include <boost/algorithm/string/predicate.hpp>
-#include <experimental/filesystem>
#include <fstream>
#include <regex>
#include <sdbusplus/asio/connection.hpp>
#include <sdbusplus/bus/match.hpp>
-namespace fs = std::experimental::filesystem;
+namespace fs = std::filesystem;
const static constexpr char* powerInterfaceName =
"xyz.openbmc_project.Chassis.Control.Power";
const static constexpr char* powerObjectName =