forked from osmocom/wireshark
cmake: add idl2wrs-dissectors target for DCERPC
Add a callable target such that dissectors can be generated without the AUTOGEN_dcerpc option. Modelled after the pidl CMakeLists.txt file and target. This approach has the advantage over the previous implementation such that the clean target does not remove the packet-dcerpc-X.c files. Change-Id: I3226937eaa76dffa253df9d4f989421d5faa3f3f Reviewed-on: https://code.wireshark.org/review/15989 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Peter Wu <peter@lekensteyn.nl>daniel/osmux
parent
b0b2540fba
commit
4add8b6b45
|
@ -28,6 +28,7 @@
|
|||
init.lua
|
||||
epan/declare_wslua.h
|
||||
epan/dissectors/dcerpc/idl2wrs
|
||||
epan/dissectors/dcerpc/*/packet-dcerpc-*.[hc]
|
||||
epan/dissectors/mesa
|
||||
epan/dissectors/xcbproto
|
||||
epan/dissectors/packet-ncp2222.c
|
||||
|
@ -137,6 +138,7 @@ rules.ninja
|
|||
.ninja_log
|
||||
epan/dissectors/asn1/*/*-stamp
|
||||
epan/dissectors/pidl/*-stamp
|
||||
epan/dissectors/dcerpc/*-stamp
|
||||
|
||||
|
||||
# Generated dir #
|
||||
|
|
|
@ -18,7 +18,6 @@ option(BUILD_androiddump "Build androiddump" ON)
|
|||
option(BUILD_sshdump "Build sshdump" ON)
|
||||
option(BUILD_ciscodump "Build ciscodump" ON)
|
||||
option(BUILD_randpktdump "Build randpktdump" ON)
|
||||
option(AUTOGEN_dcerpc "Autogenerate DCE RPC dissectors" OFF)
|
||||
|
||||
option(DISABLE_WERROR "Do not treat warnings as errors" OFF)
|
||||
option(EXTCAP_ANDROIDDUMP_LIBPCAP "Build androiddump using libpcap" OFF)
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
ADD_CUSTOM_CMAKE_INCLUDE()
|
||||
|
||||
add_subdirectory(asn1 EXCLUDE_FROM_ALL)
|
||||
add_subdirectory(dcerpc)
|
||||
add_subdirectory(dcerpc EXCLUDE_FROM_ALL)
|
||||
add_subdirectory(pidl EXCLUDE_FROM_ALL)
|
||||
|
||||
include_directories(
|
||||
|
@ -30,45 +30,6 @@ include_directories(
|
|||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
)
|
||||
|
||||
if(AUTOGEN_dcerpc)
|
||||
foreach(PROTOCOL_NAME ${PIDL_DISSECTOR_AUTOGEN_NAMES})
|
||||
list(APPEND PIDL_DISSECTOR_AUTOGEN_SRC
|
||||
dcerpc/${PROTOCOL_NAME}/packet-dcerpc-${PROTOCOL_NAME}.c
|
||||
)
|
||||
endforeach()
|
||||
|
||||
foreach(PROTOCOL_NAME ${PIDL_DISSECTOR_AUTOGEN_NAMES})
|
||||
set(CUR_PROTO_DIR ${CMAKE_CURRENT_SOURCE_DIR}/dcerpc/${PROTOCOL_NAME})
|
||||
set(CUR_PROTO_C_FILE packet-dcerpc-${PROTOCOL_NAME}.c)
|
||||
set(CUR_PROTO_H_FILE packet-dcerpc-${PROTOCOL_NAME}.h)
|
||||
add_custom_command(
|
||||
OUTPUT
|
||||
${CUR_PROTO_DIR}/${CUR_PROTO_C_FILE}
|
||||
${CUR_PROTO_DIR}/${CUR_PROTO_H_FILE}
|
||||
COMMAND
|
||||
idl2wrs ${PROTOCOL_NAME}
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -E copy_if_different ${CUR_PROTO_DIR}/${CUR_PROTO_C_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/${CUR_PROTO_C_FILE}
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -E copy_if_different ${CUR_PROTO_DIR}/${CUR_PROTO_H_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/${CUR_PROTO_H_FILE}
|
||||
WORKING_DIRECTORY
|
||||
${CUR_PROTO_DIR}
|
||||
DEPENDS
|
||||
${CUR_PROTO_DIR}/${PROTOCOL_NAME}.idl
|
||||
${CUR_PROTO_DIR}/${PROTOCOL_NAME}.cnf
|
||||
${CUR_PROTO_DIR}/packet-dcerpc-${PROTOCOL_NAME}-template.c
|
||||
${CUR_PROTO_DIR}/packet-dcerpc-${PROTOCOL_NAME}-template.h
|
||||
)
|
||||
endforeach()
|
||||
else()
|
||||
foreach(PROTOCOL_NAME ${PIDL_DISSECTOR_AUTOGEN_NAMES})
|
||||
set(PIDL_DISSECTOR_AUTOGEN_SRC
|
||||
${PIDL_DISSECTOR_AUTOGEN_SRC}
|
||||
packet-dcerpc-${PROTOCOL_NAME}.c
|
||||
)
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/packet-ncp2222.c
|
||||
COMMAND ${PYTHON_EXECUTABLE}
|
||||
|
|
|
@ -19,11 +19,10 @@
|
|||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
|
||||
set(PIDL_DISSECTOR_AUTOGEN_NAMES
|
||||
budb
|
||||
butc
|
||||
drsuapi
|
||||
PARENT_SCOPE
|
||||
set(PIDL_DISSECTOR_NAMES
|
||||
budb
|
||||
butc
|
||||
drsuapi
|
||||
)
|
||||
|
||||
set(IDL2WRS_FILES
|
||||
|
@ -47,6 +46,55 @@ set_target_properties(idl2wrs PROPERTIES FOLDER "Executables")
|
|||
|
||||
target_link_libraries(idl2wrs ${GLIB2_LIBRARIES})
|
||||
|
||||
foreach(PROTOCOL_NAME IN LISTS PIDL_DISSECTOR_NAMES)
|
||||
# Use a stamp file instead of OUTPUT to packet-dcerpc-X.c to
|
||||
# avoid removing the .c file on clean.
|
||||
add_custom_command(
|
||||
OUTPUT packet-dcerpc-${PROTOCOL_NAME}-stamp
|
||||
COMMAND
|
||||
idl2wrs ${PROTOCOL_NAME}
|
||||
COMMAND
|
||||
"${CMAKE_COMMAND}" -E copy_if_different
|
||||
packet-dcerpc-${PROTOCOL_NAME}.c
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../packet-dcerpc-${PROTOCOL_NAME}.c"
|
||||
COMMAND
|
||||
"${CMAKE_COMMAND}" -E copy_if_different
|
||||
packet-dcerpc-${PROTOCOL_NAME}.h
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../packet-dcerpc-${PROTOCOL_NAME}.h"
|
||||
COMMAND
|
||||
"${CMAKE_COMMAND}" -E touch
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/packet-dcerpc-${PROTOCOL_NAME}-stamp"
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${PROTOCOL_NAME}"
|
||||
DEPENDS
|
||||
"${CMAKE_SOURCE_DIR}/tools/pidl/pidl"
|
||||
${PROTOCOL_NAME}/${PROTOCOL_NAME}.idl
|
||||
${PROTOCOL_NAME}/${PROTOCOL_NAME}.cnf
|
||||
${PROTOCOL_NAME}/packet-dcerpc-${PROTOCOL_NAME}-template.h
|
||||
${PROTOCOL_NAME}/packet-dcerpc-${PROTOCOL_NAME}-template.c
|
||||
VERBATIM
|
||||
)
|
||||
add_custom_target(generate_dissector-dcerpc-${PROTOCOL_NAME}
|
||||
DEPENDS packet-dcerpc-${PROTOCOL_NAME}-stamp
|
||||
)
|
||||
set_target_properties(generate_dissector-dcerpc-${PROTOCOL_NAME}
|
||||
PROPERTIES FOLDER "Generated Dissectors/PIDL"
|
||||
)
|
||||
list(APPEND PIDL_DISSECTOR_TARGETS
|
||||
generate_dissector-dcerpc-${PROTOCOL_NAME}
|
||||
)
|
||||
list(APPEND PIDL_DISSECTOR_SRC
|
||||
packet-dcerpc-${PROTOCOL_NAME}.c
|
||||
)
|
||||
endforeach()
|
||||
|
||||
set(PIDL_DISSECTOR_AUTOGEN_SRC ${PIDL_DISSECTOR_SRC} PARENT_SCOPE)
|
||||
|
||||
# TODO should probably just merge this into pidl-dissectors
|
||||
add_custom_target(idl2wrs-dissectors ALL DEPENDS ${PIDL_DISSECTOR_TARGETS})
|
||||
set_target_properties(idl2wrs-dissectors
|
||||
PROPERTIES FOLDER "Generated Dissectors/PIDL"
|
||||
)
|
||||
|
||||
#
|
||||
# Editor modelines - https://www.wireshark.org/tools/modelines.html
|
||||
#
|
||||
|
|
Loading…
Reference in New Issue