diff --git a/include/modules/battery.hpp b/include/modules/battery.hpp index e587ea11..d03584b1 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 7fee420a..2b6b0c5e 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 846580b2..f0472b85 100644 --- a/meson.build +++ b/meson.build @@ -83,6 +83,10 @@ if dbusmenu_gtk.found() ) endif +if get_option('filesystem-experimental') + add_project_arguments('-DFILESYSTEM_EXPERIMENTAL', language: 'cpp') +endif + subdir('protocol') executable( diff --git a/meson_options.txt b/meson_options.txt index 67fa5472..17825ac5 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -2,3 +2,4 @@ option('libnl', type: 'feature', value: 'auto', description: 'Enable libnl suppo option('pulseaudio', type: 'feature', value: 'auto', description: 'Enable support for pulseaudio') option('dbusmenu-gtk', type: 'feature', value: 'auto', description: 'Enable support for tray') option('out', type: 'string', value : '/', description: 'output prefix directory') +option('filesystem-experimental', type: 'boolean', value: 'true', description: 'Does filesystem still live in experimental?') diff --git a/src/modules/sni/sni.cpp b/src/modules/sni/sni.cpp index 48faf6c8..8477091e 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