mirror of
https://github.com/nlohmann/json.git
synced 2026-10-06 22:47:13 +00:00
deploy: b5378e8deb
This commit is contained in:
1 parent
b4e4dbe346
commit
e5ef5a4cd3
261 files changed
+4526
-4483
No files matched your search
@@ -9,20 +9,20 @@
|
||||
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o><<</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>setw</span><span class=p>(</span><span class=mi>4</span><span class=p>)</span><span class=w> </span><span class=o><<</span><span class=w> </span><span class=n>json</span><span class=o>::</span><span class=n>meta</span><span class=p>()</span><span class=w> </span><span class=o><<</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>endl</span><span class=p>;</span>
|
||||
<span class=p>}</span>
|
||||
</code></pre></div> <p>When executed, this program should create output similar to</p> <div class=highlight><pre><span></span><code><span class=p>{</span>
|
||||
<span class=w> </span><span class=nt>"compiler"</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
|
||||
<span class=w> </span><span class=nt>"c++"</span><span class=p>:</span><span class=w> </span><span class=s2>"201103"</span><span class=p>,</span>
|
||||
<span class=w> </span><span class=nt>"family"</span><span class=p>:</span><span class=w> </span><span class=s2>"gcc"</span><span class=p>,</span>
|
||||
<span class=w> </span><span class=nt>"version"</span><span class=p>:</span><span class=w> </span><span class=s2>"12.4.0"</span>
|
||||
<span class=w> </span><span class=nt>"compiler"</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
|
||||
<span class=w> </span><span class=nt>"c++"</span><span class=p>:</span><span class=w> </span><span class=s2>"201103"</span><span class=p>,</span>
|
||||
<span class=w> </span><span class=nt>"family"</span><span class=p>:</span><span class=w> </span><span class=s2>"gcc"</span><span class=p>,</span>
|
||||
<span class=w> </span><span class=nt>"version"</span><span class=p>:</span><span class=w> </span><span class=s2>"12.4.0"</span>
|
||||
<span class=w> </span><span class=p>},</span>
|
||||
<span class=w> </span><span class=nt>"copyright"</span><span class=p>:</span><span class=w> </span><span class=s2>"(C) 2013-2026 Niels Lohmann"</span><span class=p>,</span>
|
||||
<span class=w> </span><span class=nt>"name"</span><span class=p>:</span><span class=w> </span><span class=s2>"JSON for Modern C++"</span><span class=p>,</span>
|
||||
<span class=w> </span><span class=nt>"platform"</span><span class=p>:</span><span class=w> </span><span class=s2>"apple"</span><span class=p>,</span>
|
||||
<span class=w> </span><span class=nt>"url"</span><span class=p>:</span><span class=w> </span><span class=s2>"https://github.com/nlohmann/json"</span><span class=p>,</span>
|
||||
<span class=w> </span><span class=nt>"version"</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
|
||||
<span class=w> </span><span class=nt>"major"</span><span class=p>:</span><span class=w> </span><span class=mi>3</span><span class=p>,</span>
|
||||
<span class=w> </span><span class=nt>"minor"</span><span class=p>:</span><span class=w> </span><span class=mi>12</span><span class=p>,</span>
|
||||
<span class=w> </span><span class=nt>"patch"</span><span class=p>:</span><span class=w> </span><span class=mi>0</span><span class=p>,</span>
|
||||
<span class=w> </span><span class=nt>"string"</span><span class=p>:</span><span class=w> </span><span class=s2>"3.12.0"</span>
|
||||
<span class=w> </span><span class=nt>"copyright"</span><span class=p>:</span><span class=w> </span><span class=s2>"(C) 2013-2026 Niels Lohmann"</span><span class=p>,</span>
|
||||
<span class=w> </span><span class=nt>"name"</span><span class=p>:</span><span class=w> </span><span class=s2>"JSON for Modern C++"</span><span class=p>,</span>
|
||||
<span class=w> </span><span class=nt>"platform"</span><span class=p>:</span><span class=w> </span><span class=s2>"apple"</span><span class=p>,</span>
|
||||
<span class=w> </span><span class=nt>"url"</span><span class=p>:</span><span class=w> </span><span class=s2>"https://github.com/nlohmann/json"</span><span class=p>,</span>
|
||||
<span class=w> </span><span class=nt>"version"</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
|
||||
<span class=w> </span><span class=nt>"major"</span><span class=p>:</span><span class=w> </span><span class=mi>3</span><span class=p>,</span>
|
||||
<span class=w> </span><span class=nt>"minor"</span><span class=p>:</span><span class=w> </span><span class=mi>12</span><span class=p>,</span>
|
||||
<span class=w> </span><span class=nt>"patch"</span><span class=p>:</span><span class=w> </span><span class=mi>0</span><span class=p>,</span>
|
||||
<span class=w> </span><span class=nt>"string"</span><span class=p>:</span><span class=w> </span><span class=s2>"3.12.0"</span>
|
||||
<span class=w> </span><span class=p>}</span>
|
||||
<span class=p>}</span>
|
||||
</code></pre></div> <h2 id=homebrew>Homebrew<a class=headerlink href=#homebrew title="Permanent link">¶</a></h2> <div class="admonition abstract"> <p class=admonition-title>Summary</p> <p>formula: <a href="https://formulae.brew.sh/formula/nlohmann-json"><strong><code>nlohmann-json</code></strong></a></p> <ul> <li><a href="https://repology.org/project/nlohmann-json/versions"><img alt="Homebrew package" src="../../assets/external/repology.org/badge/version-for-repo/homebrew/nlohmann-json.svg"></a></li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M7.75 6.5a1.25 1.25 0 1 0 0 2.5 1.25 1.25 0 0 0 0-2.5"/><path d="M2.5 1h8.44a1.5 1.5 0 0 1 1.06.44l10.25 10.25a1.5 1.5 0 0 1 0 2.12l-8.44 8.44a1.5 1.5 0 0 1-2.12 0L1.44 12A1.5 1.5 0 0 1 1 10.94V2.5A1.5 1.5 0 0 1 2.5 1m0 1.5v8.44l10.25 10.25 8.44-8.44L10.94 2.5Z"/></svg></span> Available versions: current version and development version (with <code>--HEAD</code> parameter)</li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20.322.75h1.176a1.75 1.75 0 0 1 1.75 1.749v1.177a10.75 10.75 0 0 1-2.925 7.374l-1.228 1.304a24 24 0 0 1-1.596 1.542v5.038c0 .615-.323 1.184-.85 1.5l-4.514 2.709a.75.75 0 0 1-1.12-.488l-.963-4.572a1.3 1.3 0 0 1-.14-.129L8.04 15.96l-1.994-1.873a1.3 1.3 0 0 1-.129-.14l-4.571-.963a.75.75 0 0 1-.49-1.12l2.71-4.514c.316-.527.885-.85 1.5-.85h5.037a24 24 0 0 1 1.542-1.594l1.304-1.23A10.75 10.75 0 0 1 20.321.75Zm-6.344 4.018v-.001l-1.304 1.23a22.3 22.3 0 0 0-3.255 3.851l-2.193 3.29 1.859 1.744.034.034 1.743 1.858 3.288-2.192a22.3 22.3 0 0 0 3.854-3.257l1.228-1.303a9.25 9.25 0 0 0 2.517-6.346V2.5a.25.25 0 0 0-.25-.25h-1.177a9.25 9.25 0 0 0-6.344 2.518M6.5 21c-1.209 1.209-3.901 1.445-4.743 1.49a.24.24 0 0 1-.18-.067.24.24 0 0 1-.067-.18c.045-.842.281-3.534 1.49-4.743.9-.9 2.6-.9 3.5 0s.9 2.6 0 3.5m-.592-8.588L8.17 9.017q.346-.519.717-1.017H5.066a.25.25 0 0 0-.214.121l-2.167 3.612ZM16 15.112q-.5.372-1.018.718l-3.393 2.262.678 3.223 3.612-2.167a.25.25 0 0 0 .121-.214ZM17.5 8a1.5 1.5 0 1 1-3.001-.001A1.5 1.5 0 0 1 17.5 8"/></svg></span> The formula is updated with every release.</li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 2.5a5.5 5.5 0 0 1 3.096 10.047 9.005 9.005 0 0 1 5.9 8.181.75.75 0 1 1-1.499.044 7.5 7.5 0 0 0-14.993 0 .75.75 0 0 1-1.5-.045 9.005 9.005 0 0 1 5.9-8.18A5.5 5.5 0 0 1 12 2.5M8 8a4 4 0 1 0 8 0 4 4 0 0 0-8 0"/></svg></span> Maintainer: Niels Lohmann</li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 3a2 2 0 0 1 2-2h9.982a2 2 0 0 1 1.414.586l4.018 4.018A2 2 0 0 1 21 7.018V21a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Zm2-.5a.5.5 0 0 0-.5.5v18a.5.5 0 0 0 .5.5h14a.5.5 0 0 0 .5-.5V8.5h-4a2 2 0 0 1-2-2v-4Zm10 0v4a.5.5 0 0 0 .5.5h4a.5.5 0 0 0-.146-.336l-4.018-4.018A.5.5 0 0 0 15 2.5"/></svg></span> File issues at the <a href="https://github.com/Homebrew/homebrew-core/issues">Homebrew issue tracker</a></li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M10.97 8.265a1.45 1.45 0 0 0-.487.57.75.75 0 0 1-1.341-.67c.2-.402.513-.826.997-1.148C10.627 6.69 11.244 6.5 12 6.5c.658 0 1.369.195 1.934.619a2.45 2.45 0 0 1 1.004 2.006c0 1.033-.513 1.72-1.027 2.215-.19.183-.399.358-.579.508l-.147.123a4 4 0 0 0-.435.409v1.37a.75.75 0 1 1-1.5 0v-1.473c0-.237.067-.504.247-.736.22-.28.486-.517.718-.714l.183-.153.001-.001c.172-.143.324-.27.47-.412.368-.355.569-.676.569-1.136a.95.95 0 0 0-.404-.806C12.766 8.118 12.384 8 12 8c-.494 0-.814.121-1.03.265M13 17a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/><path d="M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1M2.5 12a9.5 9.5 0 0 0 9.5 9.5 9.5 9.5 0 0 0 9.5-9.5A9.5 9.5 0 0 0 12 2.5 9.5 9.5 0 0 0 2.5 12"/></svg></span> <a href="https://brew.sh">Homebrew website</a></li> </ul> </div> <p>If you are using <a href="http://brew.sh">Homebrew</a>, you can install the library with</p> <div class=highlight><pre><span></span><code>brew<span class=w> </span>install<span class=w> </span>nlohmann-json
|
||||
@@ -59,15 +59,15 @@
|
||||
</code></pre></div> </li> <li> <p>Compile the code and pass the Homebrew prefix to CMake to find installed packages via <code class=highlight><span class=err>find_package</span></code>:</p> <div class=highlight><pre><span></span><code><span class=nv>CMAKE_PREFIX_PATH</span><span class=o>=</span><span class=k>$(</span>brew<span class=w> </span>--prefix<span class=k>)</span><span class=w> </span>cmake<span class=w> </span>-S<span class=w> </span>.<span class=w> </span>-B<span class=w> </span>build
|
||||
cmake<span class=w> </span>--build<span class=w> </span>build
|
||||
</code></pre></div> </li> </ol> </details> <h2 id=meson>Meson<a class=headerlink href=#meson title="Permanent link">¶</a></h2> <div class="admonition abstract"> <p class=admonition-title>Summary</p> <p>wrap: <strong><code>nlohmann_json</code></strong></p> <ul> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M7.75 6.5a1.25 1.25 0 1 0 0 2.5 1.25 1.25 0 0 0 0-2.5"/><path d="M2.5 1h8.44a1.5 1.5 0 0 1 1.06.44l10.25 10.25a1.5 1.5 0 0 1 0 2.12l-8.44 8.44a1.5 1.5 0 0 1-2.12 0L1.44 12A1.5 1.5 0 0 1 1 10.94V2.5A1.5 1.5 0 0 1 2.5 1m0 1.5v8.44l10.25 10.25 8.44-8.44L10.94 2.5Z"/></svg></span> Available versions: current version and select older versions (see <a href="https://mesonbuild.com/Wrapdb-projects.html">WrapDB</a>)</li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20.322.75h1.176a1.75 1.75 0 0 1 1.75 1.749v1.177a10.75 10.75 0 0 1-2.925 7.374l-1.228 1.304a24 24 0 0 1-1.596 1.542v5.038c0 .615-.323 1.184-.85 1.5l-4.514 2.709a.75.75 0 0 1-1.12-.488l-.963-4.572a1.3 1.3 0 0 1-.14-.129L8.04 15.96l-1.994-1.873a1.3 1.3 0 0 1-.129-.14l-4.571-.963a.75.75 0 0 1-.49-1.12l2.71-4.514c.316-.527.885-.85 1.5-.85h5.037a24 24 0 0 1 1.542-1.594l1.304-1.23A10.75 10.75 0 0 1 20.321.75Zm-6.344 4.018v-.001l-1.304 1.23a22.3 22.3 0 0 0-3.255 3.851l-2.193 3.29 1.859 1.744.034.034 1.743 1.858 3.288-2.192a22.3 22.3 0 0 0 3.854-3.257l1.228-1.303a9.25 9.25 0 0 0 2.517-6.346V2.5a.25.25 0 0 0-.25-.25h-1.177a9.25 9.25 0 0 0-6.344 2.518M6.5 21c-1.209 1.209-3.901 1.445-4.743 1.49a.24.24 0 0 1-.18-.067.24.24 0 0 1-.067-.18c.045-.842.281-3.534 1.49-4.743.9-.9 2.6-.9 3.5 0s.9 2.6 0 3.5m-.592-8.588L8.17 9.017q.346-.519.717-1.017H5.066a.25.25 0 0 0-.214.121l-2.167 3.612ZM16 15.112q-.5.372-1.018.718l-3.393 2.262.678 3.223 3.612-2.167a.25.25 0 0 0 .121-.214ZM17.5 8a1.5 1.5 0 1 1-3.001-.001A1.5 1.5 0 0 1 17.5 8"/></svg></span> The package is updated automatically from file <a href="https://github.com/nlohmann/json/blob/develop/meson.build"><code>meson.build</code></a>.</li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 3a2 2 0 0 1 2-2h9.982a2 2 0 0 1 1.414.586l4.018 4.018A2 2 0 0 1 21 7.018V21a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Zm2-.5a.5.5 0 0 0-.5.5v18a.5.5 0 0 0 .5.5h14a.5.5 0 0 0 .5-.5V8.5h-4a2 2 0 0 1-2-2v-4Zm10 0v4a.5.5 0 0 0 .5.5h4a.5.5 0 0 0-.146-.336l-4.018-4.018A.5.5 0 0 0 15 2.5"/></svg></span> File issues at the <a href="https://github.com/nlohmann/json/issues">library issue tracker</a></li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M10.97 8.265a1.45 1.45 0 0 0-.487.57.75.75 0 0 1-1.341-.67c.2-.402.513-.826.997-1.148C10.627 6.69 11.244 6.5 12 6.5c.658 0 1.369.195 1.934.619a2.45 2.45 0 0 1 1.004 2.006c0 1.033-.513 1.72-1.027 2.215-.19.183-.399.358-.579.508l-.147.123a4 4 0 0 0-.435.409v1.37a.75.75 0 1 1-1.5 0v-1.473c0-.237.067-.504.247-.736.22-.28.486-.517.718-.714l.183-.153.001-.001c.172-.143.324-.27.47-.412.368-.355.569-.676.569-1.136a.95.95 0 0 0-.404-.806C12.766 8.118 12.384 8 12 8c-.494 0-.814.121-1.03.265M13 17a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/><path d="M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1M2.5 12a9.5 9.5 0 0 0 9.5 9.5 9.5 9.5 0 0 0 9.5-9.5A9.5 9.5 0 0 0 12 2.5 9.5 9.5 0 0 0 2.5 12"/></svg></span> <a href="https://mesonbuild.com/index.html">Meson website</a></li> </ul> </div> <p>If you are using the <a href="http://mesonbuild.com">Meson Build System</a>, add this source tree as a <a href="https://mesonbuild.com/Subprojects.html#using-a-subproject">meson subproject</a>. You may also use the <code>include.zip</code> published in this project's <a href="https://github.com/nlohmann/json/releases">Releases</a> to reduce the size of the vendored source tree. Alternatively, you can get a wrap file by downloading it from <a href="https://mesonbuild.com/Wrapdb-projects.html">Meson WrapDB</a>, or use</p> <div class=highlight><pre><span></span><code>meson<span class=w> </span>wrap<span class=w> </span>install<span class=w> </span>nlohmann_json
|
||||
</code></pre></div> <p>Please see the Meson project for any issues regarding the packaging.</p> <p>The provided <code>meson.build</code> can also be used as an alternative to CMake for installing <code>nlohmann_json</code> system-wide in which case a pkg-config file is installed. To use it, have your build system require the <code>nlohmann_json</code> pkg-config dependency. In Meson, it is preferred to use the <a href="https://mesonbuild.com/Reference-manual.html#dependency"><code>dependency()</code></a> object with a subproject fallback, rather than using the subproject directly.</p> <details class=example> <summary>Example: Wrap</summary> <ol> <li> <p>Create the following files:</p> <div class=highlight><span class=filename>meson.build</span><pre><span></span><code><span class=na>project('json_example', 'cpp',</span>
|
||||
<span class=w> </span><span class=na>version</span><span class=o>:</span><span class=w> </span><span class=s>'1.0'</span><span class=na>,</span>
|
||||
<span class=w> </span><span class=na>default_options</span><span class=o>:</span><span class=w> </span><span class=s>['cpp_std=c++11']</span>
|
||||
</code></pre></div> <p>Please see the Meson project for any issues regarding the packaging.</p> <p>The provided <code>meson.build</code> can also be used as an alternative to CMake for installing <code>nlohmann_json</code> system-wide in which case a pkg-config file is installed. To use it, have your build system require the <code>nlohmann_json</code> pkg-config dependency. In Meson, it is preferred to use the <a href="https://mesonbuild.com/Reference-manual.html#dependency"><code>dependency()</code></a> object with a subproject fallback, rather than using the subproject directly.</p> <details class=example> <summary>Example: Wrap</summary> <ol> <li> <p>Create the following files:</p> <div class=highlight><span class=filename>meson.build</span><pre><span></span><code><span class=na>project('json_example', 'cpp',</span>
|
||||
<span class=w> </span><span class=na>version</span><span class=o>:</span><span class=w> </span><span class=s>'1.0'</span><span class=na>,</span>
|
||||
<span class=w> </span><span class=na>default_options</span><span class=o>:</span><span class=w> </span><span class=s>['cpp_std=c++11']</span>
|
||||
<span class=na>)</span>
|
||||
|
||||
<span class=na>dependency_json</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=s>dependency('nlohmann_json', required: true)</span>
|
||||
<span class=na>dependency_json</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=s>dependency('nlohmann_json', required: true)</span>
|
||||
|
||||
<span class=na>executable('json_example',</span>
|
||||
<span class=w> </span><span class=na>sources</span><span class=o>:</span><span class=w> </span><span class=s>['example.cpp'],</span>
|
||||
<span class=na>executable('json_example',</span>
|
||||
<span class=w> </span><span class=na>sources</span><span class=o>:</span><span class=w> </span><span class=s>['example.cpp'],</span>
|
||||
<span class=w> </span><span class=na>dependencies</span><span class=o>:</span><span class=w> </span><span class=s>[dependency_json],</span>
|
||||
<span class=w> </span><span class=na>install</span><span class=o>:</span><span class=w> </span><span class=s>true</span>
|
||||
<span class=na>)</span>
|
||||
@@ -86,11 +86,11 @@ meson<span class=w> </span>wrap<span class=w> </span>install<span class=w> </spa
|
||||
</code></pre></div> </li> <li> <p>Build:</p> <div class=highlight><pre><span></span><code>meson<span class=w> </span>setup<span class=w> </span>build
|
||||
meson<span class=w> </span>compile<span class=w> </span>-C<span class=w> </span>build
|
||||
</code></pre></div> </li> </ol> </details> <h2 id=bazel>Bazel<a class=headerlink href=#bazel title="Permanent link">¶</a></h2> <div class="admonition abstract"> <p class=admonition-title>Summary</p> <p>use <code>bazel_dep</code>, <code>git_override</code>, or <code>local_path_override</code></p> <ul> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M7.75 6.5a1.25 1.25 0 1 0 0 2.5 1.25 1.25 0 0 0 0-2.5"/><path d="M2.5 1h8.44a1.5 1.5 0 0 1 1.06.44l10.25 10.25a1.5 1.5 0 0 1 0 2.12l-8.44 8.44a1.5 1.5 0 0 1-2.12 0L1.44 12A1.5 1.5 0 0 1 1 10.94V2.5A1.5 1.5 0 0 1 2.5 1m0 1.5v8.44l10.25 10.25 8.44-8.44L10.94 2.5Z"/></svg></span> Any version, that is available via <a href="https://registry.bazel.build/modules/nlohmann_json">Bazel Central Registry</a></li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 3a2 2 0 0 1 2-2h9.982a2 2 0 0 1 1.414.586l4.018 4.018A2 2 0 0 1 21 7.018V21a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Zm2-.5a.5.5 0 0 0-.5.5v18a.5.5 0 0 0 .5.5h14a.5.5 0 0 0 .5-.5V8.5h-4a2 2 0 0 1-2-2v-4Zm10 0v4a.5.5 0 0 0 .5.5h4a.5.5 0 0 0-.146-.336l-4.018-4.018A.5.5 0 0 0 15 2.5"/></svg></span> File issues at the <a href="https://github.com/nlohmann/json/issues">library issue tracker</a></li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M10.97 8.265a1.45 1.45 0 0 0-.487.57.75.75 0 0 1-1.341-.67c.2-.402.513-.826.997-1.148C10.627 6.69 11.244 6.5 12 6.5c.658 0 1.369.195 1.934.619a2.45 2.45 0 0 1 1.004 2.006c0 1.033-.513 1.72-1.027 2.215-.19.183-.399.358-.579.508l-.147.123a4 4 0 0 0-.435.409v1.37a.75.75 0 1 1-1.5 0v-1.473c0-.237.067-.504.247-.736.22-.28.486-.517.718-.714l.183-.153.001-.001c.172-.143.324-.27.47-.412.368-.355.569-.676.569-1.136a.95.95 0 0 0-.404-.806C12.766 8.118 12.384 8 12 8c-.494 0-.814.121-1.03.265M13 17a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/><path d="M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1M2.5 12a9.5 9.5 0 0 0 9.5 9.5 9.5 9.5 0 0 0 9.5-9.5A9.5 9.5 0 0 0 12 2.5 9.5 9.5 0 0 0 2.5 12"/></svg></span> <a href="https://bazel.build">Bazel website</a></li> </ul> </div> <p>This repository provides a <a href="https://bazel.build/">Bazel</a> <code>MODULE.bazel</code> and a corresponding <code>BUILD.bazel</code> file. Therefore, this repository can be referenced within a <code>MODULE.bazel</code> by rules such as <code>archive_override</code>, <code>git_override</code>, or <code>local_path_override</code>. To use the library, you need to depend on the target <code>@nlohmann_json//:json</code> (i.e., via <code>deps</code> attribute).</p> <details class=example> <summary>Example</summary> <ol> <li> <p>Create the following files:</p> <div class=highlight><span class=filename>BUILD</span><pre><span></span><code><span class=na>cc_binary(</span>
|
||||
<span class=w> </span><span class=na>name</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=s>"main"</span><span class=na>,</span>
|
||||
<span class=w> </span><span class=na>srcs</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=s>["example.cpp"],</span>
|
||||
<span class=w> </span><span class=na>deps</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=s>["@nlohmann_json//:json"],</span>
|
||||
<span class=w> </span><span class=na>name</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=s>"main"</span><span class=na>,</span>
|
||||
<span class=w> </span><span class=na>srcs</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=s>["example.cpp"],</span>
|
||||
<span class=w> </span><span class=na>deps</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=s>["@nlohmann_json//:json"],</span>
|
||||
<span class=na>)</span>
|
||||
</code></pre></div> <div class=highlight><span class=filename>WORKSPACE</span><pre><span></span><code><span class=na>bazel_dep(name</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=s>"nlohmann_json"</span><span class=na>, version</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=s>"3.11.3.bcr.1"</span><span class=na>)</span>
|
||||
</code></pre></div> <div class=highlight><span class=filename>WORKSPACE</span><pre><span></span><code><span class=na>bazel_dep(name</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=s>"nlohmann_json"</span><span class=na>, version</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=s>"3.11.3.bcr.1"</span><span class=na>)</span>
|
||||
</code></pre></div> <div class=highlight><span class=filename>example.cpp</span><pre><span></span><code><span class=cp>#include</span><span class=w> </span><span class=cpf><nlohmann/json.hpp></span>
|
||||
<span class=cp>#include</span><span class=w> </span><span class=cpf><iostream></span>
|
||||
<span class=cp>#include</span><span class=w> </span><span class=cpf><iomanip></span>
|
||||
@@ -127,7 +127,7 @@ bazel<span class=w> </span>run<span class=w> </span>//:main
|
||||
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o><<</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>setw</span><span class=p>(</span><span class=mi>4</span><span class=p>)</span><span class=w> </span><span class=o><<</span><span class=w> </span><span class=n>json</span><span class=o>::</span><span class=n>meta</span><span class=p>()</span><span class=w> </span><span class=o><<</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>endl</span><span class=p>;</span>
|
||||
<span class=p>}</span>
|
||||
</code></pre></div> </li> <li> <p>Call Conan:</p> <div class=highlight><pre><span></span><code>conan<span class=w> </span>install<span class=w> </span>.<span class=w> </span>--output-folder<span class=o>=</span>build<span class=w> </span>--build<span class=o>=</span>missing
|
||||
</code></pre></div> </li> <li> <p>Build:</p> <div class=highlight><pre><span></span><code>cmake<span class=w> </span>-S<span class=w> </span>.<span class=w> </span>-B<span class=w> </span>build<span class=w> </span>-DCMAKE_TOOLCHAIN_FILE<span class=o>=</span><span class=s2>"conan_toolchain.cmake"</span><span class=w> </span>-DCMAKE_BUILD_TYPE<span class=o>=</span>Release
|
||||
</code></pre></div> </li> <li> <p>Build:</p> <div class=highlight><pre><span></span><code>cmake<span class=w> </span>-S<span class=w> </span>.<span class=w> </span>-B<span class=w> </span>build<span class=w> </span>-DCMAKE_TOOLCHAIN_FILE<span class=o>=</span><span class=s2>"conan_toolchain.cmake"</span><span class=w> </span>-DCMAKE_BUILD_TYPE<span class=o>=</span>Release
|
||||
cmake<span class=w> </span>--build<span class=w> </span>build
|
||||
</code></pre></div> </li> </ol> </details> <h2 id=spack>Spack<a class=headerlink href=#spack title="Permanent link">¶</a></h2> <div class="admonition abstract"> <p class=admonition-title>Summary</p> <p>package: <a href="https://packages.spack.io/package.html?name=nlohmann-json"><strong><code>nlohmann-json</code></strong></a></p> <ul> <li><a href="https://repology.org/project/nlohmann-json/versions"><img alt="Spack package" src="../../assets/external/repology.org/badge/version-for-repo/spack/nlohmann-json.svg"></a></li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M7.75 6.5a1.25 1.25 0 1 0 0 2.5 1.25 1.25 0 0 0 0-2.5"/><path d="M2.5 1h8.44a1.5 1.5 0 0 1 1.06.44l10.25 10.25a1.5 1.5 0 0 1 0 2.12l-8.44 8.44a1.5 1.5 0 0 1-2.12 0L1.44 12A1.5 1.5 0 0 1 1 10.94V2.5A1.5 1.5 0 0 1 2.5 1m0 1.5v8.44l10.25 10.25 8.44-8.44L10.94 2.5Z"/></svg></span> Available versions: current version and older versions (see <a href="https://packages.spack.io/package.html?name=nlohmann-json">Spack package</a>)</li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20.322.75h1.176a1.75 1.75 0 0 1 1.75 1.749v1.177a10.75 10.75 0 0 1-2.925 7.374l-1.228 1.304a24 24 0 0 1-1.596 1.542v5.038c0 .615-.323 1.184-.85 1.5l-4.514 2.709a.75.75 0 0 1-1.12-.488l-.963-4.572a1.3 1.3 0 0 1-.14-.129L8.04 15.96l-1.994-1.873a1.3 1.3 0 0 1-.129-.14l-4.571-.963a.75.75 0 0 1-.49-1.12l2.71-4.514c.316-.527.885-.85 1.5-.85h5.037a24 24 0 0 1 1.542-1.594l1.304-1.23A10.75 10.75 0 0 1 20.321.75Zm-6.344 4.018v-.001l-1.304 1.23a22.3 22.3 0 0 0-3.255 3.851l-2.193 3.29 1.859 1.744.034.034 1.743 1.858 3.288-2.192a22.3 22.3 0 0 0 3.854-3.257l1.228-1.303a9.25 9.25 0 0 0 2.517-6.346V2.5a.25.25 0 0 0-.25-.25h-1.177a9.25 9.25 0 0 0-6.344 2.518M6.5 21c-1.209 1.209-3.901 1.445-4.743 1.49a.24.24 0 0 1-.18-.067.24.24 0 0 1-.067-.18c.045-.842.281-3.534 1.49-4.743.9-.9 2.6-.9 3.5 0s.9 2.6 0 3.5m-.592-8.588L8.17 9.017q.346-.519.717-1.017H5.066a.25.25 0 0 0-.214.121l-2.167 3.612ZM16 15.112q-.5.372-1.018.718l-3.393 2.262.678 3.223 3.612-2.167a.25.25 0 0 0 .121-.214ZM17.5 8a1.5 1.5 0 1 1-3.001-.001A1.5 1.5 0 0 1 17.5 8"/></svg></span> The package is updated with every release.</li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 2.5a5.5 5.5 0 0 1 3.096 10.047 9.005 9.005 0 0 1 5.9 8.181.75.75 0 1 1-1.499.044 7.5 7.5 0 0 0-14.993 0 .75.75 0 0 1-1.5-.045 9.005 9.005 0 0 1 5.9-8.18A5.5 5.5 0 0 1 12 2.5M8 8a4 4 0 1 0 8 0 4 4 0 0 0-8 0"/></svg></span> Maintainer: <a href="https://github.com/ax3l">Axel Huebl</a></li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 3a2 2 0 0 1 2-2h9.982a2 2 0 0 1 1.414.586l4.018 4.018A2 2 0 0 1 21 7.018V21a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Zm2-.5a.5.5 0 0 0-.5.5v18a.5.5 0 0 0 .5.5h14a.5.5 0 0 0 .5-.5V8.5h-4a2 2 0 0 1-2-2v-4Zm10 0v4a.5.5 0 0 0 .5.5h4a.5.5 0 0 0-.146-.336l-4.018-4.018A.5.5 0 0 0 15 2.5"/></svg></span> File issues at the <a href="https://github.com/spack/spack/issues">Spack issue tracker</a></li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M10.97 8.265a1.45 1.45 0 0 0-.487.57.75.75 0 0 1-1.341-.67c.2-.402.513-.826.997-1.148C10.627 6.69 11.244 6.5 12 6.5c.658 0 1.369.195 1.934.619a2.45 2.45 0 0 1 1.004 2.006c0 1.033-.513 1.72-1.027 2.215-.19.183-.399.358-.579.508l-.147.123a4 4 0 0 0-.435.409v1.37a.75.75 0 1 1-1.5 0v-1.473c0-.237.067-.504.247-.736.22-.28.486-.517.718-.714l.183-.153.001-.001c.172-.143.324-.27.47-.412.368-.355.569-.676.569-1.136a.95.95 0 0 0-.404-.806C12.766 8.118 12.384 8 12 8c-.494 0-.814.121-1.03.265M13 17a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/><path d="M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1M2.5 12a9.5 9.5 0 0 0 9.5 9.5 9.5 9.5 0 0 0 9.5-9.5A9.5 9.5 0 0 0 12 2.5 9.5 9.5 0 0 0 2.5 12"/></svg></span> <a href="https://spack.io">Spack website</a></li> </ul> </div> <p>If you are using <a href="https://www.spack.io/">Spack</a> to manage your dependencies, you can use the <a href="https://packages.spack.io/package.html?name=nlohmann-json"><code>nlohmann-json</code> package</a> via</p> <div class=highlight><pre><span></span><code>spack<span class=w> </span>install<span class=w> </span>nlohmann-json
|
||||
</code></pre></div> <p>Please see the <a href="https://github.com/spack/spack">Spack project</a> for any issues regarding the packaging.</p> <details class=example> <summary>Example</summary> <ol> <li> <p>Create the following files:</p> <div class=highlight><span class=filename>CMakeLists.txt</span><pre><span></span><code><span class=nb>cmake_minimum_required</span><span class=p>(</span><span class=s>VERSION</span><span class=w> </span><span class=s>3.15</span><span class=p>)</span>
|
||||
@@ -154,10 +154,10 @@ cmake<span class=w> </span>--build<span class=w> </span>build
|
||||
</code></pre></div> </li> </ol> </details> <h2 id=hunter>Hunter<a class=headerlink href=#hunter title="Permanent link">¶</a></h2> <div class="admonition abstract"> <p class=admonition-title>Summary</p> <p>package: <a href="https://hunter.readthedocs.io/en/latest/packages/pkg/nlohmann_json.html"><strong><code>nlohmann_json</code></strong></a></p> <ul> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M7.75 6.5a1.25 1.25 0 1 0 0 2.5 1.25 1.25 0 0 0 0-2.5"/><path d="M2.5 1h8.44a1.5 1.5 0 0 1 1.06.44l10.25 10.25a1.5 1.5 0 0 1 0 2.12l-8.44 8.44a1.5 1.5 0 0 1-2.12 0L1.44 12A1.5 1.5 0 0 1 1 10.94V2.5A1.5 1.5 0 0 1 2.5 1m0 1.5v8.44l10.25 10.25 8.44-8.44L10.94 2.5Z"/></svg></span> Available versions: current version and older versions (see <a href="https://hunter.readthedocs.io/en/latest/packages/pkg/nlohmann_json.html">Hunter package</a>)</li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20.322.75h1.176a1.75 1.75 0 0 1 1.75 1.749v1.177a10.75 10.75 0 0 1-2.925 7.374l-1.228 1.304a24 24 0 0 1-1.596 1.542v5.038c0 .615-.323 1.184-.85 1.5l-4.514 2.709a.75.75 0 0 1-1.12-.488l-.963-4.572a1.3 1.3 0 0 1-.14-.129L8.04 15.96l-1.994-1.873a1.3 1.3 0 0 1-.129-.14l-4.571-.963a.75.75 0 0 1-.49-1.12l2.71-4.514c.316-.527.885-.85 1.5-.85h5.037a24 24 0 0 1 1.542-1.594l1.304-1.23A10.75 10.75 0 0 1 20.321.75Zm-6.344 4.018v-.001l-1.304 1.23a22.3 22.3 0 0 0-3.255 3.851l-2.193 3.29 1.859 1.744.034.034 1.743 1.858 3.288-2.192a22.3 22.3 0 0 0 3.854-3.257l1.228-1.303a9.25 9.25 0 0 0 2.517-6.346V2.5a.25.25 0 0 0-.25-.25h-1.177a9.25 9.25 0 0 0-6.344 2.518M6.5 21c-1.209 1.209-3.901 1.445-4.743 1.49a.24.24 0 0 1-.18-.067.24.24 0 0 1-.067-.18c.045-.842.281-3.534 1.49-4.743.9-.9 2.6-.9 3.5 0s.9 2.6 0 3.5m-.592-8.588L8.17 9.017q.346-.519.717-1.017H5.066a.25.25 0 0 0-.214.121l-2.167 3.612ZM16 15.112q-.5.372-1.018.718l-3.393 2.262.678 3.223 3.612-2.167a.25.25 0 0 0 .121-.214ZM17.5 8a1.5 1.5 0 1 1-3.001-.001A1.5 1.5 0 0 1 17.5 8"/></svg></span> The package is updated with every release.</li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 3a2 2 0 0 1 2-2h9.982a2 2 0 0 1 1.414.586l4.018 4.018A2 2 0 0 1 21 7.018V21a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Zm2-.5a.5.5 0 0 0-.5.5v18a.5.5 0 0 0 .5.5h14a.5.5 0 0 0 .5-.5V8.5h-4a2 2 0 0 1-2-2v-4Zm10 0v4a.5.5 0 0 0 .5.5h4a.5.5 0 0 0-.146-.336l-4.018-4.018A.5.5 0 0 0 15 2.5"/></svg></span> File issues at the <a href="https://github.com/cpp-pm/hunter/issues">Hunter issue tracker</a></li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M10.97 8.265a1.45 1.45 0 0 0-.487.57.75.75 0 0 1-1.341-.67c.2-.402.513-.826.997-1.148C10.627 6.69 11.244 6.5 12 6.5c.658 0 1.369.195 1.934.619a2.45 2.45 0 0 1 1.004 2.006c0 1.033-.513 1.72-1.027 2.215-.19.183-.399.358-.579.508l-.147.123a4 4 0 0 0-.435.409v1.37a.75.75 0 1 1-1.5 0v-1.473c0-.237.067-.504.247-.736.22-.28.486-.517.718-.714l.183-.153.001-.001c.172-.143.324-.27.47-.412.368-.355.569-.676.569-1.136a.95.95 0 0 0-.404-.806C12.766 8.118 12.384 8 12 8c-.494 0-.814.121-1.03.265M13 17a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/><path d="M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1M2.5 12a9.5 9.5 0 0 0 9.5 9.5 9.5 9.5 0 0 0 9.5-9.5A9.5 9.5 0 0 0 12 2.5 9.5 9.5 0 0 0 2.5 12"/></svg></span> <a href="https://hunter.readthedocs.io/en/latest/">Hunter website</a></li> </ul> </div> <p>If you are using <a href="https://github.com/cpp-pm/hunter">Hunter</a> on your project for external dependencies, then you can use the <a href="https://hunter.readthedocs.io/en/latest/packages/pkg/nlohmann_json.html">nlohmann_json package</a> via</p> <div class=highlight><pre><span></span><code><span class=nb>hunter_add_package</span><span class=p>(</span><span class=s>nlohmann_json</span><span class=p>)</span>
|
||||
</code></pre></div> <p>Please see the Hunter project for any issues regarding the packaging.</p> <details class=example> <summary>Example</summary> <ol> <li> <p>Create the following files:</p> <div class=highlight><span class=filename>CMakeLists.txt</span><pre><span></span><code><span class=nb>cmake_minimum_required</span><span class=p>(</span><span class=s>VERSION</span><span class=w> </span><span class=s>3.15</span><span class=p>)</span>
|
||||
|
||||
<span class=nb>include</span><span class=p>(</span><span class=s2>"cmake/HunterGate.cmake"</span><span class=p>)</span>
|
||||
<span class=nb>include</span><span class=p>(</span><span class=s2>"cmake/HunterGate.cmake"</span><span class=p>)</span>
|
||||
<span class=nb>HunterGate</span><span class=p>(</span>
|
||||
<span class=w> </span><span class=s>URL</span><span class=w> </span><span class=s2>"https://github.com/cpp-pm/hunter/archive/v0.23.297.tar.gz"</span>
|
||||
<span class=w> </span><span class=s>SHA1</span><span class=w> </span><span class=s2>"3319fe6a3b08090df7df98dee75134d68e2ef5a3"</span>
|
||||
<span class=w> </span><span class=s>URL</span><span class=w> </span><span class=s2>"https://github.com/cpp-pm/hunter/archive/v0.23.297.tar.gz"</span>
|
||||
<span class=w> </span><span class=s>SHA1</span><span class=w> </span><span class=s2>"3319fe6a3b08090df7df98dee75134d68e2ef5a3"</span>
|
||||
<span class=p>)</span>
|
||||
|
||||
<span class=nb>project</span><span class=p>(</span><span class=s>json_example</span><span class=p>)</span>
|
||||
@@ -225,12 +225,12 @@ cmake<span class=w> </span>--build<span class=w> </span>build
|
||||
</code></pre></div> </li> <li> <p>Build</p> <div class=highlight><pre><span></span><code>cmake<span class=w> </span>-S<span class=w> </span>.<span class=w> </span>-B<span class=w> </span>build<span class=w> </span>-DCMAKE_TOOLCHAIN_FILE<span class=o>=</span>cget/cget/cget.cmake
|
||||
cmake<span class=w> </span>--build<span class=w> </span>build
|
||||
</code></pre></div> </li> </ol> </details> <h2 id=swift-package-manager>Swift Package Manager<a class=headerlink href=#swift-package-manager title="Permanent link">¶</a></h2> <div class="admonition abstract"> <p class=admonition-title>Summary</p> <p>package: <strong><code>nlohmann/json</code></strong></p> <ul> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M7.75 6.5a1.25 1.25 0 1 0 0 2.5 1.25 1.25 0 0 0 0-2.5"/><path d="M2.5 1h8.44a1.5 1.5 0 0 1 1.06.44l10.25 10.25a1.5 1.5 0 0 1 0 2.12l-8.44 8.44a1.5 1.5 0 0 1-2.12 0L1.44 12A1.5 1.5 0 0 1 1 10.94V2.5A1.5 1.5 0 0 1 2.5 1m0 1.5v8.44l10.25 10.25 8.44-8.44L10.94 2.5Z"/></svg></span> Available versions: current version and older versions</li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20.322.75h1.176a1.75 1.75 0 0 1 1.75 1.749v1.177a10.75 10.75 0 0 1-2.925 7.374l-1.228 1.304a24 24 0 0 1-1.596 1.542v5.038c0 .615-.323 1.184-.85 1.5l-4.514 2.709a.75.75 0 0 1-1.12-.488l-.963-4.572a1.3 1.3 0 0 1-.14-.129L8.04 15.96l-1.994-1.873a1.3 1.3 0 0 1-.129-.14l-4.571-.963a.75.75 0 0 1-.49-1.12l2.71-4.514c.316-.527.885-.85 1.5-.85h5.037a24 24 0 0 1 1.542-1.594l1.304-1.23A10.75 10.75 0 0 1 20.321.75Zm-6.344 4.018v-.001l-1.304 1.23a22.3 22.3 0 0 0-3.255 3.851l-2.193 3.29 1.859 1.744.034.034 1.743 1.858 3.288-2.192a22.3 22.3 0 0 0 3.854-3.257l1.228-1.303a9.25 9.25 0 0 0 2.517-6.346V2.5a.25.25 0 0 0-.25-.25h-1.177a9.25 9.25 0 0 0-6.344 2.518M6.5 21c-1.209 1.209-3.901 1.445-4.743 1.49a.24.24 0 0 1-.18-.067.24.24 0 0 1-.067-.18c.045-.842.281-3.534 1.49-4.743.9-.9 2.6-.9 3.5 0s.9 2.6 0 3.5m-.592-8.588L8.17 9.017q.346-.519.717-1.017H5.066a.25.25 0 0 0-.214.121l-2.167 3.612ZM16 15.112q-.5.372-1.018.718l-3.393 2.262.678 3.223 3.612-2.167a.25.25 0 0 0 .121-.214ZM17.5 8a1.5 1.5 0 1 1-3.001-.001A1.5 1.5 0 0 1 17.5 8"/></svg></span> The package is updated with every release.</li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 3a2 2 0 0 1 2-2h9.982a2 2 0 0 1 1.414.586l4.018 4.018A2 2 0 0 1 21 7.018V21a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Zm2-.5a.5.5 0 0 0-.5.5v18a.5.5 0 0 0 .5.5h14a.5.5 0 0 0 .5-.5V8.5h-4a2 2 0 0 1-2-2v-4Zm10 0v4a.5.5 0 0 0 .5.5h4a.5.5 0 0 0-.146-.336l-4.018-4.018A.5.5 0 0 0 15 2.5"/></svg></span> File issues at the <a href="https://github.com/nlohmann/json/issues">library issue tracker</a></li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M10.97 8.265a1.45 1.45 0 0 0-.487.57.75.75 0 0 1-1.341-.67c.2-.402.513-.826.997-1.148C10.627 6.69 11.244 6.5 12 6.5c.658 0 1.369.195 1.934.619a2.45 2.45 0 0 1 1.004 2.006c0 1.033-.513 1.72-1.027 2.215-.19.183-.399.358-.579.508l-.147.123a4 4 0 0 0-.435.409v1.37a.75.75 0 1 1-1.5 0v-1.473c0-.237.067-.504.247-.736.22-.28.486-.517.718-.714l.183-.153.001-.001c.172-.143.324-.27.47-.412.368-.355.569-.676.569-1.136a.95.95 0 0 0-.404-.806C12.766 8.118 12.384 8 12 8c-.494 0-.814.121-1.03.265M13 17a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/><path d="M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1M2.5 12a9.5 9.5 0 0 0 9.5 9.5 9.5 9.5 0 0 0 9.5-9.5A9.5 9.5 0 0 0 12 2.5 9.5 9.5 0 0 0 2.5 12"/></svg></span> <a href="https://developer.apple.com/documentation/xcode/adding-package-dependencies-to-your-app">Xcode documentation</a></li> </ul> </div> <h2 id=nuget>NuGet<a class=headerlink href=#nuget title="Permanent link">¶</a></h2> <div class="admonition abstract"> <p class=admonition-title>Summary</p> <p>package: <a href="https://www.nuget.org/packages/nlohmann.json/"><strong><code>nlohmann.json</code></strong></a></p> <ul> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M7.75 6.5a1.25 1.25 0 1 0 0 2.5 1.25 1.25 0 0 0 0-2.5"/><path d="M2.5 1h8.44a1.5 1.5 0 0 1 1.06.44l10.25 10.25a1.5 1.5 0 0 1 0 2.12l-8.44 8.44a1.5 1.5 0 0 1-2.12 0L1.44 12A1.5 1.5 0 0 1 1 10.94V2.5A1.5 1.5 0 0 1 2.5 1m0 1.5v8.44l10.25 10.25 8.44-8.44L10.94 2.5Z"/></svg></span> Available versions: current and previous versions</li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20.322.75h1.176a1.75 1.75 0 0 1 1.75 1.749v1.177a10.75 10.75 0 0 1-2.925 7.374l-1.228 1.304a24 24 0 0 1-1.596 1.542v5.038c0 .615-.323 1.184-.85 1.5l-4.514 2.709a.75.75 0 0 1-1.12-.488l-.963-4.572a1.3 1.3 0 0 1-.14-.129L8.04 15.96l-1.994-1.873a1.3 1.3 0 0 1-.129-.14l-4.571-.963a.75.75 0 0 1-.49-1.12l2.71-4.514c.316-.527.885-.85 1.5-.85h5.037a24 24 0 0 1 1.542-1.594l1.304-1.23A10.75 10.75 0 0 1 20.321.75Zm-6.344 4.018v-.001l-1.304 1.23a22.3 22.3 0 0 0-3.255 3.851l-2.193 3.29 1.859 1.744.034.034 1.743 1.858 3.288-2.192a22.3 22.3 0 0 0 3.854-3.257l1.228-1.303a9.25 9.25 0 0 0 2.517-6.346V2.5a.25.25 0 0 0-.25-.25h-1.177a9.25 9.25 0 0 0-6.344 2.518M6.5 21c-1.209 1.209-3.901 1.445-4.743 1.49a.24.24 0 0 1-.18-.067.24.24 0 0 1-.067-.18c.045-.842.281-3.534 1.49-4.743.9-.9 2.6-.9 3.5 0s.9 2.6 0 3.5m-.592-8.588L8.17 9.017q.346-.519.717-1.017H5.066a.25Line truncated
|
||||
</code></pre></div> <details class=example> <summary>Example</summary> <p>Probably the easiest way to use NuGet packages is through Visual Studio graphical interface. Right-click on a project (any C++ project would do) in “Solution Explorer” and select “Manage NuGet Packages…”</p> <p><img alt src=../nuget/nuget-search-package.png></p> <p>Now you can click on “Browse” tab and find the package you like to install.</p> <p><img alt src=../nuget/nuget-select-package.png></p> <p>Most of the packages in NuGet gallery are .NET packages and would not be useful in a C++ project. Microsoft recommends adding “native” and “nativepackage” tags to C++ NuGet packages to distinguish them, but even adding “native” to search query would still show many .NET-only packages in the list.</p> <p>Nevertheless, after finding the package you want, click on “Install” button and accept confirmation dialogs. After the package is successfully added to the projects, you should be able to build and execute the project without the need for making any more changes to build settings.</p> <div class="admonition note"> <p class=admonition-title>Note</p> <p>A few notes:</p> <ul> <li>NuGet packages are installed per project and not system-wide. The header and binaries for the package are only available to the project it is added to, and not other projects (obviously unless we add the package to those projects as well)</li> <li>One of the many great things about your elegant work is that it is a header-only library, which makes deployment very straightforward. In case of libraries which need binary deployment (<code>.lib</code>, <code>.dll</code> and <code>.pdb</code> for debug info) the different binaries for each supported compiler version must be added to the NuGet package. Some library creators cram binary versions for all supported Visual C++ compiler versions in the same package, so a single package will support all compilers. Some others create a different package for each compiler version (and you usually see things like “v140” or “vc141” in package name to clarify which VC++ compiler this package supports).</li> <li>Packages can have dependency to other packages, and in this case, NuGet will install all dependencies as well as the requested package recursively.</li> </ul> </div> <p><strong>What happens behind the scenes</strong></p> <p>After you add a NuGet package, three changes occur in the project source directory. Of course, we could make these changes manually instead of using GUI:</p> <p><img alt src=../nuget/nuget-project-changes.png></p> <ol> <li> <p>A <code>packages.config</code> file will be created (or updated to include the package name if one such file already exists). This file contains a list of the packages required by this project (name and minimum version) and must be added to the project source code repository, so if you move the source code to a new machine, MSBuild/NuGet knows which packages it has to restore (which it does automatically before each build).</p> <div class=highlight><pre><span></span><code><span class=cp><?xml version="1.0" encoding="utf-8"?></span>
|
||||
</code></pre></div> <details class=example> <summary>Example</summary> <p>Probably the easiest way to use NuGet packages is through Visual Studio graphical interface. Right-click on a project (any C++ project would do) in “Solution Explorer” and select “Manage NuGet Packages…”</p> <p><img alt src=../nuget/nuget-search-package.png></p> <p>Now you can click on “Browse” tab and find the package you like to install.</p> <p><img alt src=../nuget/nuget-select-package.png></p> <p>Most of the packages in NuGet gallery are .NET packages and would not be useful in a C++ project. Microsoft recommends adding “native” and “nativepackage” tags to C++ NuGet packages to distinguish them, but even adding “native” to search query would still show many .NET-only packages in the list.</p> <p>Nevertheless, after finding the package you want, click on “Install” button and accept confirmation dialogs. After the package is successfully added to the projects, you should be able to build and execute the project without the need for making any more changes to build settings.</p> <div class="admonition note"> <p class=admonition-title>Note</p> <p>A few notes:</p> <ul> <li>NuGet packages are installed per project and not system-wide. The header and binaries for the package are only available to the project it is added to, and not other projects (obviously unless we add the package to those projects as well)</li> <li>One of the many great things about your elegant work is that it is a header-only library, which makes deployment very straightforward. In case of libraries which need binary deployment (<code>.lib</code>, <code>.dll</code> and <code>.pdb</code> for debug info) the different binaries for each supported compiler version must be added to the NuGet package. Some library creators cram binary versions for all supported Visual C++ compiler versions in the same package, so a single package will support all compilers. Some others create a different package for each compiler version (and you usually see things like “v140” or “vc141” in package name to clarify which VC++ compiler this package supports).</li> <li>Packages can have dependency to other packages, and in this case, NuGet will install all dependencies as well as the requested package recursively.</li> </ul> </div> <p><strong>What happens behind the scenes</strong></p> <p>After you add a NuGet package, three changes occur in the project source directory. Of course, we could make these changes manually instead of using GUI:</p> <p><img alt src=../nuget/nuget-project-changes.png></p> <ol> <li> <p>A <code>packages.config</code> file will be created (or updated to include the package name if one such file already exists). This file contains a list of the packages required by this project (name and minimum version) and must be added to the project source code repository, so if you move the source code to a new machine, MSBuild/NuGet knows which packages it has to restore (which it does automatically before each build).</p> <div class=highlight><pre><span></span><code><span class=cp><?xml version="1.0" encoding="utf-8"?></span>
|
||||
<span class=nt><packages></span>
|
||||
<span class=w> </span><span class=nt><package</span><span class=w> </span><span class=na>id=</span><span class=s>"nlohmann.json"</span><span class=w> </span><span class=na>version=</span><span class=s>"3.5.0"</span><span class=w> </span><span class=na>targetFramework=</span><span class=s>"native"</span><span class=w> </span><span class=nt>/></span>
|
||||
<span class=w> </span><span class=nt><package</span><span class=w> </span><span class=na>id=</span><span class=s>"nlohmann.json"</span><span class=w> </span><span class=na>version=</span><span class=s>"3.5.0"</span><span class=w> </span><span class=na>targetFramework=</span><span class=s>"native"</span><span class=w> </span><span class=nt>/></span>
|
||||
<span class=nt></packages></span>
|
||||
</code></pre></div> </li> <li> <p>A <code>packages</code> folder which contains actual files in the packages (these are header and binary files required for a successful build, plus a few metadata files). In case of this library for example, it contains <code>json.hpp</code>:</p> <p><img alt src=../nuget/nuget-package-content.png></p> <div class="admonition note"> <p class=admonition-title>Note</p> <p>This directory should not be added to the project source code repository, as it will be restored before each build by MSBuild/NuGet. If you go ahead and delete this folder, then build the project again, it will magically re-appear!</p> </div> </li> <li> <p>Project MSBuild makefile (which for Visual C++ projects has a .vcxproj extension) will be updated to include settings from the package.</p> <p><img alt src=../nuget/nuget-project-makefile.png></p> <p>The important bit for us here is line 170, which tells MSBuild to import settings from <code>packages\nlohmann.json.3.5.0\build\native\nlohmann.json.targets</code> file. This is a file the package creator created and added to the package (you can see it is one of the two files I created in this repository, the other just contains package attributes like name and version number). What does it contain?</p> <p>For our header-only repository, the only setting we need is to add our include directory to the list of <code>AdditionalIncludeDirectories</code>:</p> <div class=highlight><pre><span></span><code><span class=cp><?xml version="1.0" encoding="utf-8"?></span>
|
||||
<span class=nt><Project</span><span class=w> </span><span class=na>ToolsVersion=</span><span class=s>"4.0"</span><span class=w> </span><span class=na>xmlns=</span><span class=s>"http://schemas.microsoft.com/developer/msbuild/2003"</span><span class=nt>></span>
|
||||
</code></pre></div> </li> <li> <p>A <code>packages</code> folder which contains actual files in the packages (these are header and binary files required for a successful build, plus a few metadata files). In case of this library for example, it contains <code>json.hpp</code>:</p> <p><img alt src=../nuget/nuget-package-content.png></p> <div class="admonition note"> <p class=admonition-title>Note</p> <p>This directory should not be added to the project source code repository, as it will be restored before each build by MSBuild/NuGet. If you go ahead and delete this folder, then build the project again, it will magically re-appear!</p> </div> </li> <li> <p>Project MSBuild makefile (which for Visual C++ projects has a .vcxproj extension) will be updated to include settings from the package.</p> <p><img alt src=../nuget/nuget-project-makefile.png></p> <p>The important bit for us here is line 170, which tells MSBuild to import settings from <code>packages\nlohmann.json.3.5.0\build\native\nlohmann.json.targets</code> file. This is a file the package creator created and added to the package (you can see it is one of the two files I created in this repository, the other just contains package attributes like name and version number). What does it contain?</p> <p>For our header-only repository, the only setting we need is to add our include directory to the list of <code>AdditionalIncludeDirectories</code>:</p> <div class=highlight><pre><span></span><code><span class=cp><?xml version="1.0" encoding="utf-8"?></span>
|
||||
<span class=nt><Project</span><span class=w> </span><span class=na>ToolsVersion=</span><span class=s>"4.0"</span><span class=w> </span><span class=na>xmlns=</span><span class=s>"http://schemas.microsoft.com/developer/msbuild/2003"</span><span class=nt>></span>
|
||||
<span class=w> </span><span class=nt><ItemDefinitionGroup></span>
|
||||
<span class=w> </span><span class=nt><ClCompile></span>
|
||||
<span class=w> </span><span class=nt><AdditionalIncludeDirectories></span>$(MSBuildThisFileDirectory)include;%(AdditionalIncludeDirectories)<span class=nt></AdditionalIncludeDirectories></span>
|
||||
@@ -294,7 +294,7 @@ location: https://pkg.cppget.org/1/stable
|
||||
import nljson = nlohmann-json%lib{json}
|
||||
```
|
||||
|
||||
- then add the library's target as requirement for your target using it, for example:
|
||||
- then add the library's target as requirement for your target using it, for example:
|
||||
```
|
||||
exe{example} : ... $nljson
|
||||
```
|
||||
@@ -330,7 +330,7 @@ location: https://pkg.cppget.org/1/stable
|
||||
|
||||
<span class=nf>exe{example}</span><span class=o>:</span><span class=w> </span>{<span class=n>hxx</span> <span class=n>ixx</span> <span class=n>txx</span> <span class=n>cxx</span>}{**} $<span class=n>libs</span> <span class=n>testscript</span>
|
||||
|
||||
<span class=nv>cxx.poptions</span><span class=w> </span><span class=o>=</span>+<span class=w> </span><span class=s2>"-I</span><span class=nv>$out_root</span><span class=s2>"</span><span class=w> </span><span class=s2>"-I</span><span class=nv>$src_root</span><span class=s2>"</span>
|
||||
<span class=nv>cxx.poptions</span><span class=w> </span><span class=o>=</span>+<span class=w> </span><span class=s2>"-I</span><span class=nv>$out_root</span><span class=s2>"</span><span class=w> </span><span class=s2>"-I</span><span class=nv>$src_root</span><span class=s2>"</span>
|
||||
</code></pre></div> </li> <li> <p><code>example/example/example.cxx</code>: <code>bdep new</code> generates a "hello world" by default, replace it by this:</p> <div class=highlight><span class=filename>example.cxx</span><pre><span></span><code><span class=cp>#include</span><span class=w> </span><span class=cpf><nlohmann/json.hpp></span>
|
||||
<span class=cp>#include</span><span class=w> </span><span class=cpf><iostream></span>
|
||||
<span class=cp>#include</span><span class=w> </span><span class=cpf><iomanip></span>
|
||||
@@ -345,34 +345,34 @@ location: https://pkg.cppget.org/1/stable
|
||||
<span class=o>:</span>
|
||||
<span class=n>$</span><span class=o>*</span><span class=w> </span><span class=o>>>~/</span><span class=n>EOO</span><span class=o>/</span>
|
||||
<span class=p>{</span>
|
||||
<span class=w> </span><span class=s>"compiler"</span><span class=o>:</span><span class=w> </span><span class=p>{</span>
|
||||
<span class=o>/</span><span class=w> </span><span class=s>"c\+\+"</span><span class=o>:</span><span class=w> </span><span class=s>"\d+"</span><span class=p>,</span><span class=o>/</span>
|
||||
<span class=o>/</span><span class=w> </span><span class=s>"family"</span><span class=o>:</span><span class=w> </span><span class=s>"[\w\d]+"</span><span class=p>,</span><span class=o>/</span>
|
||||
<span class=o>/</span><span class=w> </span><span class=s>"version"</span><span class=o>:</span><span class=w> </span><span class=err>\</span><span class=n>d</span><span class=o>+/</span>
|
||||
<span class=w> </span><span class=s>"compiler"</span><span class=o>:</span><span class=w> </span><span class=p>{</span>
|
||||
<span class=o>/</span><span class=w> </span><span class=s>"c\+\+"</span><span class=o>:</span><span class=w> </span><span class=s>"\d+"</span><span class=p>,</span><span class=o>/</span>
|
||||
<span class=o>/</span><span class=w> </span><span class=s>"family"</span><span class=o>:</span><span class=w> </span><span class=s>"[\w\d]+"</span><span class=p>,</span><span class=o>/</span>
|
||||
<span class=o>/</span><span class=w> </span><span class=s>"version"</span><span class=o>:</span><span class=w> </span><span class=err>\</span><span class=n>d</span><span class=o>+/</span>
|
||||
<span class=w> </span><span class=p>},</span>
|
||||
<span class=o>/</span><span class=w> </span><span class=s>"copyright"</span><span class=o>:</span><span class=w> </span><span class=s>"\(C\) 2013-\d+ Niels Lohmann"</span><span class=p>,</span><span class=o>/</span>
|
||||
<span class=w> </span><span class=s>"name"</span><span class=o>:</span><span class=w> </span><span class=s>"JSON for Modern C++"</span><span class=p>,</span>
|
||||
<span class=o>/</span><span class=w> </span><span class=s>"platform"</span><span class=o>:</span><span class=w> </span><span class=s>"[\w\d]+"</span><span class=p>,</span><span class=o>/</span>
|
||||
<span class=w> </span><span class=s>"url"</span><span class=o>:</span><span class=w> </span><span class=s>"https://github.com/nlohmann/json"</span><span class=p>,</span>
|
||||
<span class=w> </span><span class=s>"version"</span><span class=o>:</span><span class=w> </span><span class=p>{</span>
|
||||
<span class=w> </span><span class=s>"major"</span><span class=o>:</span><span class=w> </span><span class=mi>3</span><span class=p>,</span>
|
||||
<span class=o>/</span><span class=w> </span><span class=s>"minor"</span><span class=o>:</span><span class=w> </span><span class=err>\</span><span class=n>d</span><span class=o>+</span><span class=p>,</span><span class=o>/</span>
|
||||
<span class=o>/</span><span class=w> </span><span class=s>"patch"</span><span class=o>:</span><span class=w> </span><span class=err>\</span><span class=n>d</span><span class=o>+</span><span class=p>,</span><span class=o>/</span>
|
||||
<span class=o>/</span><span class=w> </span><span class=s>"string"</span><span class=o>:</span><span class=w> </span><span class=s>"3\.\d+\.\d+"</span><span class=o>/</span>
|
||||
<span class=o>/</span><span class=w> </span><span class=s>"copyright"</span><span class=o>:</span><span class=w> </span><span class=s>"\(C\) 2013-\d+ Niels Lohmann"</span><span class=p>,</span><span class=o>/</span>
|
||||
<span class=w> </span><span class=s>"name"</span><span class=o>:</span><span class=w> </span><span class=s>"JSON for Modern C++"</span><span class=p>,</span>
|
||||
<span class=o>/</span><span class=w> </span><span class=s>"platform"</span><span class=o>:</span><span class=w> </span><span class=s>"[\w\d]+"</span><span class=p>,</span><span class=o>/</span>
|
||||
<span class=w> </span><span class=s>"url"</span><span class=o>:</span><span class=w> </span><span class=s>"https://github.com/nlohmann/json"</span><span class=p>,</span>
|
||||
<span class=w> </span><span class=s>"version"</span><span class=o>:</span><span class=w> </span><span class=p>{</span>
|
||||
<span class=w> </span><span class=s>"major"</span><span class=o>:</span><span class=w> </span><span class=mi>3</span><span class=p>,</span>
|
||||
<span class=o>/</span><span class=w> </span><span class=s>"minor"</span><span class=o>:</span><span class=w> </span><span class=err>\</span><span class=n>d</span><span class=o>+</span><span class=p>,</span><span class=o>/</span>
|
||||
<span class=o>/</span><span class=w> </span><span class=s>"patch"</span><span class=o>:</span><span class=w> </span><span class=err>\</span><span class=n>d</span><span class=o>+</span><span class=p>,</span><span class=o>/</span>
|
||||
<span class=o>/</span><span class=w> </span><span class=s>"string"</span><span class=o>:</span><span class=w> </span><span class=s>"3\.\d+\.\d+"</span><span class=o>/</span>
|
||||
<span class=w> </span><span class=p>}</span>
|
||||
<span class=p>}</span>
|
||||
<span class=n>EOO</span>
|
||||
</code></pre></div> </li> </ul> </li> <li> <p>Initialize the project in a default C/C++ build configuration directory, then build and test:</p> <div class=highlight><pre><span></span><code><span class=nb>cd</span><span class=w> </span>example/
|
||||
|
||||
<span class=c1># create default C/C++ build configuration in ../example-myconfig/, initialize the project in it (downloads it's dependencies in it too)</span>
|
||||
<span class=c1># create default C/C++ build configuration in ../example-myconfig/, initialize the project in it (downloads it's dependencies in it too)</span>
|
||||
bdep<span class=w> </span>init<span class=w> </span>-C<span class=w> </span>@myconfig<span class=w> </span>cc
|
||||
|
||||
<span class=c1># build only,</span>
|
||||
b
|
||||
|
||||
<span class=c1># or build and test the executable's output, will only work if the `testscript` is correct</span>
|
||||
<span class=c1># or build and test the executable's output, will only work if the `testscript` is correct</span>
|
||||
b<span class=w> </span><span class=nb>test</span>
|
||||
</code></pre></div> </li> </ol> </details> <h2 id=cpmcmake>CPM.cmake<a class=headerlink href=#cpmcmake title="Permanent link">¶</a></h2> <div class="admonition abstract"> <p class=admonition-title>Summary</p> <p>package: <strong><code>gh:nlohmann/json</code></strong></p> <ul> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M7.75 6.5a1.25 1.25 0 1 0 0 2.5 1.25 1.25 0 0 0 0-2.5"/><path d="M2.5 1h8.44a1.5 1.5 0 0 1 1.06.44l10.25 10.25a1.5 1.5 0 0 1 0 2.12l-8.44 8.44a1.5 1.5 0 0 1-2.12 0L1.44 12A1.5 1.5 0 0 1 1 10.94V2.5A1.5 1.5 0 0 1 2.5 1m0 1.5v8.44l10.25 10.25 8.44-8.44L10.94 2.5Z"/></svg></span> Available versions: current and previous versions</li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20.322.75h1.176a1.75 1.75 0 0 1 1.75 1.749v1.177a10.75 10.75 0 0 1-2.925 7.374l-1.228 1.304a24 24 0 0 1-1.596 1.542v5.038c0 .615-.323 1.184-.85 1.5l-4.514 2.709a.75.75 0 0 1-1.12-.488l-.963-4.572a1.3 1.3 0 0 1-.14-.129L8.04 15.96l-1.994-1.873a1.3 1.3 0 0 1-.129-.14l-4.571-.963a.75.75 0 0 1-.49-1.12l2.71-4.514c.316-.527.885-.85 1.5-.85h5.037a24 24 0 0 1 1.542-1.594l1.304-1.23A10.75 10.75 0 0 1 20.321.75Zm-6.344 4.018v-.001l-1.304 1.23a22.3 22.3 0 0 0-3.255 3.851l-2.193 3.29 1.859 1.744.034.034 1.743 1.858 3.288-2.192a22.3 22.3 0 0 0 3.854-3.257l1.228-1.303a9.25 9.25 0 0 0 2.517-6.346V2.5a.25.25 0 0 0-.25-.25h-1.177a9.25 9.25 0 0 0-6.344 2.518M6.5 21c-1.209 1.209-3.901 1.445-4.743 1.49a.24.24 0 0 1-.18-.067.24.24 0 0 1-.067-.18c.045-.842.281-3.534 1.49-4.743.9-.9 2.6-.9 3.5 0s.9 2.6 0 3.5m-.592-8.588L8.17 9.017q.346-.519.717-1.017H5.066a.25.25 0 0 0-.214.121l-2.167 3.612ZM16 15.112q-.5.372-1.018.718l-3.393 2.262.678 3.223 3.612-2.167a.25.25 0 0 0 .121-.214ZM17.5 8a1.5 1.5 0 1 1-3.001-.001A1.5 1.5 0 0 1 17.5 8"/></svg></span> The package is updated with every release.</li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 3a2 2 0 0 1 2-2h9.982a2 2 0 0 1 1.414.586l4.018 4.018A2 2 0 0 1 21 7.018V21a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Zm2-.5a.5.5 0 0 0-.5.5v18a.5.5 0 0 0 .5.5h14a.5.5 0 0 0 .5-.5V8.5h-4a2 2 0 0 1-2-2v-4Zm10 0v4a.5.5 0 0 0 .5.5h4a.5.5 0 0 0-.146-.336l-4.018-4.018A.5.5 0 0 0 15 2.5"/></svg></span> File issues at the <a href="https://github.com/cpm-cmake/CPM.cmake/issues">CPM.cmake issue tracker</a></li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M10.97 8.265a1.45 1.45 0 0 0-.487.57.75.75 0 0 1-1.341-.67c.2-.402.513-.826.997-1.148C10.627 6.69 11.244 6.5 12 6.5c.658 0 1.369.195 1.934.619a2.45 2.45 0 0 1 1.004 2.006c0 1.033-.513 1.72-1.027 2.215-.19.183-.399.358-.579.508l-.147.123a4 4 0 0 0-.435.409v1.37a.75.75 0 1 1-1.5 0v-1.473c0-.237.067-.504.247-.736.22-.28.486-.517.718-.714l.183-.153.001-.001c.172-.143.324-.27.47-.412.368-.355.569-.676.569-1.136a.95.95 0 0 0-.404-.806C12.766 8.118 12.384 8 12 8c-.494 0-.814.121-1.03.265M13 17a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/><path d="M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1M2.5 12a9.5 9.5 0 0 0 9.5 9.5 9.5 9.5 0 0 0 9.5-9.5A9.5 9.5 0 0 0 12 2.5 9.5 9.5 0 0 0 2.5 12"/></svg></span> <a href="https://github.com/cpm-cmake/CPM.cmake">CPM.cmake website</a></li> </ul> </div> <p>If you are using <a href="https://github.com/TheLartians/CPM.cmake"><code>CPM.cmake</code></a>, add the <a href="https://github.com/TheLartians/CPM.cmake#adding-cpm">CPM.cmake script</a> and the following snippet to your CMake project:</p> <div class=highlight><pre><span></span><code><span class=nb>CPMAddPackage</span><span class=p>(</span><span class=s2>"gh:nlohmann/json@3.12.0"</span><span class=p>)</span>
|
||||
</code></pre></div> </li> </ol> </details> <h2 id=cpmcmake>CPM.cmake<a class=headerlink href=#cpmcmake title="Permanent link">¶</a></h2> <div class="admonition abstract"> <p class=admonition-title>Summary</p> <p>package: <strong><code>gh:nlohmann/json</code></strong></p> <ul> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M7.75 6.5a1.25 1.25 0 1 0 0 2.5 1.25 1.25 0 0 0 0-2.5"/><path d="M2.5 1h8.44a1.5 1.5 0 0 1 1.06.44l10.25 10.25a1.5 1.5 0 0 1 0 2.12l-8.44 8.44a1.5 1.5 0 0 1-2.12 0L1.44 12A1.5 1.5 0 0 1 1 10.94V2.5A1.5 1.5 0 0 1 2.5 1m0 1.5v8.44l10.25 10.25 8.44-8.44L10.94 2.5Z"/></svg></span> Available versions: current and previous versions</li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20.322.75h1.176a1.75 1.75 0 0 1 1.75 1.749v1.177a10.75 10.75 0 0 1-2.925 7.374l-1.228 1.304a24 24 0 0 1-1.596 1.542v5.038c0 .615-.323 1.184-.85 1.5l-4.514 2.709a.75.75 0 0 1-1.12-.488l-.963-4.572a1.3 1.3 0 0 1-.14-.129L8.04 15.96l-1.994-1.873a1.3 1.3 0 0 1-.129-.14l-4.571-.963a.75.75 0 0 1-.49-1.12l2.71-4.514c.316-.527.885-.85 1.5-.85h5.037a24 24 0 0 1 1.542-1.594l1.304-1.23A10.75 10.75 0 0 1 20.321.75Zm-6.344 4.018v-.001l-1.304 1.23a22.3 22.3 0 0 0-3.255 3.851l-2.193 3.29 1.859 1.744.034.034 1.743 1.858 3.288-2.192a22.3 22.3 0 0 0 3.854-3.257l1.228-1.303a9.25 9.25 0 0 0 2.517-6.346V2.5a.25.25 0 0 0-.25-.25h-1.177a9.25 9.25 0 0 0-6.344 2.518M6.5 21c-1.209 1.209-3.901 1.445-4.743 1.49a.24.24 0 0 1-.18-.067.24.24 0 0 1-.067-.18c.045-.842.281-3.534 1.49-4.743.9-.9 2.6-.9 3.5 0s.9 2.6 0 3.5m-.592-8.588L8.17 9.017q.346-.519.717-1.017H5.066a.25.25 0 0 0-.214.121l-2.167 3.612ZM16 15.112q-.5.372-1.018.718l-3.393 2.262.678 3.223 3.612-2.167a.25.25 0 0 0 .121-.214ZM17.5 8a1.5 1.5 0 1 1-3.001-.001A1.5 1.5 0 0 1 17.5 8"/></svg></span> The package is updated with every release.</li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 3a2 2 0 0 1 2-2h9.982a2 2 0 0 1 1.414.586l4.018 4.018A2 2 0 0 1 21 7.018V21a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Zm2-.5a.5.5 0 0 0-.5.5v18a.5.5 0 0 0 .5.5h14a.5.5 0 0 0 .5-.5V8.5h-4a2 2 0 0 1-2-2v-4Zm10 0v4a.5.5 0 0 0 .5.5h4a.5.5 0 0 0-.146-.336l-4.018-4.018A.5.5 0 0 0 15 2.5"/></svg></span> File issues at the <a href="https://github.com/cpm-cmake/CPM.cmake/issues">CPM.cmake issue tracker</a></li> <li><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M10.97 8.265a1.45 1.45 0 0 0-.487.57.75.75 0 0 1-1.341-.67c.2-.402.513-.826.997-1.148C10.627 6.69 11.244 6.5 12 6.5c.658 0 1.369.195 1.934.619a2.45 2.45 0 0 1 1.004 2.006c0 1.033-.513 1.72-1.027 2.215-.19.183-.399.358-.579.508l-.147.123a4 4 0 0 0-.435.409v1.37a.75.75 0 1 1-1.5 0v-1.473c0-.237.067-.504.247-.736.22-.28.486-.517.718-.714l.183-.153.001-.001c.172-.143.324-.27.47-.412.368-.355.569-.676.569-1.136a.95.95 0 0 0-.404-.806C12.766 8.118 12.384 8 12 8c-.494 0-.814.121-1.03.265M13 17a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/><path d="M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1M2.5 12a9.5 9.5 0 0 0 9.5 9.5 9.5 9.5 0 0 0 9.5-9.5A9.5 9.5 0 0 0 12 2.5 9.5 9.5 0 0 0 2.5 12"/></svg></span> <a href="https://github.com/cpm-cmake/CPM.cmake">CPM.cmake website</a></li> </ul> </div> <p>If you are using <a href="https://github.com/TheLartians/CPM.cmake"><code>CPM.cmake</code></a>, add the <a href="https://github.com/TheLartians/CPM.cmake#adding-cpm">CPM.cmake script</a> and the following snippet to your CMake project:</p> <div class=highlight><pre><span></span><code><span class=nb>CPMAddPackage</span><span class=p>(</span><span class=s2>"gh:nlohmann/json@3.12.0"</span><span class=p>)</span>
|
||||
</code></pre></div> <details class=example> <summary>Example</summary> <ol> <li> <p>Create the following files:</p> <div class=highlight><span class=filename>example.cpp</span><pre><span></span><code><span class=cp>#include</span><span class=w> </span><span class=cpf><nlohmann/json.hpp></span>
|
||||
<span class=cp>#include</span><span class=w> </span><span class=cpf><iostream></span>
|
||||
<span class=cp>#include</span><span class=w> </span><span class=cpf><iomanip></span>
|
||||
@@ -388,7 +388,7 @@ b<span class=w> </span><span class=nb>test</span>
|
||||
|
||||
<span class=nb>include</span><span class=p>(</span><span class=o>${</span><span class=nv>CMAKE_SOURCE_DIR</span><span class=o>}</span><span class=s>/cmake/CPM.cmake</span><span class=p>)</span>
|
||||
|
||||
<span class=nb>CPMAddPackage</span><span class=p>(</span><span class=s2>"gh:nlohmann/json@3.12.0"</span><span class=p>)</span>
|
||||
<span class=nb>CPMAddPackage</span><span class=p>(</span><span class=s2>"gh:nlohmann/json@3.12.0"</span><span class=p>)</span>
|
||||
|
||||
<span class=nb>add_executable</span><span class=p>(</span><span class=s>json_example</span><span class=w> </span><span class=s>example.cpp</span><span class=p>)</span>
|
||||
<span class=nb>target_link_libraries</span><span class=p>(</span><span class=s>json_example</span><span class=w> </span><span class=s>PRIVATE</span><span class=w> </span><span class=s>nlohmann_json::nlohmann_json</span><span class=p>)</span>
|
||||
@@ -406,14 +406,14 @@ cmake<span class=w> </span>--build<span class=w> </span>build
|
||||
<span class=p>{</span>
|
||||
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o><<</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>setw</span><span class=p>(</span><span class=mi>4</span><span class=p>)</span><span class=w> </span><span class=o><<</span><span class=w> </span><span class=n>json</span><span class=o>::</span><span class=n>meta</span><span class=p>()</span><span class=w> </span><span class=o><<</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>endl</span><span class=p>;</span>
|
||||
<span class=p>}</span>
|
||||
</code></pre></div> <div class=highlight><span class=filename>xmake.lua</span><pre><span></span><code><span class=nf>add_requires</span><span class=p>(</span><span class=s2>"nlohmann_json"</span><span class=p>)</span>
|
||||
</code></pre></div> <div class=highlight><span class=filename>xmake.lua</span><pre><span></span><code><span class=nf>add_requires</span><span class=p>(</span><span class=s2>"nlohmann_json"</span><span class=p>)</span>
|
||||
|
||||
<span class=nf>add_rules</span><span class=p>(</span><span class=s2>"mode.debug"</span><span class=p>,</span><span class=w> </span><span class=s2>"mode.release"</span><span class=p>)</span>
|
||||
<span class=nf>target</span><span class=p>(</span><span class=s2>"xm"</span><span class=p>)</span>
|
||||
<span class=w> </span><span class=nf>set_kind</span><span class=p>(</span><span class=s2>"binary"</span><span class=p>)</span>
|
||||
<span class=w> </span><span class=nf>add_files</span><span class=p>(</span><span class=s2>"example.cpp"</span><span class=p>)</span>
|
||||
<span class=w> </span><span class=nf>add_packages</span><span class=p>(</span><span class=s2>"nlohmann_json"</span><span class=p>)</span>
|
||||
<span class=w> </span><span class=nf>set_languages</span><span class=p>(</span><span class=s2>"cxx11"</span><span class=p>)</span>
|
||||
<span class=nf>add_rules</span><span class=p>(</span><span class=s2>"mode.debug"</span><span class=p>,</span><span class=w> </span><span class=s2>"mode.release"</span><span class=p>)</span>
|
||||
<span class=nf>target</span><span class=p>(</span><span class=s2>"xm"</span><span class=p>)</span>
|
||||
<span class=w> </span><span class=nf>set_kind</span><span class=p>(</span><span class=s2>"binary"</span><span class=p>)</span>
|
||||
<span class=w> </span><span class=nf>add_files</span><span class=p>(</span><span class=s2>"example.cpp"</span><span class=p>)</span>
|
||||
<span class=w> </span><span class=nf>add_packages</span><span class=p>(</span><span class=s2>"nlohmann_json"</span><span class=p>)</span>
|
||||
<span class=w> </span><span class=nf>set_languages</span><span class=p>(</span><span class=s2>"cxx11"</span><span class=p>)</span>
|
||||
</code></pre></div> </li> <li> <p>Build</p> <div class=highlight><pre><span></span><code>xmake
|
||||
</code></pre></div> </li> <li> <p>Run</p> <div class=highlight><pre><span></span><code>xmake<span class=w> </span>run
|
||||
</code></pre></div> </li> </ol> </details> <hr> <h2 id=other-package-managers>Other package managers<a class=headerlink href=#other-package-managers title="Permanent link">¶</a></h2> <p>The library is also contained in many other package repositories: <a href="https://repology.org/project/nlohmann-json/versions"><img alt="Packaging status" src="../../assets/external/repology.org/badge/tiny-repos/nlohmann-json.svg"></a></p> <details class=example> <summary>Package version overview</summary> <p><a href="https://repology.org/project/nlohmann-json/versions"><img alt="Packaging status" src="../../assets/external/repology.org/badge/vertical-allrepos/nlohmann-json.svg"></a></p> </details> <hr> <h2 id=buckaroo>Buckaroo<a class=headerlink href=#buckaroo title="Permanent link">¶</a></h2> <p>If you are using <a href="https://buckaroo.pm">Buckaroo</a>, you can install this library's module with <code>buckaroo add github.com/buckaroo-pm/nlohmann-json</code>. There is a demo repo <a href="https://github.com/njlr/buckaroo-nholmann-json-example">here</a>.</p> <div class="admonition warning"> <p class=admonition-title>Warning</p> <p>The module is outdated as the respective <a href="https://github.com/buckaroo-pm/nlohmann-json">repository</a> has not been updated in years.</p> </div> <h2 id=cocoapods>CocoaPods<a class=headerlink href=#cocoapods title="Permanent link">¶</a></h2> <p>If you are using <a href="https://cocoapods.org">CocoaPods</a>, you can use the library by adding pod <code>"nlohmann_json", '~>3.1.2'</code> to your podfile (see <a href="https://bitbucket.org/benman/nlohmann_json-cocoapod/src/master/">an example</a>). Please file issues <a href="https://bitbucket.org/benman/nlohmann_json-cocoapod/issues?status=new&status=open">here</a>.</p> <h2 id=npm>npm<a class=headerlink href=#npm title="Permanent link">¶</a></h2> <p>This project does not publish an official <a href="https://www.npmjs.com">npm</a> package. The npm package <a href="https://www.npmjs.com/package/nlohmann-json"><code>nlohmann-json</code></a> (or similarly named packages) is not maintained or endorsed by this project. Use one of the package managers listed above, or integrate the single header directly.</p> <h2 id=esp-idf-and-platformio>ESP-IDF and PlatformIO<a class=headerlink href=#esp-idf-and-platformio title="Permanent link">¶</a></h2> <p>There is no official package published to the <a href="https://components.espressif.com">ESP-IDF Component Registry</a> or the <a href="https://registry.platformio.org">PlatformIO Registry</a>. A community-maintained fork, <a href="https://github.com/Johboh/nlohmann-json">Johboh/nlohmann-json</a>, publishes this library to both registries on each new release and can be used as an unofficial component/package for ESP-IDF and PlatformIO projects. As the library is header-only, it can otherwise be used directly by adding its <code>include/</code> directory to your component's/project's include paths, like any other integration method described on this page.</p> <p><img alt src="../../assets/external/img.shields.io/cocoapods/v/nlohmann_json.svg"></p> <div class="admonition warning"> <p class=admonition-title>Warning</p> <p>The module is outdated as the respective <a href="https://cocoapods.org/pods/nlohmann_json">pod</a> has not been updated in years.</p> </div> <!-- https://squidfunk.github.io/mkdocs-material/reference/tooltips/#adding-a-glossary --> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date" title="August 7, 2026 17:29:58 UTC">August 7, 2026</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=Line truncated
|
||||
</code></pre></div> </li> </ol> </details> <hr> <h2 id=other-package-managers>Other package managers<a class=headerlink href=#other-package-managers title="Permanent link">¶</a></h2> <p>The library is also contained in many other package repositories: <a href="https://repology.org/project/nlohmann-json/versions"><img alt="Packaging status" src="../../assets/external/repology.org/badge/tiny-repos/nlohmann-json.svg"></a></p> <details class=example> <summary>Package version overview</summary> <p><a href="https://repology.org/project/nlohmann-json/versions"><img alt="Packaging status" src="../../assets/external/repology.org/badge/vertical-allrepos/nlohmann-json.svg"></a></p> </details> <hr> <h2 id=buckaroo>Buckaroo<a class=headerlink href=#buckaroo title="Permanent link">¶</a></h2> <p>If you are using <a href="https://buckaroo.pm">Buckaroo</a>, you can install this library's module with <code>buckaroo add github.com/buckaroo-pm/nlohmann-json</code>. There is a demo repo <a href="https://github.com/njlr/buckaroo-nholmann-json-example">here</a>.</p> <div class="admonition warning"> <p class=admonition-title>Warning</p> <p>The module is outdated as the respective <a href="https://github.com/buckaroo-pm/nlohmann-json">repository</a> has not been updated in years.</p> </div> <h2 id=cocoapods>CocoaPods<a class=headerlink href=#cocoapods title="Permanent link">¶</a></h2> <p>If you are using <a href="https://cocoapods.org">CocoaPods</a>, you can use the library by adding pod <code>"nlohmann_json", '~>3.1.2'</code> to your podfile (see <a href="https://bitbucket.org/benman/nlohmann_json-cocoapod/src/master/">an example</a>). Please file issues <a href="https://bitbucket.org/benman/nlohmann_json-cocoapod/issues?status=new&status=open">here</a>.</p> <h2 id=npm>npm<a class=headerlink href=#npm title="Permanent link">¶</a></h2> <p>This project does not publish an official <a href="https://www.npmjs.com">npm</a> package. The npm package <a href="https://www.npmjs.com/package/nlohmann-json"><code>nlohmann-json</code></a> (or similarly named packages) is not maintained or endorsed by this project. Use one of the package managers listed above, or integrate the single header directly.</p> <h2 id=esp-idf-and-platformio>ESP-IDF and PlatformIO<a class=headerlink href=#esp-idf-and-platformio title="Permanent link">¶</a></h2> <p>There is no official package published to the <a href="https://components.espressif.com">ESP-IDF Component Registry</a> or the <a href="https://registry.platformio.org">PlatformIO Registry</a>. A community-maintained fork, <a href="https://github.com/Johboh/nlohmann-json">Johboh/nlohmann-json</a>, publishes this library to both registries on each new release and can be used as an unofficial component/package for ESP-IDF and PlatformIO projects. As the library is header-only, it can otherwise be used directly by adding its <code>include/</code> directory to your component's/project's include paths, like any other integration method described on this page.</p> <p><img alt src="../../assets/external/img.shields.io/cocoapods/v/nlohmann_json.svg"></p> <div class="admonition warning"> <p class=admonition-title>Warning</p> <p>The module is outdated as the respective <a href="https://cocoapods.org/pods/nlohmann_json">pod</a> has not been updated in years.</p> </div> <!-- https://squidfunk.github.io/mkdocs-material/reference/tooltips/#adding-a-glossary --> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date" title="August 19, 2026 18:19:47 UTC">August 19, 2026</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div clasLine truncated
|
||||
Reference in new issue
Block a user