From 416a41affeaecf1ac6720fde4bae5d33e5ec3d75 Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Fri, 29 Aug 2025 14:48:38 +1000 Subject: lib: add version script --- assets/cpp/CMakeLists.txt | 10 ++++++++++ assets/cpp/version.cpp | 26 ++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 assets/cpp/version.cpp (limited to 'assets/cpp') 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 + +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; +} -- cgit v1.2.3-freya