2014-11-12 12:32:41 +00:00
|
|
|
# - Convert ASN.1 file into C source and header files that can be used to create a wireshark dissector
|
|
|
|
|
2013-05-07 03:25:49 +00:00
|
|
|
MACRO(ASN2WRS)
|
2014-11-11 16:11:11 +00:00
|
|
|
find_package(Asn2Wrs REQUIRED)
|
|
|
|
|
2013-05-07 03:25:49 +00:00
|
|
|
set( DISSECTOR ${CMAKE_SOURCE_DIR}/epan/dissectors/packet-${PROTOCOL_NAME}.c )
|
|
|
|
|
|
|
|
if ( NOT PROTO_OPT )
|
|
|
|
set( PROTO_OPT -p ${PROTOCOL_NAME} )
|
|
|
|
elseif ( PROTO_OPT STREQUAL "_EMPTY_" )
|
|
|
|
set( PROTO_OPT )
|
|
|
|
endif()
|
|
|
|
|
2014-11-12 12:32:41 +00:00
|
|
|
# Backwards compability for build in dissectors,
|
|
|
|
# set to '_EMPTY_' for out of source dissector builds
|
|
|
|
if ( NOT A2W_OUTPUT_DIR )
|
|
|
|
set (A2W_OUTPUT_DIR -O ${CMAKE_SOURCE_DIR}/epan/dissectors)
|
|
|
|
elseif ( A2W_OUTPUT_DIR STREQUAL "_EMPTY_" )
|
|
|
|
set( A2W_OUTPUT_DIR )
|
|
|
|
endif()
|
|
|
|
|
2013-05-07 03:25:49 +00:00
|
|
|
# Don't use packet-${PROTOCOL_NAME}.c instead of generate_dissector, it will
|
|
|
|
# cause EXCLUDE_FROM_ALL to be ignored.
|
2014-11-12 12:39:07 +00:00
|
|
|
ADD_CUSTOM_COMMAND(
|
|
|
|
OUTPUT packet-${PROTOCOL_NAME}.c
|
2013-05-07 03:25:49 +00:00
|
|
|
COMMAND ${PYTHON_EXECUTABLE}
|
2014-11-11 16:11:11 +00:00
|
|
|
${ASN2WRS_EXECUTABLE}
|
2013-05-07 03:25:49 +00:00
|
|
|
${A2W_FLAGS}
|
|
|
|
${PROTO_OPT}
|
|
|
|
-c ${CMAKE_CURRENT_SOURCE_DIR}/${PROTOCOL_NAME}.cnf
|
|
|
|
-s ${CMAKE_CURRENT_SOURCE_DIR}/packet-${PROTOCOL_NAME}-template
|
|
|
|
-D ${CMAKE_CURRENT_SOURCE_DIR}
|
2014-11-12 12:32:41 +00:00
|
|
|
${A2W_OUTPUT_DIR}
|
2013-05-07 03:25:49 +00:00
|
|
|
${EXT_ASN_FILE_LIST} ${ASN_FILE_LIST} ${EXT_ASN_FILE_LIST_LATE}
|
|
|
|
DEPENDS
|
2014-11-11 16:11:11 +00:00
|
|
|
${ASN2WRS_EXECUTABLE}
|
2013-05-07 03:25:49 +00:00
|
|
|
${SRC_FILES}
|
|
|
|
${EXTRA_CNF}
|
|
|
|
)
|
|
|
|
|
2013-05-07 03:59:29 +00:00
|
|
|
foreach( _asn2wrs_export_file IN LISTS EXPORT_FILES )
|
2014-11-12 12:39:07 +00:00
|
|
|
ADD_CUSTOM_COMMAND(
|
|
|
|
OUTPUT ${_asn2wrs_export_file}
|
2013-05-07 03:59:29 +00:00
|
|
|
COMMAND ${PYTHON_EXECUTABLE}
|
2014-11-11 16:11:11 +00:00
|
|
|
${ASN2WRS_EXECUTABLE}
|
2013-05-07 03:59:29 +00:00
|
|
|
-E
|
|
|
|
${A2W_FLAGS}
|
|
|
|
${PROTO_OPT}
|
|
|
|
-c ${CMAKE_CURRENT_SOURCE_DIR}/${PROTOCOL_NAME}.cnf
|
|
|
|
-D ${CMAKE_CURRENT_SOURCE_DIR}
|
|
|
|
${EXT_ASN_FILE_LIST} ${ASN_FILE_LIST} ${EXT_ASN_FILE_LIST_LATE}
|
|
|
|
DEPENDS
|
2014-11-11 16:11:11 +00:00
|
|
|
${ASN2WRS_EXECUTABLE}
|
2013-05-07 03:59:29 +00:00
|
|
|
${SRC_FILES}
|
2013-09-17 18:02:25 +00:00
|
|
|
${EXPORT_DEPENDS}
|
2013-05-07 03:59:29 +00:00
|
|
|
)
|
|
|
|
endforeach()
|
2013-05-07 03:25:49 +00:00
|
|
|
ENDMACRO()
|