annotate extensions/dict_json/CMakeLists.txt @ 1355:70b6067f4552

Add tool to generate dict_json_dict_schema.cc from dict_json_dict_schema.json.
author Thomas Klausner <tk@giga.or.at>
date Sat, 18 May 2019 11:06:01 +0200
parents cbe1da7a32f1
children 6e4737d332e7
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)
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
8 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
9 PKG_CHECK_MODULES(PCRECPP REQUIRED libpcrecpp)
1333
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
10
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
11 # List of source files
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
12 SET(DICT_JSON_SRC
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
13 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
14 ${CMAKE_CURRENT_BINARY_DIR}/dict_json_dict_schema.cc
1333
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
15 )
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 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
18 INCLUDE_DIRECTORIES(${JSONCPP_INCLUDE_DIR})
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
19 INCLUDE_DIRECTORIES(${JSON_SCHEMA_INCLUDE_DIR})
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
20
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
21 LINK_DIRECTORIES(${JSONCPP_LIBDIR})
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
22 LINK_DIRECTORIES(${JSON_SCHEMA_LIBDIR})
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
23
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
24 # Compile these files as a freeDiameter extension
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
25 FD_ADD_EXTENSION(dict_json ${DICT_JSON_SRC})
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
26
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
27 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
28
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
29 ADD_EXECUTABLE(dict-json-diff dict-json-diff.cc)
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
30 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
31
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
32 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
33 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
34
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 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
36 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
37 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
38 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
39 )
1333
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
40
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 ## INSTALL section ##
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
43
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
44 INSTALL(TARGETS dict_json
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
45 LIBRARY DESTINATION ${INSTALL_EXTENSIONS_SUFFIX}
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
46 COMPONENT freeDiameter-dictionary-json)
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
47 INSTALL(TARGETS dict-json-diff
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
48 RUNTIME DESTINATION ${INSTALL_DAEMON_SUFFIX}
cbe1da7a32f1 Add dict_json extension.
Thomas Klausner <tk@giga.or.at>
parents:
diff changeset
49 COMPONENT freeDiameter-dictionary-json)
"Welcome to our mercurial repository"