Add --version to cli
This commit is contained in:
parent
b2b87c7459
commit
2a7eab3170
3 changed files with 36 additions and 4 deletions
|
@ -1,3 +1,8 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define APP_NAME "@APP_NAME@"
|
#define PROJECT_NAME "@PROJECT_NAME@"
|
||||||
|
#define PROJECT_VERSION_MAJOR @PROJECT_VERSION_MAJOR@
|
||||||
|
#define PROJECT_VERSION_MINOR @PROJECT_VERSION_MINOR@
|
||||||
|
#define PROJECT_VERSION_PATCH @PROJECT_VERSION_PATCH@
|
||||||
|
#define COMPILER_NAME "@COMPILER_NAME@"
|
||||||
|
#define COMPILER_VERSION "@COMPILER_VERSION@"
|
||||||
|
|
|
@ -4,13 +4,27 @@
|
||||||
#include <cxxopts.hpp>
|
#include <cxxopts.hpp>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
#if !defined(STRINGIZE)
|
||||||
|
# define STRINGIZE_IMPL(s) #s
|
||||||
|
# define STRINGIZE(s) STRINGIZE_IMPL(s)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
constexpr const char* project_ver() {
|
||||||
|
return STRINGIZE(PROJECT_VERSION_MAJOR) "."
|
||||||
|
STRINGIZE(PROJECT_VERSION_MINOR) "."
|
||||||
|
STRINGIZE(PROJECT_VERSION_PATCH);
|
||||||
|
}
|
||||||
|
} //unnamed namespace
|
||||||
|
|
||||||
int main(int argc, char* argv[]) {
|
int main(int argc, char* argv[]) {
|
||||||
using mc::MemoryCard;
|
using mc::MemoryCard;
|
||||||
using std::string;
|
using std::string;
|
||||||
|
|
||||||
cxxopts::Options options(APP_NAME, "PSX memory card inspector");
|
cxxopts::Options options(PROJECT_NAME, "PSX memory card inspector");
|
||||||
options.add_options()
|
options.add_options()
|
||||||
("h,help", "Show this help and quit")
|
("h,help", "Show this help and quit")
|
||||||
|
("version", "Print version info")
|
||||||
("i,input", "Path to the input memory card file", cxxopts::value<string>()->default_value(""))
|
("i,input", "Path to the input memory card file", cxxopts::value<string>()->default_value(""))
|
||||||
;
|
;
|
||||||
auto command = options.parse(argc, argv);
|
auto command = options.parse(argc, argv);
|
||||||
|
@ -20,6 +34,13 @@ int main(int argc, char* argv[]) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (command.count("version")) {
|
||||||
|
std::cout << PROJECT_NAME << " v" << project_ver()
|
||||||
|
<< " built with " COMPILER_NAME " " COMPILER_VERSION
|
||||||
|
<< std::endl;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
std::string mc_path = command["input"].as<string>();
|
std::string mc_path = command["input"].as<string>();
|
||||||
if (mc_path.empty()) {
|
if (mc_path.empty()) {
|
||||||
std::cerr << "No input memory card specified, run with --help for usage\n";
|
std::cerr << "No input memory card specified, run with --help for usage\n";
|
||||||
|
|
|
@ -1,7 +1,13 @@
|
||||||
#add_project_link_arguments(['-lstdc++fs'], language: 'cpp')
|
cpp = meson.get_compiler('cpp')
|
||||||
|
|
||||||
conf = configuration_data()
|
conf = configuration_data()
|
||||||
conf.set('APP_NAME', meson.project_name())
|
version_arr = meson.project_version().split('.')
|
||||||
|
conf.set('PROJECT_NAME', meson.project_name())
|
||||||
|
conf.set('PROJECT_VERSION_MAJOR', version_arr[0])
|
||||||
|
conf.set('PROJECT_VERSION_MINOR', version_arr[1])
|
||||||
|
conf.set('PROJECT_VERSION_PATCH', version_arr[2])
|
||||||
|
conf.set('COMPILER_NAME', cpp.get_id())
|
||||||
|
conf.set('COMPILER_VERSION', cpp.version())
|
||||||
config_file = configure_file(
|
config_file = configure_file(
|
||||||
input: 'config.h.in',
|
input: 'config.h.in',
|
||||||
output: 'config.h',
|
output: 'config.h',
|
||||||
|
|
Loading…
Add table
Reference in a new issue