-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Amalgamated
One approach to integrating JsonCpp in your project is to include
the amalgamated source (a single
.cpp
file and two .h
files) in your project, and compile and build as you
would any other source file. This ensures consistency of compilation flags and
ABI compatibility, issues which arise when building shared or static
libraries. See the next section for instructions.
The include/
should be added to your compiler include path. JsonCpp headers
should be included as follow:
#include <json/json.h>
If JsonCpp was built as a dynamic library on Windows, then your project needs to define the macro JSON_DLL
.
JsonCpp is provided with a script to generate a single header and a single source file to ease inclusion into an existing project. The amalgamated source can be generated at any time by running the following command from the top-directory (this requires Python 2.6):
python amalgamate.py
It is possible to specify header name. See the -h
option for detail.
By default, the following files are generated:
-
dist/jsoncpp.cpp
: source file that needs to be added to your project. -
dist/json/json.h
: corresponding header file for use in your project. It is equivalent to includingjson/json.h
in non-amalgamated source. This header only depends on standard headers. -
dist/json/json-forwards.h
: header that provides forward declaration of all JsonCpp types.
The amalgamated sources are generated by concatenating JsonCpp source in the
correct order and defining the macro JSON_IS_AMALGAMATION
to prevent inclusion of other headers.