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.
24 if (HAVE_HFI_SECTION_INIT)
26 -DHAVE_HFI_SECTION_INIT
30 add_subdirectory(crypt)
31 add_subdirectory(dfilter)
32 add_subdirectory(dissectors)
33 add_subdirectory(ftypes)
34 add_subdirectory(wmem)
36 add_subdirectory(wslua)
40 ${CMAKE_CURRENT_BINARY_DIR}
41 ${CMAKE_CURRENT_SOURCE_DIR}
46 COMMAND ${PYTHON_EXECUTABLE}
47 ${CMAKE_SOURCE_DIR}/tools/rdps.py
48 ${CMAKE_CURRENT_SOURCE_DIR}/print.ps
51 ${CMAKE_SOURCE_DIR}/tools/rdps.py
52 ${CMAKE_CURRENT_SOURCE_DIR}/print.ps
55 set(LIBWIRESHARK_PUBLIC_HEADERS
105 frame_data_sequence.h
148 slow_protocol_subtypes.h
176 set(LIBWIRESHARK_FILES
209 frame_data_sequence.c
258 ${CMAKE_CURRENT_BINARY_DIR}/ps.c
259 ${CMAKE_SOURCE_DIR}/version_info.c
262 set(LIBWIRESHARK_CLEAN_FILES
263 ${LIBWIRESHARK_FILES}
266 add_lex_files(LEX_FILES GENERATED_FILES
274 add_lemon_files(LEMON_FILES GENERATED_FILES
285 ${GTHREAD2_LIBRARIES}
287 ${KERBEROS_LIBRARIES}
300 ${LIBWIRESHARK_CLEAN_FILES}
303 set_source_files_properties(
306 COMPILE_FLAGS "${WERROR_COMMON_FLAGS}"
309 # Cannot use $<$<BOOL:${HAVE_LIBLUA}>:$<TARGET_OBJECTS:wslua>> as that breaks
310 # with CMake 3.0 (CMake 3.1 is OK)
312 set(wslua_sources $<TARGET_OBJECTS:wslua>)
317 ${LIBWIRESHARK_FILES}
319 $<TARGET_OBJECTS:crypt>
320 $<TARGET_OBJECTS:dfilter>
321 $<TARGET_OBJECTS:dissectors>
322 $<TARGET_OBJECTS:dissectors-corba>
323 $<TARGET_OBJECTS:ftypes>
324 $<TARGET_OBJECTS:wmem>
326 ${CMAKE_BINARY_DIR}/image/libwireshark.rc
329 add_dependencies(epan version)
331 set(FULL_SO_VERSION "0.0.0")
333 set_target_properties(epan PROPERTIES
334 COMPILE_DEFINITIONS "WS_BUILD_DLL"
335 LINK_FLAGS "${WS_LINK_FLAGS}"
336 VERSION ${FULL_SO_VERSION} SOVERSION 0
339 if(ENABLE_APPLICATION_BUNDLE)
340 set_target_properties(epan PROPERTIES
341 LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/run/Wireshark.app/Contents/Frameworks
345 ABICHECK(libwireshark)
347 set(TOP_LEVEL_HEADERS ${CMAKE_BINARY_DIR}/config.h ${CMAKE_SOURCE_DIR}/register.h)
348 file(GLOB CRYPT_HEADERS crypt/*.h)
349 file(GLOB DFILTER_HEADERS dfilter/*.h ../tools/lemon/cppmagic.h)
350 file(GLOB D_HEADERS dissectors/*.h)
351 file(GLOB FTYPES_HEADERS ftypes/*.h)
352 file(GLOB WMEM_HEADERS wmem/*.h)
354 add_custom_command(OUTPUT libwireshark.abi.tar.gz
355 COMMAND ${CMAKE_COMMAND} -E remove_directory ${ABICHECK_TMPDIR}
356 COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}
357 COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}/epan
358 COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}/crypt
359 COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}/dfilter
360 COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}/dissectors
361 COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}/ftypes
362 COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}/wmem
363 COMMAND ${ABI_COPY_COMMAND} ${TOP_LEVEL_HEADERS} ${ABICHECK_TMPDIR} ${ABI_COPY_FLAGS}
364 COMMAND ${ABI_COPY_COMMAND} ${ABICHECK_HEADERS} ${ABICHECK_TMPDIR}/epan ${ABI_COPY_FLAGS}
365 COMMAND ${ABI_COPY_COMMAND} ${CRYPT_HEADERS} ${ABICHECK_TMPDIR}/crypt ${ABI_COPY_FLAGS}
366 COMMAND ${ABI_COPY_COMMAND} ${DFILTER_HEADERS} ${ABICHECK_TMPDIR}/dfilter ${ABI_COPY_FLAGS}
367 COMMAND ${ABI_COPY_COMMAND} ${D_HEADERS} ${ABICHECK_TMPDIR}/dissectors ${ABI_COPY_FLAGS}
368 COMMAND ${ABI_COPY_COMMAND} ${FTYPES_HEADERS} ${ABICHECK_TMPDIR}/ftypes ${ABI_COPY_FLAGS}
369 COMMAND ${ABI_COPY_COMMAND} ${WMEM_HEADERS} ${ABICHECK_TMPDIR}/wmem ${ABI_COPY_FLAGS}
370 COMMAND rm -f ${ABICHECK_TMPDIR}/dissectors/x11-extension-implementation.h
371 ${ABICHECK_TMPDIR}/dissectors/packet-rtps.h
372 ${ABICHECK_TMPDIR}/dissectors/x11-glx-render-enum.h
373 ${ABICHECK_TMPDIR}/dissectors/x11-register-info.h
374 ${ABICHECK_TMPDIR}/dissectors/packet-idmp.h
375 COMMAND ${ABICHECK_COMMAND}
376 COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/abi_dumps/libwireshark/libwireshark_* ${CMAKE_CURRENT_BINARY_DIR}/libwireshark.abi.tar.gz
377 COMMAND rm -rf ${ABICHECK_TMPDIR} ${CMAKE_CURRENT_BINARY_DIR}/abi_dumps
378 # COMMAND rm -rf ${CMAKE_CURRENT_BINARY_DIR}/abi_dumps ${ABICHECK_TMPDIR}/config.h
379 # ${ABICHECK_TMPDIR}/epan/* ${ABICHECK_TMPDIR}/crypt/*
380 # ${ABICHECK_TMPDIR}/dfilter/* ${ABICHECK_TMPDIR}/dissectors/*
381 # ${ABICHECK_TMPDIR}/ftypes/* ${ABICHECK_TMPDIR}/wmem/*
383 ${CRYPT_HEADERS} ${DFILTER_HEADERS} ${D_HEADERS}
384 ${FTYPES_HEADERS} ${WMEM_HEADERS} epan)
386 # By default the name for a library with target name epan will be libepan,
387 # but Ethereal is now named Wireshark
388 set_target_properties(epan PROPERTIES
389 OUTPUT_NAME "wireshark"
394 target_link_libraries(epan ${epan_LIBS})
396 add_dependencies(epan lemon)
399 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
400 RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
401 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
405 install(FILES ${LIBWIRESHARK_PUBLIC_HEADERS}
406 DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${CPACK_PACKAGE_NAME}/epan"
410 add_executable(exntest EXCLUDE_FROM_ALL exntest.c except.c)
411 target_link_libraries(exntest ${GLIB2_LIBRARIES})
412 set_target_properties(exntest PROPERTIES
414 COMPILE_DEFINITIONS "WS_BUILD_DLL"
417 add_executable(oids_test EXCLUDE_FROM_ALL oids_test.c)
418 target_link_libraries(oids_test epan ${ZLIB_LIBRARIES})
419 set_target_properties(oids_test PROPERTIES
421 COMPILE_DEFINITIONS "WS_BUILD_DLL"
424 add_executable(reassemble_test EXCLUDE_FROM_ALL reassemble_test.c)
425 target_link_libraries(reassemble_test epan)
426 set_target_properties(reassemble_test PROPERTIES
430 add_executable(tvbtest EXCLUDE_FROM_ALL tvbtest.c)
431 target_link_libraries(tvbtest epan)
432 set_target_properties(tvbtest PROPERTIES
434 COMPILE_DEFINITIONS "WS_BUILD_DLL"
443 ${LIBWIRESHARK_FILES}
447 # Editor modelines - http://www.wireshark.org/tools/modelines.html
452 # indent-tabs-mode: t
455 # vi: set shiftwidth=8 tabstop=8 noexpandtab:
456 # :indentSize=8:tabSize=8:noTabs=false: