diff --git a/standalone/CMakeLists.txt b/standalone/CMakeLists.txt index 19a4993..1af3b65 100644 --- a/standalone/CMakeLists.txt +++ b/standalone/CMakeLists.txt @@ -38,3 +38,4 @@ set_target_properties(GreeterStandalone PROPERTIES ) target_link_libraries(GreeterStandalone Greeter cxxopts) +target_compile_definitions(GreeterStandalone PRIVATE -DGREETER_VERSION=\"${Greeter_VERSION}\") diff --git a/standalone/source/main.cpp b/standalone/source/main.cpp index 70460ef..796b9d4 100644 --- a/standalone/source/main.cpp +++ b/standalone/source/main.cpp @@ -21,6 +21,7 @@ int main(int argc, char** argv) { // clang-format off options.add_options() ("h,help", "Show help") + ("v,version", "Print the current version") ("n,name", "Name to greet", cxxopts::value(name)->default_value("World")) ("l,lang", "Language code to use", cxxopts::value(language)->default_value("en")) ; @@ -31,11 +32,14 @@ int main(int argc, char** argv) { if (result["help"].as()) { std::cout << options.help() << std::endl; return 0; + } else if (result["version"].as()) { + std::cout << "Greeter " << GREETER_VERSION << std::endl; + return 0; } auto langIt = languages.find(language); if (langIt == languages.end()) { - std::cout << "unknown language code: " << language << std::endl; + std::cerr << "unknown language code: " << language << std::endl; return 1; }