diff 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
line wrap: on
line diff
--- a/extensions/dict_json/CMakeLists.txt	Fri May 17 12:59:19 2019 +0200
+++ b/extensions/dict_json/CMakeLists.txt	Sat May 18 11:06:01 2019 +0200
@@ -6,11 +6,12 @@
 # We use JSONCPP and JSON-Schema to parse and validate JSON files
 PKG_CHECK_MODULES(JSONCPP REQUIRED jsoncpp)
 PKG_CHECK_MODULES(JSON_SCHEMA REQUIRED json-schema)
+PKG_CHECK_MODULES(PCRECPP REQUIRED libpcrecpp)
 
 # List of source files
 SET(DICT_JSON_SRC
 	dict_json.cc
-	dict_json_dict_schema.cc
+	${CMAKE_CURRENT_BINARY_DIR}/dict_json_dict_schema.cc
 )
 
 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
@@ -28,6 +29,14 @@
 ADD_EXECUTABLE(dict-json-diff dict-json-diff.cc)
 TARGET_LINK_LIBRARIES(dict-json-diff ${JSONCPP_LIBRARIES} ${JSON_SCHEMA_STATIC_LIBRARIES})
 
+ADD_EXECUTABLE(json-schema-to-c json-schema-to-c.cc)
+TARGET_LINK_LIBRARIES(json-schema-to-c ${JSONCPP_LIBRARIES} ${JSON_SCHEMA_STATIC_LIBRARIES} ${PCRECPP_LIBRARIES})
+
+ADD_CUSTOM_COMMAND(
+	OUTPUT dict_json_dict_schema.cc
+	COMMAND json-schema-to-c ${CMAKE_CURRENT_SOURCE_DIR}/dict_json_dict_schema.json ${CMAKE_CURRENT_BINARY_DIR}/dict_json_dict_schema.cc
+	DEPENDS dict_json_dict_schema.json
+)
 
 ####
 ## INSTALL section ##
@@ -38,6 +47,3 @@
 INSTALL(TARGETS dict-json-diff
 	RUNTIME DESTINATION ${INSTALL_DAEMON_SUFFIX}
 	COMPONENT freeDiameter-dictionary-json)
-
-# dict_json_dict_schema.cc is created from dict_json_dict_schema.json
-# the tool for that is not yet open source, but the conversion is straightforward
"Welcome to our mercurial repository"