diff options
| author | Lucas de Castro Borges <lucas@gnuabordo.com.br> | 2024-08-08 14:34:10 -0300 |
|---|---|---|
| committer | Lucas de Castro Borges <lucas@gnuabordo.com.br> | 2024-08-08 14:34:10 -0300 |
| commit | 56f96f0bdc6187ce19064d311c000656ae68008b (patch) | |
| tree | 104a7843861befbd4da34a66f03b85d7b9ea0df9 /extensions/dict_json/CMakeLists.txt | |
| parent | 3e8d3ed13f58af810934de696c34bf5bf16ddcc6 (diff) | |
New upstream version 1.5.0upstream
Diffstat (limited to 'extensions/dict_json/CMakeLists.txt')
| -rw-r--r-- | extensions/dict_json/CMakeLists.txt | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/extensions/dict_json/CMakeLists.txt b/extensions/dict_json/CMakeLists.txt new file mode 100644 index 0000000..afa4df6 --- /dev/null +++ b/extensions/dict_json/CMakeLists.txt @@ -0,0 +1,50 @@ +# The dict_json extension +PROJECT("JSON dictionary files support" C) + +INCLUDE(FindPkgConfig) + +# We use JSONCPP and JSON-Schema to parse and validate JSON files +PKG_CHECK_MODULES(JSONCPP REQUIRED jsoncpp) +# https://github.com/nfotex/json-schema/ +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 + ${CMAKE_CURRENT_BINARY_DIR}/dict_json_dict_schema.cc +) + +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) +INCLUDE_DIRECTORIES(${JSONCPP_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES(${JSON_SCHEMA_INCLUDE_DIR}) + +LINK_DIRECTORIES(${JSONCPP_LIBDIR}) +LINK_DIRECTORIES(${JSON_SCHEMA_LIBDIR}) + +# Compile these files as a freeDiameter extension +FD_ADD_EXTENSION(dict_json ${DICT_JSON_SRC}) + +TARGET_LINK_LIBRARIES(dict_json ${JSONCPP_LIBRARIES} ${JSON_SCHEMA_STATIC_LIBRARIES}) + +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 ## + +INSTALL(TARGETS dict_json + LIBRARY DESTINATION ${INSTALL_EXTENSIONS_SUFFIX} + COMPONENT freeDiameter-dictionary-json) +INSTALL(TARGETS dict-json-diff + RUNTIME DESTINATION ${INSTALL_DAEMON_SUFFIX} + COMPONENT freeDiameter-dictionary-json) |
