From 84faa36ec5cedbe3d15bad0f6a289e0aacfece6f Mon Sep 17 00:00:00 2001 From: Eli Schwartz Date: Wed, 31 Jul 2019 15:43:31 -0400 Subject: [PATCH 1/2] release: add singleinclude and meson.build to include.zip This serves as a minimal release-only way to embed json into a project. Add meson support to this directly, to make it usable standalone as a meson subproject. Implements #1672 --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 4fb303fc..2641e610 100644 --- a/Makefile +++ b/Makefile @@ -594,7 +594,7 @@ ChangeLog.md: release: rm -fr release_files mkdir release_files - zip -9 --recurse-paths -X include.zip $(SRCS) + zip -9 --recurse-paths -X include.zip $(SRCS) $(AMALGAMATED_FILE) meson.build gpg --armor --detach-sig include.zip mv include.zip include.zip.asc release_files gpg --armor --detach-sig $(AMALGAMATED_FILE) From f4332d409739615b194b6ecfd8b9fa1c600f885e Mon Sep 17 00:00:00 2001 From: Eli Schwartz Date: Mon, 2 Sep 2019 15:25:11 -0400 Subject: [PATCH 2/2] README: describe how to use json as a meson subproject Also call out to the guidelines for using pkg-config dependencies first, and reference it for other build systems as well. Although the possibility of installing with a pkg-config file is somewhat hidden away in the meson docs, it's been deemed less invasive due to not distracting away from cmake. So it will have to do. --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6683ce56..2f2a3328 100644 --- a/README.md +++ b/README.md @@ -153,7 +153,9 @@ endif() :beer: If you are using OS X and [Homebrew](http://brew.sh), just type `brew tap nlohmann/json` and `brew install nlohmann-json` and you're set. If you want the bleeding edge rather than the latest release, use `brew install nlohmann-json --HEAD`. -If you are using the [Meson Build System](http://mesonbuild.com), then you can get a wrap file by downloading it from [Meson WrapDB](https://wrapdb.mesonbuild.com/nlohmann_json), or simply use `meson wrap install nlohmann_json`. +If you are using the [Meson Build System](http://mesonbuild.com), add this source tree as a [meson subproject](https://mesonbuild.com/Subprojects.html#using-a-subproject). You may also use the `include.zip` published in this project's [Releases](https://github.com/nlohmann/json/releases) to reduce the size of the vendored source tree. Alternatively, you can get a wrap file by downloading it from [Meson WrapDB](https://wrapdb.mesonbuild.com/nlohmann_json), or simply use `meson wrap install nlohmann_json`. Please see the meson project for any issues regarding the packaging. + +The provided meson.build can also be used as an alternative to cmake for installing `nlohmann_json` system-wide in which case a pkg-config file is installed. To use it, simply have your build system require the `nlohmann_json` pkg-config dependency. In Meson, it is preferred to use the [`dependency()`](https://mesonbuild.com/Reference-manual.html#dependency) object with a subproject fallback, rather than using the subproject directly. If you are using [Conan](https://www.conan.io/) to manage your dependencies, merely add `jsonformoderncpp/x.y.z@vthiery/stable` to your `conanfile.py`'s requires, where `x.y.z` is the release version you want to use. Please file issues [here](https://github.com/vthiery/conan-jsonformoderncpp/issues) if you experience problems with the packages.