Move common code into UseAsn2Wrs.cmake.

Include the new file.
Use the new file.
Add cmake support to rebuild the gsm_map dissector.

svn path=/trunk/; revision=49194
This commit is contained in:
Jörg Mayer 2013-05-07 03:25:49 +00:00
parent 1b6e8300a6
commit 5ba458916a
4 changed files with 136 additions and 43 deletions

View File

@ -87,6 +87,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
INCLUDE(UseLemon)
INCLUDE(UseMakeDissectorReg)
INCLUDE(UseMakeTapReg)
INCLUDE(UseAsn2Wrs)
# Under linux the release mode (CMAKE_BUILD_TYPE=release) defines NDEBUG

View File

@ -25,15 +25,21 @@ set( PROTOCOL_NAME HI2Operations )
set( ASN_FILE_LIST
HI2Operations_ver11.asn
UmtsHI2Operations.asn
TS101909201.asn
PCESP.asn
EN301040.asn
UmtsHI2Operations.asn
TS101909201.asn
PCESP.asn
EN301040.asn
)
set( EXTRA_DIST
${ASN_FILE_LIST}
packet-${PROTOCOL_NAME}-template.c
${PROTOCOL_NAME}.cnf
)
set( SRC_FILES
${EXTRA_DIST}
${EXT_ASN_FILE_LIST}
${EXTRA_DIST}
${EXT_ASN_FILE_LIST}
)
set( A2W_FLAGS -b )
@ -41,41 +47,5 @@ set( A2W_FLAGS -b )
set( EXTRA_CNF
)
set( DISSECTOR ${CMAKE_SOURCE_DIR}/epan/dissectors/packet-${PROTOCOL_NAME}.c )
if ( NOT PROTO_OPT )
set( PROTO_OPT -p ${PROTOCOL_NAME} )
endif()
# Don't use packet-${PROTOCOL_NAME}.c instead of generate_dissector, it will
# cause EXCLUDE_FROM_ALL to be ignored.
ADD_CUSTOM_TARGET(generate_dissector ALL
COMMAND ${PYTHON_EXECUTABLE}
${CMAKE_SOURCE_DIR}/tools/asn2wrs.py
${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}
-O ${CMAKE_SOURCE_DIR}/epan/dissectors
${EXT_ASN_FILE_LIST} ${ASN_FILE_LIST} ${EXT_ASN_FILE_LIST_LATE}
DEPENDS
${CMAKE_SOURCE_DIR}/tools/asn2wrs.py
${SRC_FILES}
${EXTRA_CNF}
)
ADD_CUSTOM_TARGET(generate_export ALL
COMMAND ${PYTHON_EXECUTABLE}
${CMAKE_SOURCE_DIR}/tools/asn2wrs.py
-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
${CMAKE_SOURCE_DIR}/tools/asn2wrs.py
${SRC_FILES}
)
ASN2WRS()

View File

@ -21,3 +21,81 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
set( PROTOCOL_NAME gsm_map )
set( PROTO_OPT _EMPTY_ )
#EXPORT_FILES = \
# $(PROTOCOL_NAME)-exp.cnf
set( EXT_ASN_FILE_LIST
../ros/Remote-Operations-Information-Objects.asn
)
set( DATATYPES_ASN_FILES
MAP-ExtensionDataTypes.asn
MAP-CommonDataTypes.asn
MAP-SS-DataTypes.asn
MAP-ER-DataTypes.asn
MAP-SM-DataTypes.asn
MAP-OM-DataTypes.asn
MAP-MS-DataTypes.asn
MAP-CH-DataTypes.asn
MAP-LCS-DataTypes.asn
MAP-GR-DataTypes.asn
)
set( OPERATIONS_ASN_FILES
MAP-LocationServiceOperations.asn
MAP-Group-Call-Operations.asn
MAP-ShortMessageServiceOperations.asn
MAP-SupplementaryServiceOperations.asn
MAP-CallHandlingOperations.asn
MAP-OperationAndMaintenanceOperations.asn
MAP-MobileServiceOperations.asn
)
set( SS_ASN_FILES
SS-DataTypes.asn
SS-Operations.asn
)
set( PROPRIETARY_ASN_FILES
Ericsson.asn
)
set( ASN_FILE_LIST
MobileDomainDefinitions.asn
MAP-ApplicationContexts.asn
MAP-SS-Code.asn
MAP-BS-Code.asn
MAP-TS-Code.asn
${DATATYPES_ASN_FILES}
MAP-DialogueInformation.asn
${OPERATIONS_ASN_FILES}
MAP-Errors.asn
MAP-Protocol.asn
GSMMAP.asn
${SS_ASN_FILES}
${PROPRIETARY_ASN_FILES}
)
set( EXTRA_DIST
${ASN_FILE_LIST}
packet-${PROTOCOL_NAME}-template.c
packet-${PROTOCOL_NAME}-template.h
${PROTOCOL_NAME}.cnf
)
set( SRC_FILES
${EXTRA_DIST}
${EXT_ASN_FILE_LIST}
)
set( A2W_FLAGS -b )
set( EXTRA_CNF
)
ASN2WRS()

View File

@ -0,0 +1,44 @@
#
# $Id$
#
MACRO(ASN2WRS)
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()
# Don't use packet-${PROTOCOL_NAME}.c instead of generate_dissector, it will
# cause EXCLUDE_FROM_ALL to be ignored.
ADD_CUSTOM_TARGET(generate_dissector-${PROTOCOL_NAME} ALL
COMMAND ${PYTHON_EXECUTABLE}
${CMAKE_SOURCE_DIR}/tools/asn2wrs.py
${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}
-O ${CMAKE_SOURCE_DIR}/epan/dissectors
${EXT_ASN_FILE_LIST} ${ASN_FILE_LIST} ${EXT_ASN_FILE_LIST_LATE}
DEPENDS
${CMAKE_SOURCE_DIR}/tools/asn2wrs.py
${SRC_FILES}
${EXTRA_CNF}
)
ADD_CUSTOM_TARGET(generate_export-${PROTOCOL_NAME} ALL
COMMAND ${PYTHON_EXECUTABLE}
${CMAKE_SOURCE_DIR}/tools/asn2wrs.py
-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
${CMAKE_SOURCE_DIR}/tools/asn2wrs.py
${SRC_FILES}
)
ENDMACRO()