Mercurial > hg > freeDiameter
comparison 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 |
comparison
equal
deleted
inserted
replaced
1354:0dff6a604b0a | 1355:70b6067f4552 |
---|---|
4 INCLUDE(FindPkgConfig) | 4 INCLUDE(FindPkgConfig) |
5 | 5 |
6 # We use JSONCPP and JSON-Schema to parse and validate JSON files | 6 # We use JSONCPP and JSON-Schema to parse and validate JSON files |
7 PKG_CHECK_MODULES(JSONCPP REQUIRED jsoncpp) | 7 PKG_CHECK_MODULES(JSONCPP REQUIRED jsoncpp) |
8 PKG_CHECK_MODULES(JSON_SCHEMA REQUIRED json-schema) | 8 PKG_CHECK_MODULES(JSON_SCHEMA REQUIRED json-schema) |
9 PKG_CHECK_MODULES(PCRECPP REQUIRED libpcrecpp) | |
9 | 10 |
10 # List of source files | 11 # List of source files |
11 SET(DICT_JSON_SRC | 12 SET(DICT_JSON_SRC |
12 dict_json.cc | 13 dict_json.cc |
13 dict_json_dict_schema.cc | 14 ${CMAKE_CURRENT_BINARY_DIR}/dict_json_dict_schema.cc |
14 ) | 15 ) |
15 | 16 |
16 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) | 17 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) |
17 INCLUDE_DIRECTORIES(${JSONCPP_INCLUDE_DIR}) | 18 INCLUDE_DIRECTORIES(${JSONCPP_INCLUDE_DIR}) |
18 INCLUDE_DIRECTORIES(${JSON_SCHEMA_INCLUDE_DIR}) | 19 INCLUDE_DIRECTORIES(${JSON_SCHEMA_INCLUDE_DIR}) |
26 TARGET_LINK_LIBRARIES(dict_json ${JSONCPP_LIBRARIES} ${JSON_SCHEMA_STATIC_LIBRARIES}) | 27 TARGET_LINK_LIBRARIES(dict_json ${JSONCPP_LIBRARIES} ${JSON_SCHEMA_STATIC_LIBRARIES}) |
27 | 28 |
28 ADD_EXECUTABLE(dict-json-diff dict-json-diff.cc) | 29 ADD_EXECUTABLE(dict-json-diff dict-json-diff.cc) |
29 TARGET_LINK_LIBRARIES(dict-json-diff ${JSONCPP_LIBRARIES} ${JSON_SCHEMA_STATIC_LIBRARIES}) | 30 TARGET_LINK_LIBRARIES(dict-json-diff ${JSONCPP_LIBRARIES} ${JSON_SCHEMA_STATIC_LIBRARIES}) |
30 | 31 |
32 ADD_EXECUTABLE(json-schema-to-c json-schema-to-c.cc) | |
33 TARGET_LINK_LIBRARIES(json-schema-to-c ${JSONCPP_LIBRARIES} ${JSON_SCHEMA_STATIC_LIBRARIES} ${PCRECPP_LIBRARIES}) | |
34 | |
35 ADD_CUSTOM_COMMAND( | |
36 OUTPUT dict_json_dict_schema.cc | |
37 COMMAND json-schema-to-c ${CMAKE_CURRENT_SOURCE_DIR}/dict_json_dict_schema.json ${CMAKE_CURRENT_BINARY_DIR}/dict_json_dict_schema.cc | |
38 DEPENDS dict_json_dict_schema.json | |
39 ) | |
31 | 40 |
32 #### | 41 #### |
33 ## INSTALL section ## | 42 ## INSTALL section ## |
34 | 43 |
35 INSTALL(TARGETS dict_json | 44 INSTALL(TARGETS dict_json |
36 LIBRARY DESTINATION ${INSTALL_EXTENSIONS_SUFFIX} | 45 LIBRARY DESTINATION ${INSTALL_EXTENSIONS_SUFFIX} |
37 COMPONENT freeDiameter-dictionary-json) | 46 COMPONENT freeDiameter-dictionary-json) |
38 INSTALL(TARGETS dict-json-diff | 47 INSTALL(TARGETS dict-json-diff |
39 RUNTIME DESTINATION ${INSTALL_DAEMON_SUFFIX} | 48 RUNTIME DESTINATION ${INSTALL_DAEMON_SUFFIX} |
40 COMPONENT freeDiameter-dictionary-json) | 49 COMPONENT freeDiameter-dictionary-json) |
41 | |
42 # dict_json_dict_schema.cc is created from dict_json_dict_schema.json | |
43 # the tool for that is not yet open source, but the conversion is straightforward |