From: Eric Haszlakiewicz Date: Wed, 22 Dec 2021 02:52:37 +0000 (+0000) Subject: Cause the cmake include dirs to also have ${CMAKE_INSTALL_INCLUDEDIR}/json-c, so... X-Git-Tag: json-c-0.16-20220414~24 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a5c2e11460d8f00f2a3d9da5e179df3d05b91268;p=thirdparty%2Fjson-c.git Cause the cmake include dirs to also have ${CMAKE_INSTALL_INCLUDEDIR}/json-c, so downstream packages that use cmake to link against json-c can choose whether to include headers as just e.g. #include , if they care to do so. Update the README to better explain this, and make a few other tweaks. --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 29a8bd33..ba3550bd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -503,7 +503,7 @@ install(TARGETS ${CMAKE_TARGETS} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ${CMAKE_INSTALL_INCLUDEDIR}/json-c ) install(EXPORT ${PROJECT_NAME}-targets diff --git a/README.md b/README.md index c80a3143..09bc4d54 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,17 @@ JSON-C - A JSON implementation in C ----------------------------------- +JSON-C implements a reference counting object model that allows you to easily +construct JSON objects in C, output them as JSON formatted strings and parse +JSON formatted strings back into the C representation of JSON objects. +It aims to conform to [RFC 7159](https://tools.ietf.org/html/rfc7159). + +Skip down to [Using json-c](#using) +or check out the [API docs](https://json-c.github.io/json-c/), +if you already have json-c installed and ready to use. + +Home page for json-c: https://github.com/json-c/json-c/wiki + Build Status * [AppVeyor Build](https://ci.appveyor.com/project/hawicz/json-c) ![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/github/json-c/json-c?branch=master&svg=true) * [Travis Build](https://travis-ci.org/json-c/json-c) ![Travis Build Status](https://travis-ci.org/json-c/json-c.svg?branch=master) @@ -23,15 +34,11 @@ Build Status Test Status * [Coveralls](https://coveralls.io/github/json-c/json-c?branch=master) [![Coverage Status](https://coveralls.io/repos/github/json-c/json-c/badge.svg?branch=master)](https://coveralls.io/github/json-c/json-c?branch=master) -JSON-C implements a reference counting object model that allows you to easily -construct JSON objects in C, output them as JSON formatted strings and parse -JSON formatted strings back into the C representation of JSON objects. -It aims to conform to [RFC 7159](https://tools.ietf.org/html/rfc7159). - Building on Unix with `git`, `gcc` and `cmake` -------------------------------------------------- -Home page for json-c: https://github.com/json-c/json-c/wiki +If you already have json-c installed, see [Linking to `libjson-c`](#linking) +for how to build and link your program against it. ### Prerequisites: @@ -220,14 +227,31 @@ CFLAGS += $(shell pkg-config --cflags json-c) LDFLAGS += $(shell pkg-config --libs json-c) ``` -Without `pkgconfig`, you would do something like this: +Without `pkgconfig`, you might do something like this: ```make JSON_C_DIR=/path/to/json_c/install CFLAGS += -I$(JSON_C_DIR)/include/json-c +# Or to use lines like: #include +#CFLAGS += -I$(JSON_C_DIR)/include LDFLAGS+= -L$(JSON_C_DIR)/lib -ljson-c ``` +If your project uses cmake: + +* Add to your CMakeLists.txt file: + +```cmake +find_package(json-c CONFIG) +target_link_libraries(${PROJECT_NAME} PRIVATE json-c::json-c) +``` + +* Then you might run in your project: + +```sh +cd build +cmake -DCMAKE_PREFIX_PATH=/path/to/json_c/install/lib64/cmake .. +``` Using json-c ------------