diff --git a/README.md b/README.md index 6ae1b88..84631d6 100644 --- a/README.md +++ b/README.md @@ -121,6 +121,8 @@ access nlohmann-json: a sub-directory (via `add_subdirectory()`), 2 and 3 can be assisted by setting the `nlohmann_json_DIR`-variable. +For 1 there is an example of you to do in example/cmake-submodule. + ### Building with Hunter package manager To enable access to nlohmann json library, Hunter can be used. Just run with HUNTER_ENABLED=ON option. No further dependencies needed diff --git a/example/cmake-submodule/CMakeLists.txt b/example/cmake-submodule/CMakeLists.txt new file mode 100644 index 0000000..d776fa2 --- /dev/null +++ b/example/cmake-submodule/CMakeLists.txt @@ -0,0 +1,24 @@ +cmake_minimum_required(VERSION 3.2) + +project(simple-json-validator-as-submodule-test) + +# absolute-path +set(PATH_TO_NLOHMANN_JSON_REPO $ENV{HOME}/devel/upstream/json) + +# build shared library +set(BUILD_SHARED_LIBS ON) + +# JSON library +option(JSON_BuildTests OFF) +add_subdirectory(${PATH_TO_NLOHMANN_JSON_REPO} + json-binary-dir + EXCLUDE_FROM_ALL) + +# JSON SCHEMA VALIDATOR library +option(BUILD_TESTS OFF) +add_subdirectory(../.. + json-validator-binary-dir + EXCLUDE_FROM_ALL) + +add_executable(validate validate.cpp) +target_link_libraries(validate nlohmann_json_schema_validator) diff --git a/example/cmake-submodule/validate.cpp b/example/cmake-submodule/validate.cpp new file mode 100644 index 0000000..d8f3c12 --- /dev/null +++ b/example/cmake-submodule/validate.cpp @@ -0,0 +1,20 @@ +#include + +#include + +int main(void) +{ + nlohmann::json schema_json{{"type", "number"}}; + nlohmann::json_schema::json_validator validator; + + validator.set_root_schema(schema_json); + + validator.validate(1); + try { + validator.validate("\"1\""); + } catch (const std::exception &e) { + std::cerr << "expected exception: " << e.what() << "\n"; + return EXIT_SUCCESS; + } + return EXIT_FAILURE; +}