diff options
Diffstat (limited to '')
| -rw-r--r-- | assets/cpp/CMakeLists.txt | 10 | ||||
| -rw-r--r-- | assets/cpp/version.cpp | 26 |
2 files changed, 36 insertions, 0 deletions
diff --git a/assets/cpp/CMakeLists.txt b/assets/cpp/CMakeLists.txt index ef12370..18beabf 100644 --- a/assets/cpp/CMakeLists.txt +++ b/assets/cpp/CMakeLists.txt @@ -3,6 +3,16 @@ find_package(PkgConfig REQUIRED) pkg_check_modules(PIPEWIRE REQUIRED libpipewire-0.3) pkg_check_modules(AUBIO REQUIRED aubio) +# Version +add_executable(version version.cpp) +target_compile_definitions(version PRIVATE + PROJECT_NAME="${PROJECT_NAME}" + VERSION="${VERSION}" + GIT_REVISION="${GIT_REVISION}" + DISTRIBUTOR="${DISTRIBUTOR}" +) +install(TARGETS version DESTINATION ${INSTALL_LIBDIR}) + # Beat detector add_executable(beat_detector beat-detector.cpp) target_include_directories(beat_detector PRIVATE ${PIPEWIRE_INCLUDE_DIRS} ${AUBIO_INCLUDE_DIRS}) diff --git a/assets/cpp/version.cpp b/assets/cpp/version.cpp new file mode 100644 index 0000000..e1a0cf3 --- /dev/null +++ b/assets/cpp/version.cpp @@ -0,0 +1,26 @@ +#include <iostream> + +int main(int argc, char* argv[]) { + if (argc > 1) { + std::string arg = argv[1]; + + if (arg == "-t" || arg == "--terse") { + std::cout << PROJECT_NAME << std::endl; + std::cout << VERSION << std::endl; + std::cout << GIT_REVISION << std::endl; + std::cout << DISTRIBUTOR << std::endl; + } else if (arg == "-s" || arg == "--short") { + std::cout << PROJECT_NAME << " " << VERSION << ", revision " << GIT_REVISION << ", distrubuted by: " << DISTRIBUTOR << std::endl; + } else { + std::cout << "Usage: " << argv[0] << " [-t | --terse] [-s | --short]" << std::endl; + return arg != "-h" && arg != "--help"; + } + } else { + std::cout << "Project: " << PROJECT_NAME << std::endl; + std::cout << "Version: " << VERSION << std::endl; + std::cout << "Git revision: " << GIT_REVISION << std::endl; + std::cout << "Distributor: " << DISTRIBUTOR << std::endl; + } + + return 0; +} |