]>
Commit | Line | Data |
---|---|---|
1e59de90 TL |
1 | # Package Managers |
2 | ||
3 | Throughout this page, we will describe how to compile the example file `example.cpp` below. | |
4 | ||
5 | ```cpp | |
6 | --8<-- "integration/example.cpp" | |
7 | ``` | |
8 | ||
9 | ## Homebrew | |
10 | ||
11 | If you are using OS X and [Homebrew](http://brew.sh), just type | |
12 | ||
13 | ```sh | |
14 | brew install nlohmann-json | |
15 | ``` | |
16 | ||
17 | and you're set. If you want the bleeding edge rather than the latest release, use | |
18 | ||
19 | ```sh | |
20 | brew install nlohmann-json --HEAD | |
21 | ``` | |
22 | ||
23 | instead. See [nlohmann-json](https://formulae.brew.sh/formula/nlohmann-json) for more information. | |
24 | ||
25 | ??? example | |
26 | ||
27 | 1. Create the following file: | |
28 | ||
29 | === "example.cpp" | |
30 | ||
31 | ```cpp | |
32 | --8<-- "integration/example.cpp" | |
33 | ``` | |
34 | ||
35 | 2. Install the package | |
36 | ||
37 | ```sh | |
38 | brew install nlohmann-json | |
39 | ``` | |
40 | ||
41 | 3. Determine the include path, which defaults to `/usr/local/Cellar/nlohmann-json/$version/include`, where `$version` is the version of the library, e.g. `3.7.3`. The path of the library can be determined with | |
42 | ||
43 | ```sh | |
44 | brew list nlohmann-json | |
45 | ``` | |
46 | ||
47 | 4. Compile the code. For instance, the code can be compiled using Clang with | |
48 | ||
49 | ```sh | |
50 | clang++ example.cpp -I/usr/local/Cellar/nlohmann-json/3.7.3/include -std=c++11 -o example | |
51 | ``` | |
52 | ||
53 | ## Meson | |
54 | ||
55 | 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. | |
56 | ||
57 | 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. | |
58 | ||
59 | ## Conan | |
60 | ||
61 | If you are using [Conan](https://www.conan.io/) to manage your dependencies, merely add `nlohmann_json/x.y.z` to your `conanfile`'s requires, where `x.y.z` is the release version you want to use. Please file issues [here](https://github.com/conan-io/conan-center-index/issues) if you experience problems with the packages. | |
62 | ||
63 | ??? example | |
64 | ||
65 | 1. Create the following files: | |
66 | ||
67 | === "Conanfile.txt" | |
68 | ||
69 | ```ini | |
70 | --8<-- "integration/conan/Conanfile.txt" | |
71 | ``` | |
72 | ||
73 | === "CMakeLists.txt" | |
74 | ||
75 | ```cmake | |
76 | --8<-- "integration/conan/CMakeLists.txt" | |
77 | ``` | |
78 | ||
79 | === "example.cpp" | |
80 | ||
81 | ```cpp | |
82 | --8<-- "integration/conan/example.cpp" | |
83 | ``` | |
84 | ||
85 | ||
86 | 2. Build: | |
87 | ||
88 | ```sh | |
89 | mkdir build | |
90 | cd build | |
91 | conan install .. | |
92 | cmake .. | |
93 | cmake --build . | |
94 | ``` | |
95 | ||
96 | ## Spack | |
97 | ||
98 | If you are using [Spack](https://www.spack.io/) to manage your dependencies, you can use the [`nlohmann-json` package](https://spack.readthedocs.io/en/latest/package_list.html#nlohmann-json). Please see the [spack project](https://github.com/spack/spack) for any issues regarding the packaging. | |
99 | ||
100 | ## Hunter | |
101 | ||
102 | If you are using [hunter](https://github.com/cpp-pm/hunter) on your project for external dependencies, then you can use the [nlohmann_json package](https://hunter.readthedocs.io/en/latest/packages/pkg/nlohmann_json.html). Please see the hunter project for any issues regarding the packaging. | |
103 | ||
104 | ## Buckaroo | |
105 | ||
106 | If you are using [Buckaroo](https://buckaroo.pm), you can install this library's module with `buckaroo add github.com/buckaroo-pm/nlohmann-json`. Please file issues [here](https://github.com/buckaroo-pm/nlohmann-json). There is a demo repo [here](https://github.com/njlr/buckaroo-nholmann-json-example). | |
107 | ||
108 | ## vcpkg | |
109 | ||
110 | If you are using [vcpkg](https://github.com/Microsoft/vcpkg/) on your project for external dependencies, then you can install the [nlohmann-json package](https://github.com/Microsoft/vcpkg/tree/master/ports/nlohmann-json) with `vcpkg install nlohmann-json` and follow the then displayed descriptions. Please see the vcpkg project for any issues regarding the packaging. | |
111 | ||
112 | ??? example | |
113 | ||
114 | 1. Create the following files: | |
115 | ||
116 | === "CMakeLists.txt" | |
117 | ||
118 | ```cmake | |
119 | --8<-- "integration/vcpkg/CMakeLists.txt" | |
120 | ``` | |
121 | ||
122 | === "example.cpp" | |
123 | ||
124 | ```cpp | |
125 | --8<-- "integration/vcpkg/example.cpp" | |
126 | ``` | |
127 | ||
128 | 2. Install package: | |
129 | ||
130 | ```sh | |
131 | vcpkg install nlohmann-json | |
132 | ``` | |
133 | ||
134 | 3. Build: | |
135 | ||
136 | ```sh | |
137 | mkdir build | |
138 | cd build | |
139 | cmake .. -DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake | |
140 | cmake --build . | |
141 | ``` | |
142 | ||
143 | Note you need to adjust `/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake` to your system. | |
144 | ||
145 | ## cget | |
146 | ||
147 | If you are using [cget](http://cget.readthedocs.io/en/latest/), you can install the latest development version with `cget install nlohmann/json`. A specific version can be installed with `cget install nlohmann/json@v3.1.0`. Also, the multiple header version can be installed by adding the `-DJSON_MultipleHeaders=ON` flag (i.e., `cget install nlohmann/json -DJSON_MultipleHeaders=ON`). | |
148 | ||
149 | ## CocoaPods | |
150 | ||
151 | If you are using [CocoaPods](https://cocoapods.org), you can use the library by adding pod `"nlohmann_json", '~>3.1.2'` to your podfile (see [an example](https://bitbucket.org/benman/nlohmann_json-cocoapod/src/master/)). Please file issues [here](https://bitbucket.org/benman/nlohmann_json-cocoapod/issues?status=new&status=open). | |
152 | ||
153 | ## NuGet | |
154 | ||
155 | If you are using [NuGet](https://www.nuget.org), you can use the package [nlohmann.json](https://www.nuget.org/packages/nlohmann.json/). Please check [this extensive description](https://github.com/nlohmann/json/issues/1132#issuecomment-452250255) on how to use the package. Please file issues [here](https://github.com/hnkb/nlohmann-json-nuget/issues). | |
156 | ||
157 | ## Conda | |
158 | ||
159 | If you are using [conda](https://conda.io/), you can use the package [nlohmann_json](https://github.com/conda-forge/nlohmann_json-feedstock) from [conda-forge](https://conda-forge.org) executing `conda install -c conda-forge nlohmann_json`. Please file issues [here](https://github.com/conda-forge/nlohmann_json-feedstock/issues). | |
160 | ||
161 | ## MSYS2 | |
162 | ||
163 | If you are using [MSYS2](http://www.msys2.org/), you can use the [mingw-w64-nlohmann-json](https://packages.msys2.org/base/mingw-w64-nlohmann-json) package, just type `pacman -S mingw-w64-i686-nlohmann-json` or `pacman -S mingw-w64-x86_64-nlohmann-json` for installation. Please file issues [here](https://github.com/msys2/MINGW-packages/issues/new?title=%5Bnlohmann-json%5D) if you experience problems with the packages. | |
164 | ||
165 | ## MacPorts | |
166 | ||
167 | If you are using [MacPorts](https://ports.macports.org), execute `sudo port install nlohmann-json` to install the [nlohmann-json](https://ports.macports.org/port/nlohmann-json/) package. | |
168 | ||
169 | ## build2 | |
170 | ||
171 | If you are using [`build2`](https://build2.org), you can use the [`nlohmann-json`](https://cppget.org/nlohmann-json) package from the public repository http://cppget.org or directly from the [package's sources repository](https://github.com/build2-packaging/nlohmann-json). In your project's `manifest` file, just add `depends: nlohmann-json` (probably with some [version constraints](https://build2.org/build2-toolchain/doc/build2-toolchain-intro.xhtml#guide-add-remove-deps)). If you are not familiar with using dependencies in `build2`, [please read this introduction](https://build2.org/build2-toolchain/doc/build2-toolchain-intro.xhtml). | |
172 | Please file issues [here](https://github.com/build2-packaging/nlohmann-json) if you experience problems with the packages. | |
173 | ||
174 | ## wsjcpp | |
175 | ||
176 | If you are using [`wsjcpp`](http://wsjcpp.org), you can use the command `wsjcpp install "https://github.com/nlohmann/json:develop"` to get the latest version. Note you can change the branch ":develop" to an existing tag or another branch. | |
177 | ||
178 | ## CPM.cmake | |
179 | ||
180 | If you are using [`CPM.cmake`](https://github.com/TheLartians/CPM.cmake), you can check this [`example`](https://github.com/TheLartians/CPM.cmake/tree/master/examples/json). After [adding CPM script](https://github.com/TheLartians/CPM.cmake#adding-cpm) to your project, implement the following snippet to your CMake: | |
181 | ||
182 | ```cmake | |
183 | CPMAddPackage( | |
184 | NAME nlohmann_json | |
185 | GITHUB_REPOSITORY nlohmann/json | |
186 | VERSION 3.9.1) | |
187 | ``` |