From ecaeea06bcf833611b4cc8296dfc3396b57fe136 Mon Sep 17 00:00:00 2001 From: Patrick Boettcher
Date: Tue, 9 Mar 2021 11:04:15 +0100
Subject: [PATCH] Add an example for how to use with cmake-submodules
fix #147
fix #148
---
README.md | 2 ++
example/cmake-submodule/CMakeLists.txt | 24 ++++++++++++++++++++++++
example/cmake-submodule/validate.cpp | 20 ++++++++++++++++++++
3 files changed, 46 insertions(+)
create mode 100644 example/cmake-submodule/CMakeLists.txt
create mode 100644 example/cmake-submodule/validate.cpp
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