diff --git a/include/settings.hpp.cmake b/include/settings.hpp.cmake index 39aca327..20eb0f95 100644 --- a/include/settings.hpp.cmake +++ b/include/settings.hpp.cmake @@ -4,8 +4,8 @@ #include #include -#define APP_NAME "@PROJECT_NAME@" -#cmakedefine APP_VERSION "@APP_VERSION@" +extern const char* const APP_NAME; +extern const char* const APP_VERSION; #cmakedefine01 ENABLE_ALSA #cmakedefine01 ENABLE_MPD @@ -59,54 +59,20 @@ static const int SINK_PRIORITY_SCREEN{2}; static const int SINK_PRIORITY_TRAY{3}; static const int SINK_PRIORITY_MODULE{4}; -static constexpr const char* ALSA_SOUNDCARD{"@SETTING_ALSA_SOUNDCARD@"}; -static constexpr const char* BSPWM_SOCKET_PATH{"@SETTING_BSPWM_SOCKET_PATH@"}; -static constexpr const char* BSPWM_STATUS_PREFIX{"@SETTING_BSPWM_STATUS_PREFIX@"}; -static constexpr const char* CONNECTION_TEST_IP{"@SETTING_CONNECTION_TEST_IP@"}; -static constexpr const char* PATH_ADAPTER{"@SETTING_PATH_ADAPTER@"}; -static constexpr const char* PATH_BACKLIGHT{"@SETTING_PATH_BACKLIGHT@"}; -static constexpr const char* PATH_BATTERY{"@SETTING_PATH_BATTERY@"}; -static constexpr const char* PATH_CPU_INFO{"@SETTING_PATH_CPU_INFO@"}; -static constexpr const char* PATH_MEMORY_INFO{"@SETTING_PATH_MEMORY_INFO@"}; -static constexpr const char* PATH_MESSAGING_FIFO{"@SETTING_PATH_MESSAGING_FIFO@"}; -static constexpr const char* PATH_TEMPERATURE_INFO{"@SETTING_PATH_TEMPERATURE_INFO@"}; +extern const char* const ALSA_SOUNDCARD; +extern const char* const BSPWM_SOCKET_PATH; +extern const char* const BSPWM_STATUS_PREFIX; +extern const char* const CONNECTION_TEST_IP; +extern const char* const PATH_ADAPTER; +extern const char* const PATH_BACKLIGHT; +extern const char* const PATH_BATTERY; +extern const char* const PATH_CPU_INFO; +extern const char* const PATH_MEMORY_INFO; +extern const char* const PATH_MESSAGING_FIFO; +extern const char* const PATH_TEMPERATURE_INFO; -const auto version_details = [](const std::vector& args) { - for (auto&& arg : args) { - if (arg.compare(0, 3, "-vv") == 0) - return true; - } - return false; -}; +extern bool version_details(const std::vector& args); -// clang-format off -const auto print_build_info = [](bool extended = false) { - printf("%s %s\n\n", APP_NAME, APP_VERSION); - printf("Features: %calsa %ccurl %ci3 %cmpd %cnetwork(%s) %cpulseaudio %cxkeyboard\n", - (ENABLE_ALSA ? '+' : '-'), - (ENABLE_CURL ? '+' : '-'), - (ENABLE_I3 ? '+' : '-'), - (ENABLE_MPD ? '+' : '-'), - (ENABLE_NETWORK ? '+' : '-'), - WIRELESS_LIB, - (ENABLE_PULSEAUDIO ? '+' : '-'), - (ENABLE_XKEYBOARD ? '+' : '-')); - if (extended) { - printf("\n"); - printf("X extensions: %crandr (%cmonitors) %ccomposite %cxkb %cxrm %cxcursor\n", - (WITH_XRANDR ? '+' : '-'), - (WITH_XRANDR_MONITORS ? '+' : '-'), - (WITH_XCOMPOSITE ? '+' : '-'), - (WITH_XKB ? '+' : '-'), - (WITH_XRM ? '+' : '-'), - (WITH_XCURSOR ? '+' : '-')); - printf("\n"); - printf("Build type: @CMAKE_BUILD_TYPE@\n"); - printf("Compiler: @CMAKE_CXX_COMPILER@\n"); - printf("Compiler flags: @CMAKE_CXX_FLAGS@ ${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE_UPPER}}\n"); - printf("Linker flags: @CMAKE_EXE_LINKER_FLAGS@ ${CMAKE_EXE_LINKER_FLAGS_${CMAKE_BUILD_TYPE_UPPER}}\n"); - } -}; -// clang-format on +extern void print_build_info(bool extended = false); // vim:ft=cpp diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5299e3ec..342e2e53 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -7,6 +7,13 @@ file(GLOB_RECURSE files RELATIVE ${CMAKE_CURRENT_LIST_DIR} *.c[p]*) list(REMOVE_ITEM files main.cpp ipc.cpp) +configure_file( + ${CMAKE_CURRENT_LIST_DIR}/settings.cpp.cmake + ${CMAKE_BINARY_DIR}/generated-sources/settings.cpp + ESCAPE_QUOTES) + +list(APPEND files ${CMAKE_BINARY_DIR}/generated-sources/settings.cpp) + if(NOT ENABLE_ALSA) list(REMOVE_ITEM files modules/alsa.cpp) list(REMOVE_ITEM files adapters/alsa/control.cpp) @@ -55,7 +62,6 @@ endif() if(NOT WITH_XCURSOR) list(REMOVE_ITEM files x11/cursor.cpp) endif() - # }}} # Target: polybar {{{ diff --git a/src/settings.cpp.cmake b/src/settings.cpp.cmake new file mode 100644 index 00000000..2b1abb5a --- /dev/null +++ b/src/settings.cpp.cmake @@ -0,0 +1,56 @@ +#include "settings.hpp" + +const char* const APP_NAME{"@PROJECT_NAME@"}; +const char* const APP_VERSION{"@APP_VERSION@"}; + +const char* const ALSA_SOUNDCARD{"@SETTING_ALSA_SOUNDCARD@"}; +const char* const BSPWM_SOCKET_PATH{"@SETTING_BSPWM_SOCKET_PATH@"}; +const char* const BSPWM_STATUS_PREFIX{"@SETTING_BSPWM_STATUS_PREFIX@"}; +const char* const CONNECTION_TEST_IP{"@SETTING_CONNECTION_TEST_IP@"}; +const char* const PATH_ADAPTER{"@SETTING_PATH_ADAPTER@"}; +const char* const PATH_BACKLIGHT{"@SETTING_PATH_BACKLIGHT@"}; +const char* const PATH_BATTERY{"@SETTING_PATH_BATTERY@"}; +const char* const PATH_CPU_INFO{"@SETTING_PATH_CPU_INFO@"}; +const char* const PATH_MEMORY_INFO{"@SETTING_PATH_MEMORY_INFO@"}; +const char* const PATH_MESSAGING_FIFO{"@SETTING_PATH_MESSAGING_FIFO@"}; +const char* const PATH_TEMPERATURE_INFO{"@SETTING_PATH_TEMPERATURE_INFO@"}; + +bool version_details(const std::vector& args) { + for (auto&& arg : args) { + if (arg.compare(0, 3, "-vv") == 0) + return true; + } + return false; +} + +// clang-format off +void print_build_info(bool extended) { + printf("%s %s\n\n", APP_NAME, APP_VERSION); + printf("Features: %calsa %ccurl %ci3 %cmpd %cnetwork(%s) %cpulseaudio %cxkeyboard\n", + (ENABLE_ALSA ? '+' : '-'), + (ENABLE_CURL ? '+' : '-'), + (ENABLE_I3 ? '+' : '-'), + (ENABLE_MPD ? '+' : '-'), + (ENABLE_NETWORK ? '+' : '-'), + WIRELESS_LIB, + (ENABLE_PULSEAUDIO ? '+' : '-'), + (ENABLE_XKEYBOARD ? '+' : '-')); + if (extended) { + printf("\n"); + printf("X extensions: %crandr (%cmonitors) %ccomposite %cxkb %cxrm %cxcursor\n", + (WITH_XRANDR ? '+' : '-'), + (WITH_XRANDR_MONITORS ? '+' : '-'), + (WITH_XCOMPOSITE ? '+' : '-'), + (WITH_XKB ? '+' : '-'), + (WITH_XRM ? '+' : '-'), + (WITH_XCURSOR ? '+' : '-')); + printf("\n"); + printf("Build type: @CMAKE_BUILD_TYPE@\n"); + printf("Compiler: @CMAKE_CXX_COMPILER@\n"); + printf("Compiler flags: @CMAKE_CXX_FLAGS@ ${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE_UPPER}}\n"); + printf("Linker flags: @CMAKE_EXE_LINKER_FLAGS@ ${CMAKE_EXE_LINKER_FLAGS_${CMAKE_BUILD_TYPE_UPPER}}\n"); + } +} +// clang-format on + +// vim:ft=cpp diff --git a/src/utils/http.cpp b/src/utils/http.cpp index aee8d443..ee595435 100644 --- a/src/utils/http.cpp +++ b/src/utils/http.cpp @@ -14,7 +14,7 @@ http_downloader::http_downloader(int connection_timeout) { curl_easy_setopt(m_curl, CURLOPT_CONNECTTIMEOUT, connection_timeout); curl_easy_setopt(m_curl, CURLOPT_FOLLOWLOCATION, true); curl_easy_setopt(m_curl, CURLOPT_NOSIGNAL, true); - curl_easy_setopt(m_curl, CURLOPT_USERAGENT, "polybar/" APP_VERSION); + curl_easy_setopt(m_curl, CURLOPT_USERAGENT, "polybar/" + string{APP_VERSION}); curl_easy_setopt(m_curl, CURLOPT_WRITEFUNCTION, http_downloader::write); curl_easy_setopt(m_curl, CURLOPT_FORBID_REUSE, true); }