annotate extensions/dict_json/CMakeLists.txt @ 1455:75b6ec7c70b3

fix build for jsoncpp consumers Correctly use the variables created by PKG_CHECK_MODULES(JSONCPP ...)
author Luke Mewburn <luke@mewburn.net>
date Fri, 28 Feb 2020 10:08:37 +1100
parents 6e4737d332e7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1333
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
1 # The dict_json extension
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
2 PROJECT("JSON dictionary files support" C)
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
3
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
4 INCLUDE(FindPkgConfig)
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
5
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
6 # We use JSONCPP and JSON-Schema to parse and validate JSON files
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
7 PKG_CHECK_MODULES(JSONCPP REQUIRED jsoncpp)
1386
6e4737d332e7 Add link for json-schema.
Thomas Klausner <tk@giga.or.at>
parents: 1355
diff changeset
8 # https://github.com/nfotex/json-schema/
1333
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
9 PKG_CHECK_MODULES(JSON_SCHEMA REQUIRED json-schema)
1355
70b6067f4552 Add tool to generate dict_json_dict_schema.cc from dict_json_dict_schema.json.
Thomas Klausner <tk@giga.or.at>
parents: 1333
diff changeset
10 PKG_CHECK_MODULES(PCRECPP REQUIRED libpcrecpp)
1333
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
11
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
12 # List of source files
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
13 SET(DICT_JSON_SRC
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
14 dict_json.cc
1355
70b6067f4552 Add tool to generate dict_json_dict_schema.cc from dict_json_dict_schema.json.
Thomas Klausner <tk@giga.or.at>
parents: 1333
diff changeset
15 ${CMAKE_CURRENT_BINARY_DIR}/dict_json_dict_schema.cc
1333
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
16 )
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
17
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
18 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
1455
75b6ec7c70b3 fix build for jsoncpp consumers
Luke Mewburn <luke@mewburn.net>
parents: 1386
diff changeset
19 INCLUDE_DIRECTORIES(${JSONCPP_INCLUDE_DIRS})
1333
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
20 INCLUDE_DIRECTORIES(${JSON_SCHEMA_INCLUDE_DIR})
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
21
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
22 LINK_DIRECTORIES(${JSONCPP_LIBDIR})
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
23 LINK_DIRECTORIES(${JSON_SCHEMA_LIBDIR})
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
24
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
25 # Compile these files as a freeDiameter extension
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
26 FD_ADD_EXTENSION(dict_json ${DICT_JSON_SRC})
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
27
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
28 TARGET_LINK_LIBRARIES(dict_json ${JSONCPP_LIBRARIES} ${JSON_SCHEMA_STATIC_LIBRARIES})
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
29
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
30 ADD_EXECUTABLE(dict-json-diff dict-json-diff.cc)
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
31 TARGET_LINK_LIBRARIES(dict-json-diff ${JSONCPP_LIBRARIES} ${JSON_SCHEMA_STATIC_LIBRARIES})
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
32
1355
70b6067f4552 Add tool to generate dict_json_dict_schema.cc from dict_json_dict_schema.json.
Thomas Klausner <tk@giga.or.at>
parents: 1333
diff changeset
33 ADD_EXECUTABLE(json-schema-to-c json-schema-to-c.cc)
70b6067f4552 Add tool to generate dict_json_dict_schema.cc from dict_json_dict_schema.json.
Thomas Klausner <tk@giga.or.at>
parents: 1333
diff changeset
34 TARGET_LINK_LIBRARIES(json-schema-to-c ${JSONCPP_LIBRARIES} ${JSON_SCHEMA_STATIC_LIBRARIES} ${PCRECPP_LIBRARIES})
70b6067f4552 Add tool to generate dict_json_dict_schema.cc from dict_json_dict_schema.json.
Thomas Klausner <tk@giga.or.at>
parents: 1333
diff changeset
35
70b6067f4552 Add tool to generate dict_json_dict_schema.cc from dict_json_dict_schema.json.
Thomas Klausner <tk@giga.or.at>
parents: 1333
diff changeset
36 ADD_CUSTOM_COMMAND(
70b6067f4552 Add tool to generate dict_json_dict_schema.cc from dict_json_dict_schema.json.
Thomas Klausner <tk@giga.or.at>
parents: 1333
diff changeset
37 OUTPUT dict_json_dict_schema.cc
70b6067f4552 Add tool to generate dict_json_dict_schema.cc from dict_json_dict_schema.json.
Thomas Klausner <tk@giga.or.at>
parents: 1333
diff changeset
38 COMMAND json-schema-to-c ${CMAKE_CURRENT_SOURCE_DIR}/dict_json_dict_schema.json ${CMAKE_CURRENT_BINARY_DIR}/dict_json_dict_schema.cc
70b6067f4552 Add tool to generate dict_json_dict_schema.cc from dict_json_dict_schema.json.
Thomas Klausner <tk@giga.or.at>
parents: 1333
diff changeset
39 DEPENDS dict_json_dict_schema.json
70b6067f4552 Add tool to generate dict_json_dict_schema.cc from dict_json_dict_schema.json.
Thomas Klausner <tk@giga.or.at>
parents: 1333
diff changeset
40 )
1333
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
41
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
42 ####
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
43 ## INSTALL section ##
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
44
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
45 INSTALL(TARGETS dict_json
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
46 LIBRARY DESTINATION ${INSTALL_EXTENSIONS_SUFFIX}
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
47 COMPONENT freeDiameter-dictionary-json)
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
48 INSTALL(TARGETS dict-json-diff
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
49 RUNTIME DESTINATION ${INSTALL_DAEMON_SUFFIX}
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
50 COMPONENT freeDiameter-dictionary-json)
"Welcome to our mercurial repository"