diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a3e2dbc..8387d2d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -8,13 +8,15 @@ target_sources(nlohmann_json_schema_validator PRIVATE ) target_sources(nlohmann_json_schema_validator_cli PRIVATE cli.cpp) +configure_file(nlohmann/json-schema.hpp.in nlohmann/json-schema.hpp) target_include_directories(nlohmann_json_schema_validator PUBLIC $ $ + $ ) set_target_properties(nlohmann_json_schema_validator PROPERTIES - PUBLIC_HEADER nlohmann/json-schema.hpp) + PUBLIC_HEADER ${CMAKE_CURRENT_BINARY_DIR}/nlohmann/json-schema.hpp) target_link_libraries(nlohmann_json_schema_validator_cli PRIVATE nlohmann_json_schema_validator CLI11::CLI11) diff --git a/src/cli.cpp b/src/cli.cpp index 9e7b820..ac08681 100644 --- a/src/cli.cpp +++ b/src/cli.cpp @@ -10,6 +10,7 @@ using namespace nlohmann::json_schema; class main_cli : public CLI::App { + std::string version; std::ifstream schema_input; std::filesystem::path object_path; // TODO: Export this as a built-in loader @@ -34,10 +35,10 @@ public: : CLI::App{"Json schema validator", "json-validator"}, validator{ [this](const json_uri &u, json &s) { this->loader(u, s); }, - default_string_format_check} + default_string_format_check}, + version{nlohmann::json_schema::version} { - // TODO: Move to a generated header file - set_version_flag("--version", "2.2.0"); + set_version_flag("--version", version); add_option("schema", schema_input, "JSON schema of the object") ->check(CLI::ExistingFile); add_option("object", object_path, "JSON object to validate") diff --git a/src/nlohmann/json-schema.hpp b/src/nlohmann/json-schema.hpp.in similarity index 98% rename from src/nlohmann/json-schema.hpp rename to src/nlohmann/json-schema.hpp.in index 07befd3..d1695d6 100644 --- a/src/nlohmann/json-schema.hpp +++ b/src/nlohmann/json-schema.hpp.in @@ -128,6 +128,8 @@ public: namespace json_schema { +constexpr std::string_view version = "@PROJECT_VERSION@"; + extern json draft7_schema_builtin; typedef std::function schema_loader;