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
"Welcome to our mercurial repository"