From e.yimjia via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9289 :
[metze/wireshark/wip.git] / epan / CMakeLists.txt
index ee76441f2b9add752a0e5de94364aba569d82dcb..7dab44a100e8b53c4b0d00f10c2559656fecf520 100644 (file)
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 #
 
+include(UseABICheck)
+
 if (HAVE_LIBLUA)
        include( wslua/CMakeLists.txt )
 endif()
+source_group(wslua FILES ${WSLUA_FILES})
+
 if (HAVE_LIBPYTHON)
        include( wspython/CMakeLists.txt )
 endif()
+source_group(wspython FILES ${WSPYTHON_FILES})
 
 add_subdirectory( dissectors/dcerpc )
 
@@ -46,6 +51,7 @@ set(CRYPT_FILES
        crypt/airpdcap_rijndael.c
        crypt/airpdcap_tkip.c
 )
+source_group(crypt FILES ${CRYPT_FILES})
 
 set(DFILTER_FILES
        dfilter/dfilter.c
@@ -63,6 +69,7 @@ set(DFILTER_FILES
        dfilter/sttype-test.c
        dfilter/syntax-tree.c
 )
+source_group(dfilter FILES ${DFILTER_FILES})
 
 set(DFILTER_CLEAN_FILES
        ${DFILTER_FILES}
@@ -209,6 +216,7 @@ set(ASN1_DISSECTOR_SRC
        dissectors/packet-h501.c
        dissectors/packet-hnbap.c
        dissectors/packet-idmp.c
+       dissectors/packet-ilp.c
        dissectors/packet-inap.c
        dissectors/packet-isdn-sup.c
        dissectors/packet-lcsap.c
@@ -725,6 +733,7 @@ set(DISSECTOR_SRC
        dissectors/packet-hsr.c
        dissectors/packet-hsrp.c
        dissectors/packet-http.c
+       dissectors/packet-http2.c
        dissectors/packet-http-urlencoded.c
        dissectors/packet-hyperscsi.c
        dissectors/packet-i2c.c
@@ -859,8 +868,10 @@ set(DISSECTOR_SRC
        dissectors/packet-mac-lte-framed.c
        dissectors/packet-mac-lte.c
        dissectors/packet-maccontrol.c
+       dissectors/packet-macsec.c
        dissectors/packet-mactelnet.c
        dissectors/packet-manolito.c
+       dissectors/packet-mbim.c
        dissectors/packet-mbtcp.c
        dissectors/packet-mdshdr.c
        dissectors/packet-media.c
@@ -873,6 +884,7 @@ set(DISSECTOR_SRC
        dissectors/packet-mikey.c
        dissectors/packet-mim.c
        dissectors/packet-mime-encap.c
+       dissectors/packet-mint.c
        dissectors/packet-miop.c
        dissectors/packet-mip.c
        dissectors/packet-mip6.c
@@ -898,6 +910,7 @@ set(DISSECTOR_SRC
        dissectors/packet-mplstp-oam.c
        dissectors/packet-mpls-y1711.c
        dissectors/packet-mpls.c
+       dissectors/packet-mq-base.c
        dissectors/packet-mq-pcf.c
        dissectors/packet-mq.c
        dissectors/packet-mrcpv2.c
@@ -970,6 +983,7 @@ set(DISSECTOR_SRC
        dissectors/packet-omapi.c
        dissectors/packet-omron-fins.c
        dissectors/packet-openflow.c
+       dissectors/packet-openflow_v4.c
        dissectors/packet-opensafety.c
        dissectors/packet-openvpn.c
        dissectors/packet-openwire.c
@@ -1084,12 +1098,13 @@ set(DISSECTOR_SRC
        dissectors/packet-rtp-events.c
        dissectors/packet-rtp-midi.c
        dissectors/packet-rtp.c
+       dissectors/packet-rtpproxy.c
        dissectors/packet-rtps.c
        dissectors/packet-rtsp.c
        dissectors/packet-rudp.c
        dissectors/packet-rwall.c
        dissectors/packet-rx.c
-       dissectors/packet-s5066.c
+       dissectors/packet-s5066sis.c
        dissectors/packet-sadmind.c
        dissectors/packet-sametime.c
        dissectors/packet-sap.c
@@ -1216,6 +1231,7 @@ set(DISSECTOR_SRC
        dissectors/packet-umts_mac.c
        dissectors/packet-usb-audio.c
        dissectors/packet-usb-ccid.c
+       dissectors/packet-usb-com.c
        dissectors/packet-usb-hid.c
        dissectors/packet-usb-hub.c
        dissectors/packet-usb-masstorage.c
@@ -1232,7 +1248,6 @@ set(DISSECTOR_SRC
        dissectors/packet-vcdu.c
        dissectors/packet-vicp.c
        dissectors/packet-vines.c
-       dissectors/packet-vj.c
        dissectors/packet-vlan.c
        dissectors/packet-vmlab.c
        dissectors/packet-vnc.c
@@ -1333,6 +1348,7 @@ set(DISSECTOR_SUPPORT_SRC
        dissectors/usb.c
        register.c
 )
+source_group(dissector-support FILES ${DISSECTOR_SUPPORT_SRC})
 
 set(LIBWIRESHARK_ASM_FILES
        asm_utils.c
@@ -1358,6 +1374,7 @@ set(DISSECTOR_FILES
        ${ASN1_DISSECTOR_SRC}
        ${DIRTY_ASN1_DISSECTOR_SRC}
 )
+source_group(dissectors FILES ${DISSECTOR_FILES})
 
 register_dissector_files(register.c
        dissectors
@@ -1378,6 +1395,7 @@ set(FTYPE_FILES
        ftypes/ftype-time.c
        ftypes/ftype-tvbuff.c
 )
+source_group(ftype FILES ${FTYPE_FILES})
 
 set(WMEM_FILES
        wmem/wmem_array.c
@@ -1394,6 +1412,7 @@ set(WMEM_FILES
        wmem/wmem_tree.c
        wmem/wmem_user_cb.c
 )
+source_group(wmem FILES ${WMEM_FILES})
 
 ADD_CUSTOM_COMMAND(
     OUTPUT
@@ -1537,6 +1556,7 @@ set(epan_LIBS
        ${M_LIBRARIES}
        ${LUA_LIBRARIES}
        ${PYTHON_LIBRARIES}
+       ${WIN_PSAPI_LIBRARY}
 )
 
 set(CLEAN_FILES
@@ -1591,61 +1611,50 @@ set_target_properties(epan PROPERTIES COMPILE_DEFINITIONS "WS_BUILD_DLL")
 set_target_properties(epan PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
 set_target_properties(epan PROPERTIES VERSION ${FULL_SO_VERSION} SOVERSION 0)
 
-# discover and substitute list of include directories for ABI compatibility
-# checks
-get_directory_property(INCLUDE_DIRS INCLUDE_DIRECTORIES)
-list(REMOVE_DUPLICATES INCLUDE_DIRS)
-string(REGEX REPLACE ";" "\n" INCLUDE_DIRS "${INCLUDE_DIRS}")
-configure_file(../abi-descriptor.template abi-descriptor.xml)
+ABICHECK(libwireshark)
 
-# ABI compliance checker can be obtained from
-# http://ispras.linux-foundation.org/index.php/ABI_compliance_checker
-# Checked using version 1.21.12
-file(GLOB EPAN_HEADERS *.h)
 file(GLOB CRYPT_HEADERS crypt/*.h)
 file(GLOB DFILTER_HEADERS dfilter/*.h ../tools/lemon/cppmagic.h)
 file(GLOB D_HEADERS dissectors/*.h)
 file(GLOB FTYPES_HEADERS ftypes/*.h)
 file(GLOB WMEM_HEADERS wmem/*.h)
-file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/abi-check-headers
-       ${CMAKE_CURRENT_BINARY_DIR}/abi-check-headers/epan
-       ${CMAKE_CURRENT_BINARY_DIR}/abi-check-headers/crypt
-       ${CMAKE_CURRENT_BINARY_DIR}/abi-check-headers/dfilter
-       ${CMAKE_CURRENT_BINARY_DIR}/abi-check-headers/dissectors
-       ${CMAKE_CURRENT_BINARY_DIR}/abi-check-headers/ftypes
-       ${CMAKE_CURRENT_BINARY_DIR}/abi-check-headers/wmem)
+file(MAKE_DIRECTORY ${ABICHECK_TMPDIR}
+       ${ABICHECK_TMPDIR}/epan
+       ${ABICHECK_TMPDIR}/crypt
+       ${ABICHECK_TMPDIR}/dfilter
+       ${ABICHECK_TMPDIR}/dissectors
+       ${ABICHECK_TMPDIR}/ftypes
+       ${ABICHECK_TMPDIR}/wmem)
 
-file(COPY ../color.h ../register.h ../ws_symbol_export.h DESTINATION abi-check-headers)
-file(COPY ${EPAN_HEADERS} DESTINATION abi-check-headers/epan)
-file(COPY ${CRYPT_HEADERS} DESTINATION abi-check-headers/crypt)
-file(COPY ${DFILTER_HEADERS} DESTINATION abi-check-headers/dfilter)
-file(COPY ${D_HEADERS} DESTINATION abi-check-headers/dissectors)
-file(COPY ${FTYPES_HEADERS} DESTINATION abi-check-headers/ftypes)
-file(COPY ${WMEM_HEADERS} DESTINATION abi-check-headers/wmem)
+file(COPY ../color.h ../register.h DESTINATION ${ABICHECK_TMPDIR})
+file(COPY ${HEADERS} DESTINATION ${ABICHECK_TMPDIR}/epan)
+file(COPY ${CRYPT_HEADERS} DESTINATION ${ABICHECK_TMPDIR}/crypt)
+file(COPY ${DFILTER_HEADERS} DESTINATION ${ABICHECK_TMPDIR}/dfilter)
+file(COPY ${D_HEADERS} DESTINATION ${ABICHECK_TMPDIR}/dissectors)
+file(COPY ${FTYPES_HEADERS} DESTINATION ${ABICHECK_TMPDIR}/ftypes)
+file(COPY ${WMEM_HEADERS} DESTINATION ${ABICHECK_TMPDIR}/wmem)
 
 add_custom_command(OUTPUT libwireshark.abi.tar.gz
-       COMMAND cp ../config.h abi-check-headers
-       COMMAND rm abi-check-headers/dissectors/x11-extension-implementation.h
-               abi-check-headers/dissectors/packet-rtps.h
-               abi-check-headers/dissectors/x11-glx-render-enum.h
-               abi-check-headers/dissectors/x11-register-info.h
-               abi-check-headers/dissectors/packet-idmp.h
-       COMMAND abi-compliance-checker -l libwireshark -v1 ${FULL_SO_VERSION}
-               -relpath ${CMAKE_CURRENT_BINARY_DIR} -dump-abi abi-descriptor.xml
-               || cat logs/libwireshark/[0-9]*/log.txt
-       COMMAND cp abi_dumps/libwireshark/libwireshark_* libwireshark.abi.tar.gz
-       COMMAND rm -rf abi_dumps abi-check-headers/config.h
-               abi-check-headers/epan/* abi-check-headers/crypt/*
-               abi-check-headers/dfilter/* abi-check-headers/dissectors/*
-               abi-check-headers/ftypes/* abi-check-headers/wmem/*
-       DEPENDS ${EPAN_HEADERS}
+       COMMAND cp ../config.h ${ABICHECK_TMPDIR}
+       COMMAND rm -f ${ABICHECK_TMPDIR}/dissectors/x11-extension-implementation.h
+               ${ABICHECK_TMPDIR}/dissectors/packet-rtps.h
+               ${ABICHECK_TMPDIR}/dissectors/x11-glx-render-enum.h
+               ${ABICHECK_TMPDIR}/dissectors/x11-register-info.h
+               ${ABICHECK_TMPDIR}/dissectors/packet-idmp.h
+       COMMAND ${ABICHECK_COMMAND}
+       COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/abi_dumps/libwireshark/libwireshark_* ${CMAKE_CURRENT_BINARY_DIR}/libwireshark.abi.tar.gz
+       COMMAND rm -rf ${CMAKE_CURRENT_BINARY_DIR}/abi_dumps ${ABICHECK_TMPDIR}/config.h
+               ${ABICHECK_TMPDIR}/epan/* ${ABICHECK_TMPDIR}/crypt/*
+               ${ABICHECK_TMPDIR}/dfilter/* ${ABICHECK_TMPDIR}/dissectors/*
+               ${ABICHECK_TMPDIR}/ftypes/* ${ABICHECK_TMPDIR}/wmem/*
+       DEPENDS ${HEADERS}
                ${CRYPT_HEADERS} ${DFILTER_HEADERS} ${D_HEADERS}
                ${FTYPES_HEADERS} ${WMEM_HEADERS} epan)
-add_custom_target(dumpabi-libwireshark DEPENDS libwireshark.abi.tar.gz)
 
 # By default the name for a library with target name epan will be libepan,
 # but Ethereal is now named Wireshark
 SET_TARGET_PROPERTIES(epan PROPERTIES OUTPUT_NAME "wireshark")
+set_target_properties(epan PROPERTIES FOLDER "DLLs")
 
 target_link_libraries(epan ${epan_LIBS})