3 # Wireshark - Network traffic analyzer
4 # By Gerald Combs <gerald@wireshark.org>
5 # Copyright 1998 Gerald Combs
7 # This program is free software; you can redistribute it and/or
8 # modify it under the terms of the GNU General Public License
9 # as published by the Free Software Foundation; either version 2
10 # of the License, or (at your option) any later version.
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with this program; if not, write to the Free Software
19 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22 ADD_CUSTOM_CMAKE_INCLUDE()
24 add_subdirectory(asn1 EXCLUDE_FROM_ALL)
25 add_subdirectory(dcerpc)
28 ${CMAKE_CURRENT_BINARY_DIR}
29 ${CMAKE_CURRENT_SOURCE_DIR}
37 foreach(PROTOCOL_NAME ${PIDL_DISSECTOR_AUTOGEN_NAMES})
38 list(APPEND PIDL_DISSECTOR_AUTOGEN_SRC
39 dcerpc/${PROTOCOL_NAME}/packet-dcerpc-${PROTOCOL_NAME}.c
43 foreach(PROTOCOL_NAME ${PIDL_DISSECTOR_AUTOGEN_NAMES})
44 set(CUR_PROTO_DIR ${CMAKE_CURRENT_SOURCE_DIR}/dcerpc/${PROTOCOL_NAME})
45 set(CUR_PROTO_C_FILE packet-dcerpc-${PROTOCOL_NAME}.c)
46 set(CUR_PROTO_H_FILE packet-dcerpc-${PROTOCOL_NAME}.h)
49 ${CUR_PROTO_DIR}/${CUR_PROTO_C_FILE}
50 ${CUR_PROTO_DIR}/${CUR_PROTO_H_FILE}
52 idl2wrs ${PROTOCOL_NAME}
54 ${CMAKE_COMMAND} -E copy_if_different ${CUR_PROTO_DIR}/${CUR_PROTO_C_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/${CUR_PROTO_C_FILE}
56 ${CMAKE_COMMAND} -E copy_if_different ${CUR_PROTO_DIR}/${CUR_PROTO_H_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/${CUR_PROTO_H_FILE}
60 ${CUR_PROTO_DIR}/${PROTOCOL_NAME}.idl
61 ${CUR_PROTO_DIR}/${PROTOCOL_NAME}.cnf
62 ${CUR_PROTO_DIR}/packet-dcerpc-${PROTOCOL_NAME}-template.c
63 ${CUR_PROTO_DIR}/packet-dcerpc-${PROTOCOL_NAME}-template.h
67 foreach(PROTOCOL_NAME ${PIDL_DISSECTOR_AUTOGEN_NAMES})
68 set(PIDL_DISSECTOR_AUTOGEN_SRC
69 ${PIDL_DISSECTOR_AUTOGEN_SRC}
70 packet-dcerpc-${PROTOCOL_NAME}.c
76 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/packet-ncp2222.c
77 COMMAND ${PYTHON_EXECUTABLE}
78 ${CMAKE_SOURCE_DIR}/tools/ncp2222.py
79 -o ${CMAKE_CURRENT_BINARY_DIR}/packet-ncp2222.c
82 ${CMAKE_SOURCE_DIR}/tools/ncp2222.py
85 add_custom_target(x11-dissector
86 COMMAND ${PERL_EXECUTABLE}
87 ${CMAKE_SOURCE_DIR}/tools/process-x11-fields.pl ${CMAKE_CURRENT_SOURCE_DIR}/dissectors
88 < ${CMAKE_CURRENT_SOURCE_DIR}/x11-fields
89 COMMAND ${PERL_EXECUTABLE}
90 ${CMAKE_SOURCE_DIR}/tools/process-x11-xcb.pl ${CMAKE_CURRENT_SOURCE_DIR}/dissectors
93 ${CMAKE_SOURCE_DIR}/tools/process-x11-fields.pl
94 ${CMAKE_SOURCE_DIR}/tools/process-x11-xcb.pl
95 ${CMAKE_CURRENT_SOURCE_DIR}/xcbproto
96 ${CMAKE_CURRENT_SOURCE_DIR}/mesa
99 set_target_properties(x11-dissector PROPERTIES FOLDER "Generated Dissectors/X11")
101 # Note that some dissectors are added in dcerpc/CMakeLists.txt
102 set(PIDL_DISSECTOR_SRC
103 packet-dcerpc-atsvc.c
104 # packet-dcerpc-budb.c
105 # packet-dcerpc-butc.c
107 packet-dcerpc-dnsserver.c
108 # packet-dcerpc-drsuapi.c
109 packet-dcerpc-dssetup.c
111 packet-dcerpc-eventlog.c
112 packet-dcerpc-frstrans.c
113 packet-dcerpc-initshutdown.c
116 packet-dcerpc-mdssvc.c
120 packet-dcerpc-srvsvc.c
121 packet-dcerpc-winreg.c
122 packet-dcerpc-witness.c
123 packet-dcerpc-wkssvc.c
124 packet-dcerpc-wzcsvc.c
127 set(ASN1_DISSECTOR_SRC
138 packet-charging_ase.c
153 packet-HI2Operations.c
173 packet-logotypecertextn.c
184 packet-ns_cert_exts.c
194 packet-pkix1explicit.c
195 packet-pkix1implicit.c
198 packet-pkixqualified.c
224 packet-wlancertextn.c
232 set(DIRTY_ASN1_DISSECTOR_SRC
235 set(DIRTY_CORBA_IDL_DISSECTOR_SRC
242 set(CORBA_IDL_DISSECTOR_SRC
243 ${DIRTY_CORBA_IDL_DISSECTOR_SRC}
244 packet-coseventcomm.c
247 source_group(dissectors-corba FILES ${CORBA_IDL_DISSECTOR_SRC})
249 add_library(dissectors-corba OBJECT
250 ${CORBA_IDL_DISSECTOR_SRC}
253 set_target_properties(dissectors-corba PROPERTIES
254 FOLDER "Libs/epan/dissectors"
255 COMPILE_DEFINITIONS "WS_BUILD_DLL"
258 if(WIN32 AND "${CMAKE_GENERATOR}" STREQUAL "Visual Studio 12 2013 Win64")
259 # CORBA IDL dissectors are triggering a MSVC 2013 x64 /O2 bug leading to a NULL pointer dereference (see bug 12495)
260 target_compile_options(dissectors-corba PRIVATE $<$<CONFIG:Release>:/Ox> $<$<CONFIG:RelWithDebInfo>:/Ox>)
289 packet-adwin-config.c
298 packet-aim-buddylist.c
301 packet-aim-directory.c
305 packet-aim-invitation.c
306 packet-aim-location.c
307 packet-aim-messaging.c
314 packet-aim-translate.c
315 packet-aim-userlookup.c
332 packet-app-pkix-cert.c
336 packet-armagetronad.c
403 packet-bthci_vendor.c
419 packet-calcappprotocol.c
424 packet-catapult-dct2000.c
429 packet-cell_broadcast.c
442 packet-cisco-erspan.c
443 packet-cisco-fp-mim.c
444 packet-cisco-marker.c
445 packet-cisco-metadata.c
458 packet-componentstatus.c
460 packet-corosync-totemnet.c
461 packet-corosync-totemsrp.c
479 packet-dcerpc-bossvr.c
480 packet-dcerpc-browser.c
481 packet-dcerpc-cds_clerkserver.c
482 packet-dcerpc-cds_solicit.c
484 packet-dcerpc-cprpc_server.c
485 packet-dcerpc-dce122.c
486 packet-dcerpc-dtsprovider.c
487 packet-dcerpc-dtsstime_req.c
489 packet-dcerpc-fileexp.c
491 packet-dcerpc-frsapi.c
492 packet-dcerpc-frsrpc.c
493 packet-dcerpc-ftserver.c
494 packet-dcerpc-icl_rpc.c
495 packet-dcerpc-krb5rpc.c
497 packet-dcerpc-messenger.c
500 packet-dcerpc-netlogon.c
502 packet-dcerpc-rdaclif.c
503 packet-dcerpc-rep_proc.c
504 packet-dcerpc-roverride.c
505 packet-dcerpc-rpriv.c
507 packet-dcerpc-rs_acct.c
508 packet-dcerpc-rs_attr.c
509 packet-dcerpc-rs_attr_schema.c
510 packet-dcerpc-rs_bind.c
511 packet-dcerpc-rs_misc.c
512 packet-dcerpc-rs_pgo.c
513 packet-dcerpc-rs_plcy.c
514 packet-dcerpc-rs_prop_acct.c
515 packet-dcerpc-rs_prop_acl.c
516 packet-dcerpc-rs_prop_attr.c
517 packet-dcerpc-rs_prop_pgo.c
518 packet-dcerpc-rs_prop_plcy.c
519 packet-dcerpc-rs_pwd_mgmt.c
520 packet-dcerpc-rs_repadm.c
521 packet-dcerpc-rs_replist.c
522 packet-dcerpc-rs_repmgr.c
523 packet-dcerpc-rs_unix.c
524 packet-dcerpc-rsec_login.c
526 packet-dcerpc-secidmap.c
527 packet-dcerpc-spoolss.c
528 packet-dcerpc-svcctl.c
530 packet-dcerpc-tkn4int.c
531 packet-dcerpc-trksvr.c
532 packet-dcerpc-ubikdisk.c
533 packet-dcerpc-ubikvote.c
534 packet-dcerpc-update.c
537 packet-dcom-dispatch.c
540 packet-dcom-remunkn.c
549 packet-dhcp-failover.c
552 packet-diameter_3gpp.c
553 packet-diffserv-mpls-common.c
578 packet-dvb-data-mpe.c
602 packet-elasticsearch.c
621 packet-etsi_card_app_toolkit.c
625 packet-exported_pdu.c
659 packet-fractalgeneratorprotocol.c
676 packet-gluster_pmap.c
679 packet-glusterfs_hndsk.c
693 packet-gsm_a_bssmap.c
694 packet-gsm_a_common.c
699 packet-gsm_abis_om2000.c
700 packet-gsm_abis_oml.c
702 packet-gsm_bssmap_le.c
724 packet-h248_annex_c.c
725 packet-h248_annex_e.c
754 packet-hsr-prp-supervision.c
759 packet-http-urlencoded.c
776 packet-ieee80211-netmon.c
777 packet-ieee80211-prism.c
778 packet-ieee80211-radio.c
779 packet-ieee80211-radiotap-iter.c
780 packet-ieee80211-radiotap.c
781 packet-ieee80211-wlancap.c
794 packet-infiniband_sdp.c
804 packet-ipmi-chassis.c
807 packet-ipmi-session.c
808 packet-ipmi-storage.c
810 packet-ipmi-transport.c
848 packet-iwarp-ddp-rdmap.c
923 packet-mac-lte-framed.c
960 packet-mpeg-descriptor.c
984 packet-msn-messenger.c
1013 packet-netanalyzer.c
1017 packet-netlink-netfilter.c
1018 packet-netlink-route.c
1019 packet-netlink-sock_diag.c
1021 packet-netperfmeter.c
1060 packet-openflow_v1.c
1061 packet-openflow_v4.c
1062 packet-openflow_v5.c
1069 packet-osi-options.c
1078 packet-packetlogger.c
1082 packet-pcap_pktdata.c
1083 packet-pcapng_block.c
1096 packet-pingpongprotocol.c
1105 packet-ppi-antenna.c
1106 packet-ppi-geolocation-common.c
1139 packet-radius_packetcable.c
1147 packet-reload-framing.c
1151 packet-rfid-felica.c
1152 packet-rfid-mifare.c
1154 packet-rfid-pn532-hci.c
1204 packet-s7comm_szl_ids.c
1214 packet-scriptingservice.c
1241 packet-slowprotocols.c
1246 packet-smb-mailslot.c
1248 packet-smb-sidsnooping.c
1278 packet-stat-notify.c
1288 packet-sysdig-event.c
1301 packet-teimanagement.c
1312 packet-tivoconnect.c
1326 packet-turnchannel.c
1349 packet-usb-masstorage.c
1373 packet-vssmonitoring.c
1386 packet-wfleet-hdlc.c
1389 packet-wifi-display.c
1391 packet-windows-common.c
1411 packet-xmpp-conference.c
1414 packet-xmpp-jingle.c
1430 packet-zbee-nwk-gp.c
1431 packet-zbee-security.c
1433 packet-zbee-zcl-closures.c
1434 packet-zbee-zcl-general.c
1435 packet-zbee-zcl-ha.c
1436 packet-zbee-zcl-hvac.c
1437 packet-zbee-zcl-lighting.c
1438 packet-zbee-zcl-meas-sensing.c
1439 packet-zbee-zcl-misc.c
1440 packet-zbee-zcl-sas.c
1441 packet-zbee-zcl-se.c
1443 packet-zbee-zdp-binding.c
1444 packet-zbee-zdp-discovery.c
1445 packet-zbee-zdp-management.c
1453 set(DISSECTOR_SUPPORT_SRC
1457 source_group(dissector-support FILES ${DISSECTOR_SUPPORT_SRC})
1459 set(DISSECTOR_GENERATED_FILES
1463 source_group(dissector-generated FILES ${DISSECTOR_GENERATED_FILES})
1467 ${PIDL_DISSECTOR_SRC}
1468 ${PIDL_DISSECTOR_AUTOGEN_SRC}
1469 ${ASN1_DISSECTOR_SRC}
1470 ${DIRTY_ASN1_DISSECTOR_SRC}
1471 ${CUSTOM_DISSECTOR_SRC}
1472 ${CUSTOM_DIRTY_ASN1_DISSECTOR_SRC}
1474 source_group(dissectors FILES ${DISSECTOR_FILES})
1476 register_dissector_files(register.c
1479 ${CORBA_IDL_DISSECTOR_SRC}
1484 ${PIDL_DISSECTOR_SRC}
1485 ${ASN1_DISSECTOR_SRC}
1486 ${CORBA_IDL_DISSECTOR_SRC}
1487 ${DISSECTOR_SUPPORT_SRC}
1488 ${DISSECTOR_GENERATED_FILES}
1491 if(WERROR_COMMON_FLAGS)
1492 set_source_files_properties(
1495 COMPILE_FLAGS ${WERROR_COMMON_FLAGS}
1499 add_library(dissectors OBJECT
1501 ${DISSECTOR_SUPPORT_SRC}
1502 ${DISSECTOR_GENERATED_FILES}
1505 set_target_properties(dissectors PROPERTIES
1506 FOLDER "Libs/epan/dissectors"
1507 COMPILE_DEFINITIONS "WS_BUILD_DLL"
1510 set(CHECKAPI_FILE_LIST "${CMAKE_CURRENT_BINARY_DIR}/files.txt")
1511 file(GLOB DISSECTOR_HEADERS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "*.h")
1512 file(WRITE "${CHECKAPI_FILE_LIST}" "${DISSECTOR_FILES}" "${CORBA_IDL_DISSECTOR_SRC}")
1517 -g abort -g termoutput -build --file ${CHECKAPI_FILE_LIST}
1519 ${DISSECTOR_SUPPORT_SRC}
1520 ${DISSECTOR_HEADERS}
1524 # Editor modelines - http://www.wireshark.org/tools/modelines.html
1529 # indent-tabs-mode: t
1532 # vi: set shiftwidth=8 tabstop=8 noexpandtab:
1533 # :indentSize=8:tabSize=8:noTabs=false: