3 # Wireshark - Network traffic analyzer
4 # By Gerald Combs <gerald@wireshark.org>
5 # Copyright 1998 Gerald Combs
7 # SPDX-License-Identifier: GPL-2.0-or-later
10 if (HAVE_HFI_SECTION_INIT)
12 -DHAVE_HFI_SECTION_INIT
17 ${BROTLI_INCLUDE_DIRS}
20 ${GCRYPT_INCLUDE_DIRS}
21 ${GTHREAD2_INCLUDE_DIRS}
22 ${GNUTLS_INCLUDE_DIRS}
23 ${KERBEROS_INCLUDE_DIRS}
26 ${NGHTTP2_INCLUDE_DIRS}
28 ${SNAPPY_INCLUDE_DIRS}
30 ${LIBXML2_INCLUDE_DIRS}
34 ${LIBXML2_DEFINITIONS}
35 ${KERBEROS_DEFINITIONS}
38 add_subdirectory(crypt)
39 add_subdirectory(dfilter)
40 add_subdirectory(dissectors)
41 add_subdirectory(ftypes)
42 add_subdirectory(wmem)
44 add_subdirectory(wslua)
48 ${CMAKE_CURRENT_BINARY_DIR}
49 ${CMAKE_CURRENT_SOURCE_DIR}
54 COMMAND ${PYTHON_EXECUTABLE}
55 ${CMAKE_SOURCE_DIR}/tools/rdps.py
56 ${CMAKE_CURRENT_SOURCE_DIR}/print.ps
59 ${CMAKE_SOURCE_DIR}/tools/rdps.py
60 ${CMAKE_CURRENT_SOURCE_DIR}/print.ps
63 set(LIBWIRESHARK_PUBLIC_HEADERS
113 frame_data_sequence.h
158 slow_protocol_subtypes.h
186 set(LIBWIRESHARK_HEADER_FILES
187 ${LIBWIRESHARK_PUBLIC_HEADERS}
190 set(LIBWIRESHARK_NONGENERATED_FILES
223 frame_data_sequence.c
278 ${CMAKE_CURRENT_BINARY_DIR}/ps.c
281 set(LIBWIRESHARK_FILES ${LIBWIRESHARK_NONGENERATED_FILES})
283 add_lex_files(LEX_FILES LIBWIRESHARK_FILES
291 add_lemon_files(LEMON_FILES LIBWIRESHARK_FILES
295 set_source_files_properties(
296 ${LIBWIRESHARK_FILES}
298 COMPILE_FLAGS "${WERROR_COMMON_FLAGS}"
302 #Included so that Visual Studio can properly put header files in solution
303 ${LIBWIRESHARK_HEADER_FILES}
305 ${LIBWIRESHARK_FILES}
306 $<TARGET_OBJECTS:crypt>
307 $<TARGET_OBJECTS:dfilter>
308 $<TARGET_OBJECTS:dissectors>
309 $<TARGET_OBJECTS:dissectors-corba>
310 $<TARGET_OBJECTS:ftypes>
311 $<TARGET_OBJECTS:version_info>
312 $<TARGET_OBJECTS:wmem>
313 $<$<BOOL:${LUA_FOUND}>:$<TARGET_OBJECTS:wslua>>
314 ${CMAKE_BINARY_DIR}/image/libwireshark.rc
318 target_compile_definitions(epan PUBLIC HAVE_PLUGINS)
321 set_target_properties(epan PROPERTIES
322 COMPILE_DEFINITIONS "WS_BUILD_DLL"
323 LINK_FLAGS "${WS_LINK_FLAGS}"
324 VERSION "0.0.0" SOVERSION 0
325 INSTALL_RPATH "${LIBRARY_INSTALL_RPATH}"
326 # By default the name for a library with target name epan will be libepan,
327 # but Ethereal is now named Wireshark
328 OUTPUT_NAME "wireshark"
333 target_link_libraries(epan
343 ${GTHREAD2_LIBRARIES}
345 ${KERBEROS_LIBRARIES}
357 target_include_directories(epan
359 $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}>
360 $<INSTALL_INTERFACE:include/wireshark>
363 target_include_directories(epan SYSTEM PUBLIC ${GLIB2_INCLUDE_DIRS})
365 add_dependencies(epan lemon)
368 EXPORT WiresharkTargets
369 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
370 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
371 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
374 install(FILES ${LIBWIRESHARK_PUBLIC_HEADERS}
375 DESTINATION "${PROJECT_INSTALL_INCLUDEDIR}/epan"
378 add_executable(exntest EXCLUDE_FROM_ALL exntest.c except.c)
379 target_link_libraries(exntest ${GLIB2_LIBRARIES})
380 set_target_properties(exntest PROPERTIES
382 EXCLUDE_FROM_DEFAULT_BUILD True
383 COMPILE_DEFINITIONS "WS_BUILD_DLL"
386 add_executable(oids_test EXCLUDE_FROM_ALL oids_test.c)
387 target_link_libraries(oids_test epan ${ZLIB_LIBRARIES})
388 set_target_properties(oids_test PROPERTIES
390 EXCLUDE_FROM_DEFAULT_BUILD True
391 COMPILE_DEFINITIONS "WS_BUILD_DLL"
394 add_executable(reassemble_test EXCLUDE_FROM_ALL reassemble_test.c)
395 target_link_libraries(reassemble_test epan)
396 set_target_properties(reassemble_test PROPERTIES
398 EXCLUDE_FROM_DEFAULT_BUILD True
401 add_executable(tvbtest EXCLUDE_FROM_ALL tvbtest.c)
402 target_link_libraries(tvbtest epan)
403 set_target_properties(tvbtest PROPERTIES
405 EXCLUDE_FROM_DEFAULT_BUILD True
406 COMPILE_DEFINITIONS "WS_BUILD_DLL"
413 --group termoutput:10 --summary-group termoutput --build
415 ${LIBWIRESHARK_NONGENERATED_FILES}
419 # Editor modelines - https://www.wireshark.org/tools/modelines.html
424 # indent-tabs-mode: t
427 # vi: set shiftwidth=8 tabstop=8 noexpandtab:
428 # :indentSize=8:tabSize=8:noTabs=false: