Merge branch 'master' into coverage
diff --git a/README.md b/README.md
index c8b42a9..fbdd0be 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,6 @@
[](http://open-source-parsers.github.io/jsoncpp-docs/doxygen/index.html)
[](https://coveralls.io/github/open-source-parsers/jsoncpp?branch=master)
-
[JSON][json-org] is a lightweight data-interchange format. It can represent
numbers, strings, ordered sequences of values, and collections of name/value
pairs.
@@ -14,10 +13,9 @@
JsonCpp is a C++ library that allows manipulating JSON values, including
serialization and deserialization to and from strings. It can also preserve
-existing comment in unserialization/serialization steps, making it a convenient
+existing comment in deserialization/serialization steps, making it a convenient
format to store user input files.
-
## Documentation
[JsonCpp documentation][JsonCpp-documentation] is generated using [Doxygen][].
@@ -25,7 +23,6 @@
[JsonCpp-documentation]: http://open-source-parsers.github.io/jsoncpp-docs/doxygen/index.html
[Doxygen]: http://www.doxygen.org
-
## A note on backward-compatibility
* `1.y.z` is built with C++11.
@@ -34,42 +31,106 @@
* Major versions maintain binary-compatibility.
### Special note
-The branch `00.11.z`is a new branch, its major version number `00` is to show that it is
-different from `0.y.z` and `1.y.z`, the main purpose of this branch is to make a balance
-between the other two branches. Thus, users can use some new features in this new branch
-that introduced in 1.y.z, but can hardly applied into 0.y.z.
+
+The branch `00.11.z`is a new branch, its major version number `00` is to show
+that it is different from `0.y.z` and `1.y.z`, the main purpose of this branch
+is to make a balance between the other two branches. Thus, users can use some
+new features in this new branch that introduced in 1.y.z, but can hardly applied
+into 0.y.z.
## Using JsonCpp in your project
### The vcpkg dependency manager
-You can download and install JsonCpp using the [vcpkg](https://github.com/Microsoft/vcpkg/) dependency manager:
+You can download and install JsonCpp using the [vcpkg](https://github.com/Microsoft/vcpkg/)
+dependency manager, which has installation instruction dependent on your
+build system. For example, if you are in a CMake project, the
+[CMake install tutorial](https://learn.microsoft.com/en-us/vcpkg/get_started/get-started?pivots=shell-powershell)
+suggests the follow installation method.
+
+First, clone and set up `vcpkg`.
+
+```sh
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
- ./vcpkg integrate install
- ./vcpkg install jsoncpp
+```
-The JsonCpp port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please [create an issue or pull request](https://github.com/Microsoft/vcpkg) on the vcpkg repository.
+Then, create a [vcpkg.json manifest](https://learn.microsoft.com/en-us/vcpkg/reference/vcpkg-json),
+enabling manifest mode and adding JsonCpp to the manifest's dependencies list.
+
+```sh
+ vcpkg new --application
+ vcpkg add port jsoncpp
+```
+
+> [!NOTE]: you can use vcpkg in either classic mode or manifest mode (recommended).
+
+#### Classic mode
+
+If your project does not have a `vcpkg.json`,
+your project is in [Classic mode](https://learn.microsoft.com/en-us/vcpkg/concepts/classic-mode)
+you can install JsonCpp by directly invoking the `install` command:
+
+```sh
+ vcpkg install jsoncpp
+```
+
+### Manifest mode
+
+If your project *does* have a vcpkg.json manifest, your project is in [Manifest mode](https://learn.microsoft.com/en-us/vcpkg/concepts/manifest-mode)
+and you need to add JsonCpp to your package manifest dependencies, then invoke
+install with no arguments.
+
+```sh
+ vcpkg add port jsoncpp
+ vcpkg install
+```
+
+Example manifest:
+
+```sh
+{
+ "name": "best-app-ever",
+ "dependencies": [ "jsoncpp" ],
+}
+```
+
+> [!NOTE] The JsonCpp port in vcpkg is kept up to date by Microsoft team members and community contributors.
+> If the version is out of date, please [create an issue or pull request](https://github.com/Microsoft/vcpkg)
+> on the vcpkg repository.
### Conan package manager
-You can download and install JsonCpp using the [Conan](https://conan.io/) package manager:
+You can download and install JsonCpp using the [Conan](https://conan.io/)
+package manager:
+```sh
conan install -r conancenter --requires="jsoncpp/[*]" --build=missing
+```
-The JsonCpp package in Conan Center is kept up to date by [ConanCenterIndex](https://github.com/conan-io/conan-center-index) contributors. If the version is out of date, please create an issue or pull request on the Conan Center Index repository.
+The JsonCpp package in Conan Center is kept up to date by [ConanCenterIndex](https://github.com/conan-io/conan-center-index)
+contributors. If the version is out of date, please create an issue or pull request on the
+Conan Center Index repository.
### Amalgamated source
-https://github.com/open-source-parsers/jsoncpp/wiki/Amalgamated-(Possibly-outdated)
+
+See the [Wiki entry on Amalgamated Source](https://github.com/open-source-parsers/jsoncpp/wiki/Amalgamated-(Possibly-outdated)).
### The Meson Build System
-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/jsoncpp), or simply use `meson wrap install jsoncpp`.
+
+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://mesonbuild.com/Wrapdb-projects.html),
+or simply use `meson wrap install jsoncpp`.
### Other ways
-If you have trouble, see the [Wiki](https://github.com/open-source-parsers/jsoncpp/wiki), or post a question as an Issue.
+
+If you have trouble, see the
+[Wiki](https://github.com/open-source-parsers/jsoncpp/wiki), or post a question
+as an Issue.
## License
-See the `LICENSE` file for details. In summary, JsonCpp is licensed under the
-MIT license, or public domain if desired and recognized in your jurisdiction.
+See the [LICENSE](./LICENSE) file for details. In summary, JsonCpp is licensed
+under the MIT license, or public domain if desired and recognized in your
+jurisdiction.