diff --git a/meson.build b/meson.build index 0446cc3..ec6c73b 100644 --- a/meson.build +++ b/meson.build @@ -1,4 +1,11 @@ -project('pdf-simple-sign', 'cpp', default_options : ['cpp_std=c++11']) +project('pdf-simple-sign', 'cpp', default_options : ['cpp_std=c++11'], + version : '1.0') + +conf = configuration_data() +conf.set('PROJECT_NAME', '"' + meson.project_name() + '"') +conf.set('PROJECT_VERSION', '"' + meson.project_version() + '"') +configure_file(output : 'config.h', configuration : conf) + cryptodep = dependency('libcrypto') executable('pdf-simple-sign', 'pdf-simple-sign.cpp', install : true, diff --git a/pdf-simple-sign.cpp b/pdf-simple-sign.cpp index 34acc9f..6bbb284 100644 --- a/pdf-simple-sign.cpp +++ b/pdf-simple-sign.cpp @@ -37,6 +37,8 @@ #include #include +#include "config.h" + // ------------------------------------------------------------------------------------------------- using uint = unsigned int; @@ -952,6 +954,7 @@ int main(int argc, char* argv[]) { static struct option opts[] = { {"help", no_argument, 0, 'h'}, + {"version", no_argument, 0, 'V'}, {"reservation", required_argument, 0, 'r'}, {nullptr, 0, 0, 0}, }; @@ -961,7 +964,7 @@ int main(int argc, char* argv[]) { while (1) { int option_index = 0; auto c = getopt_long(argc, const_cast(argv), - "h", opts, &option_index); + "hVr:", opts, &option_index); if (c == -1) break; @@ -972,6 +975,9 @@ int main(int argc, char* argv[]) { if (errno || *end || reservation <= 0 || reservation > USHRT_MAX) die(1, "%s: must be a positive number", optarg); break; + case 'V': + die(0, "%s", PROJECT_NAME " " PROJECT_VERSION); + break; case 'h': default: usage();