view extensions/dict_json/CMakeLists.txt @ 1502:515421a9ac5e

Add 3GPP TS 29.154 V15.3.0 (2019-09) Add AVPs: - Network-Area-Info-List, OctetString, code 4201, section 5.3.2 - Number-Of-UEs, Unsigned32, code 4209, section 5.3.10 - Reference-Id, OctetString, code 4202, section 5.3.3 - Transfer-Request-Type, Unsigned32, code 4203, section 5.3.4 - Time-Window, Grouped, code 4204, section 5.3.5 - Transfer-End-Time, Time, code 4205, section 5.3.6 - Transfer-Policy, Grouped, code 4207, section 5.3.8 - Transfer-Policy-Id, Unsigned32, code 4208, section 5.3.9 - Transfer-Start-Time, Time, code 4206, section 5.3.7 - Access-Network-Reports, Grouped, code 4210, section A.6.3.2 - Event-Configuration, Grouped, code 4211, section A.6.3.3 - Event-Configuration-State, Unsigned32, code 4212, section A.6.3.4 - Event-Configuration-Status, Grouped, code 4213, section A.6.3.5 - Event-Reporting-Results, Unsigned32, code 4214, section A.6.3.6 - Event-Reports, Grouped, code 4215, section A.6.3.7 - Extended-SCEF-Reference-ID, Unsigned64, code 4216, section A.6.3.8
author Luke Mewburn <luke@mewburn.net>
date Fri, 03 Apr 2020 15:33:12 +1100
parents 75b6ec7c70b3
children
line wrap: on
line source

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