diff --git a/include/modules/battery.hpp b/include/modules/battery.hpp index 50df78d..3974b01 100644 --- a/include/modules/battery.hpp +++ b/include/modules/battery.hpp @@ -1,6 +1,10 @@ #pragma once -#include +#ifdef FILESYSTEM_EXPERIMENTAL + #include +#else + #include +#endif #include #include #include @@ -11,7 +15,11 @@ namespace waybar::modules { +#ifdef FILESYSTEM_EXPERIMENTAL +namespace fs = std::experimental::filesystem; +#else namespace fs = std::filesystem; +#endif class Battery : public ALabel { public: diff --git a/include/modules/sni/sni.hpp b/include/modules/sni/sni.hpp index 7fee420..2b6b0c5 100644 --- a/include/modules/sni/sni.hpp +++ b/include/modules/sni/sni.hpp @@ -3,7 +3,11 @@ #include #include #include -#include +#ifdef FILESYSTEM_EXPERIMENTAL + #include +#else + #include +#endif namespace waybar::modules::SNI { diff --git a/meson.build b/meson.build index 846580b..713ecd2 100644 --- a/meson.build +++ b/meson.build @@ -83,6 +83,12 @@ if dbusmenu_gtk.found() ) endif +compiler = meson.get_compiler('cpp') + +if not compiler.has_header('filesystem') + add_project_arguments('-DFILESYSTEM_EXPERIMENTAL', language: 'cpp') +endif + subdir('protocol') executable( diff --git a/src/modules/sni/sni.cpp b/src/modules/sni/sni.cpp index 48faf6c..8477091 100644 --- a/src/modules/sni/sni.cpp +++ b/src/modules/sni/sni.cpp @@ -190,7 +190,11 @@ void waybar::modules::SNI::Item::updateImage() if (!icon_name.empty()) { try { // Try to find icons specified by path and filename +#ifdef FILESYSTEM_EXPERIMENTAL + if (std::experimental::filesystem::exists(icon_name)) { +#else if (std::filesystem::exists(icon_name)) { +#endif auto pixbuf = Gdk::Pixbuf::create_from_file(icon_name); if (pixbuf->gobj() != nullptr) { // An icon specified by path and filename may be the wrong size for