More comment updates.
[metze/wireshark/wip.git] / epan / CMakeLists.txt
index 3bb415589ccb9c8a7ff2d5a69025ffe076edc4de..067bf8bfba3a56fae1973e54d98c720444636a4c 100644 (file)
@@ -4,19 +4,7 @@
 # By Gerald Combs <gerald@wireshark.org>
 # Copyright 1998 Gerald Combs
 #
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+# SPDX-License-Identifier: GPL-2.0-or-later
 #
 
 include(UseABICheck)
@@ -41,36 +29,6 @@ include_directories(
        ${CMAKE_CURRENT_SOURCE_DIR}
 )
 
-set(COMPRESS_FILES
-       compress/lzxpress.c
-)
-source_group(compress FILES ${COMPRESS_FILES})
-
-set(LIBWIRESHARK_ASM_FILES
-       asm_utils.c
-# todo
-#      !IFDEF NASM
-#      asm_utils_win32_x86.obj: asm_utils_win32_x86.asm
-#              $(NASM) -f $(WIRESHARK_TARGET_PLATFORM) -o $@ $?
-#      !ENDIF
-#      ...
-#      !IF defined(NASM) && "$(WIRESHARK_TARGET_PLATFORM)" == "win32"
-#              asm_utils_win32_x86.obj
-#      !ELSE
-#              asm_utils.obj
-#      !ENDIF
-)
-
-add_custom_target(
-       update-sminmpec
-       COMMAND ${PERL_EXECUTABLE}
-               ${CMAKE_SOURCE_DIR}/tools/make-sminmpec.pl
-       DEPENDS
-               enterprise-numbers
-               ${CMAKE_SOURCE_DIR}/tools/make-sminmpec.pl
-)
-set_target_properties(update-sminmpec PROPERTIES FOLDER "tools")
-
 add_custom_command(
        OUTPUT ps.c
        COMMAND ${PYTHON_EXECUTABLE}
@@ -82,7 +40,129 @@ add_custom_command(
                ${CMAKE_CURRENT_SOURCE_DIR}/print.ps
 )
 
-set(LIBWIRESHARK_FILES
+set(LIBWIRESHARK_PUBLIC_HEADERS
+       addr_and_mask.h
+       addr_resolv.h
+       address.h
+       address_types.h
+       afn.h
+       aftypes.h
+       app_mem_usage.h
+       arcnet_pids.h
+       arptypes.h
+       asn1.h
+       ax25_pids.h
+       bridged_pids.h
+       capture_dissectors.h
+       charsets.h
+       chdlctypes.h
+       color_filters.h
+       column.h
+       column-info.h
+       column-utils.h
+       conversation.h
+       conversation_debug.h
+       conversation_table.h
+       conv_id.h
+       crc10-tvb.h
+       crc16-tvb.h
+       crc32-tvb.h
+       crc6-tvb.h
+       crc8-tvb.h
+       decode_as.h
+       diam_dict.h
+       disabled_protos.h
+       dissector_filters.h
+       dtd.h
+       dtd_parse.h
+       dvb_chartbl.h
+       eap.h
+       eapol_keydes_types.h
+       epan.h
+       epan_dissect.h
+       etypes.h
+       ex-opt.h
+       except.h
+       exceptions.h
+       expert.h
+       export_object.h
+       exported_pdu.h
+       filter_expressions.h
+       follow.h
+       frame_data.h
+       frame_data_sequence.h
+       funnel.h
+       garrayfix.h
+       #geoip_db.h
+       golay.h
+       guid-utils.h
+       iana_charsets.h
+       iax2_codec_type.h
+       in_cksum.h
+       ip_opts.h
+       ipproto.h
+       ipv4.h
+       ipv6.h
+       lapd_sapi.h
+       llcsaps.h
+       maxmind_db.h
+       media_params.h
+       next_tvb.h
+       nlpid.h
+       oids.h
+       osi-utils.h
+       oui.h
+       packet.h
+       packet_info.h
+       params.h
+       plugin_if.h
+       ppptypes.h
+       print.h
+       print_stream.h
+       prefs.h
+       prefs-int.h
+       proto.h
+       proto_data.h
+       ps.h
+       ptvcursor.h
+       range.h
+       reassemble.h
+       reedsolomon.h
+       register.h
+       req_resp_hdrs.h
+       rtd_table.h
+       rtp_pt.h
+       sctpppids.h
+       show_exception.h
+       slow_protocol_subtypes.h
+       sminmpec.h
+       srt_table.h
+       stat_tap_ui.h
+       stat_groups.h
+       stats_tree.h
+       stats_tree_priv.h
+       stream.h
+       strutil.h
+       t35.h
+       tap.h
+       tap-voip.h
+       timestamp.h
+       timestats.h
+       tfs.h
+       time_fmt.h
+       to_str.h
+       tvbparse.h
+       tvbuff.h
+       tvbuff-int.h
+       uat.h
+       uat-int.h
+       unit_strings.h
+       value_string.h
+       x264_prt_id.h
+       xdlc.h
+)
+
+set(LIBWIRESHARK_NONGENERATED_FILES
        addr_and_mask.c
        addr_resolv.c
        address_types.c
@@ -92,7 +172,6 @@ set(LIBWIRESHARK_FILES
        asn1.c
        capture_dissectors.c
        charsets.c
-       circuit.c
        color_filters.c
        column.c
        column-utils.c
@@ -107,45 +186,43 @@ set(LIBWIRESHARK_FILES
        disabled_protos.c
        dissector_filters.c
        dvb_chartbl.c
-       dwarf.c
        epan.c
        ex-opt.c
        except.c
        expert.c
+       export_object.c
        exported_pdu.c
-       plugin_if.c
        filter_expressions.c
        follow.c
        frame_data.c
        frame_data_sequence.c
        funnel.c
-       geoip_db.c
+       #geoip_db.c
        golay.c
        guid-utils.c
        iana_charsets.c
        in_cksum.c
        ipproto.c
-       ipv4.c
+       maxmind_db.c
        media_params.c
        next_tvb.c
        oids.c
        osi-utils.c
-       oui.c
-       packet-range.c
        packet.c
+       plugin_if.c
        print.c
        print_stream.c
        prefs.c
        proto.c
        proto_data.c
-       ps.c
        range.c
        reassemble.c
        reedsolomon.c
+       register.c
        req_resp_hdrs.c
        rtd_table.c
+       sequence_analysis.c
        show_exception.c
-       sminmpec.c
        srt_table.c
        stat_tap_ui.c
        stats_tree.c
@@ -166,15 +243,15 @@ set(LIBWIRESHARK_FILES
        tvbuff_zlib.c
        uat.c
        value_string.c
+       unit_strings.c
        xdlc.c
-       ${CMAKE_SOURCE_DIR}/ws_version_info.c
+       ${CMAKE_CURRENT_BINARY_DIR}/ps.c
+       ${CMAKE_SOURCE_DIR}/version_info.c
 )
 
-set(LIBWIRESHARK_CLEAN_FILES
-       ${LIBWIRESHARK_FILES}
-)
+set(LIBWIRESHARK_FILES ${LIBWIRESHARK_NONGENERATED_FILES})
 
-add_lex_files(LEX_FILES GENERATED_FILES
+add_lex_files(LEX_FILES LIBWIRESHARK_FILES
        diam_dict.l
        dtd_parse.l
        dtd_preparse.l
@@ -182,7 +259,7 @@ add_lex_files(LEX_FILES GENERATED_FILES
        uat_load.l
 )
 
-add_lemon_files(LEMON_FILES GENERATED_FILES
+add_lemon_files(LEMON_FILES LIBWIRESHARK_FILES
        dtd_grammar.lemon
 )
 
@@ -191,8 +268,10 @@ set(epan_LIBS
        wsutil
        ${CARES_LIBRARIES}
        ${GCRYPT_LIBRARIES}
-       ${GEOIP_LIBRARIES}
+       #${GEOIP_LIBRARIES}
        ${GLIB2_LIBRARIES}
+       ${GIO2_LIBRARIES}
+       ${GTHREAD2_LIBRARIES}
        ${GNUTLS_LIBRARIES}
        ${KERBEROS_LIBRARIES}
        ${LUA_LIBRARIES}
@@ -203,39 +282,25 @@ set(epan_LIBS
        ${SMI_LIBRARIES}
        ${SNAPPY_LIBRARIES}
        ${WIN_PSAPI_LIBRARY}
-)
-
-set(CLEAN_FILES
-       ${LIBWIRESHARK_CLEAN_FILES}
-       ${COMPRESS_FILES}
-       ${LIBWIRESHARK_ASM_FILES}
+       ${LIBXML2_LIBRARIES}
+       ${JSONGLIB_LIBRARIES}
 )
 
 set_source_files_properties(
-       ${CLEAN_FILES}
+       ${LIBWIRESHARK_FILES}
        PROPERTIES
        COMPILE_FLAGS "${WERROR_COMMON_FLAGS}"
 )
 
-# Cannot use $<$<BOOL:${HAVE_LIBLUA}>:$<TARGET_OBJECTS:wslua>> as that breaks
-# get_target_property(_libwireshark_location epan LOCATION).
-if(HAVE_LIBLUA)
-       set(wslua_sources $<TARGET_OBJECTS:wslua>)
-else()
-       set(wslua_sources)
-endif()
-add_library(epan ${LINK_MODE_LIB}
+add_library(epan
        ${LIBWIRESHARK_FILES}
-       ${GENERATED_FILES}
-       ${COMPRESS_FILES}
-       ${LIBWIRESHARK_ASM_FILES}
        $<TARGET_OBJECTS:crypt>
        $<TARGET_OBJECTS:dfilter>
        $<TARGET_OBJECTS:dissectors>
        $<TARGET_OBJECTS:dissectors-corba>
        $<TARGET_OBJECTS:ftypes>
        $<TARGET_OBJECTS:wmem>
-       ${wslua_sources}
+       $<$<BOOL:${HAVE_LIBLUA}>:$<TARGET_OBJECTS:wslua>>
        ${CMAKE_BINARY_DIR}/image/libwireshark.rc
 )
 
@@ -243,10 +308,11 @@ add_dependencies(epan version)
 
 set(FULL_SO_VERSION "0.0.0")
 
-set_target_properties(epan PROPERTIES COMPILE_DEFINITIONS "WS_BUILD_DLL")
-set_target_properties(epan PROPERTIES COMPILE_OPTIONS "${WS_WARNINGS_C_FLAGS}")
-set_target_properties(epan PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
-set_target_properties(epan PROPERTIES VERSION ${FULL_SO_VERSION} SOVERSION 0)
+set_target_properties(epan PROPERTIES
+       COMPILE_DEFINITIONS "WS_BUILD_DLL"
+       LINK_FLAGS "${WS_LINK_FLAGS}"
+       VERSION ${FULL_SO_VERSION} SOVERSION 0
+)
 
 if(ENABLE_APPLICATION_BUNDLE)
        set_target_properties(epan PROPERTIES
@@ -256,9 +322,8 @@ endif()
 
 ABICHECK(libwireshark)
 
-set(TOP_LEVEL_HEADERS ${CMAKE_BINARY_DIR}/config.h ${CMAKE_SOURCE_DIR}/register.h)
+set(TOP_LEVEL_HEADERS ${CMAKE_BINARY_DIR}/config.h)
 file(GLOB CRYPT_HEADERS crypt/*.h)
-file(GLOB COMPRESS_HEADERS compress/*.h)
 file(GLOB DFILTER_HEADERS dfilter/*.h ../tools/lemon/cppmagic.h)
 file(GLOB D_HEADERS dissectors/*.h)
 file(GLOB FTYPES_HEADERS ftypes/*.h)
@@ -269,7 +334,6 @@ add_custom_command(OUTPUT libwireshark.abi.tar.gz
        COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}
        COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}/epan
        COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}/crypt
-       COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}/compress
        COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}/dfilter
        COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}/dissectors
        COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}/ftypes
@@ -277,7 +341,6 @@ add_custom_command(OUTPUT libwireshark.abi.tar.gz
        COMMAND ${ABI_COPY_COMMAND} ${TOP_LEVEL_HEADERS} ${ABICHECK_TMPDIR} ${ABI_COPY_FLAGS}
        COMMAND ${ABI_COPY_COMMAND} ${ABICHECK_HEADERS} ${ABICHECK_TMPDIR}/epan ${ABI_COPY_FLAGS}
        COMMAND ${ABI_COPY_COMMAND} ${CRYPT_HEADERS} ${ABICHECK_TMPDIR}/crypt ${ABI_COPY_FLAGS}
-       COMMAND ${ABI_COPY_COMMAND} ${COMPRESS_HEADERS} ${ABICHECK_TMPDIR}/compress ${ABI_COPY_FLAGS}
        COMMAND ${ABI_COPY_COMMAND} ${DFILTER_HEADERS} ${ABICHECK_TMPDIR}/dfilter ${ABI_COPY_FLAGS}
        COMMAND ${ABI_COPY_COMMAND} ${D_HEADERS} ${ABICHECK_TMPDIR}/dissectors ${ABI_COPY_FLAGS}
        COMMAND ${ABI_COPY_COMMAND} ${FTYPES_HEADERS} ${ABICHECK_TMPDIR}/ftypes ${ABI_COPY_FLAGS}
@@ -292,11 +355,10 @@ add_custom_command(OUTPUT libwireshark.abi.tar.gz
        COMMAND rm -rf ${ABICHECK_TMPDIR} ${CMAKE_CURRENT_BINARY_DIR}/abi_dumps
 #      COMMAND rm -rf ${CMAKE_CURRENT_BINARY_DIR}/abi_dumps ${ABICHECK_TMPDIR}/config.h
 #              ${ABICHECK_TMPDIR}/epan/* ${ABICHECK_TMPDIR}/crypt/*
-#              ${ABICHECK_TMPDIR}/epan/* ${ABICHECK_TMPDIR}/compress/*
 #              ${ABICHECK_TMPDIR}/dfilter/* ${ABICHECK_TMPDIR}/dissectors/*
 #              ${ABICHECK_TMPDIR}/ftypes/* ${ABICHECK_TMPDIR}/wmem/*
        DEPENDS ${HEADERS}
-               ${CRYPT_HEADERS} ${COMPRESS_HEADERS} ${DFILTER_HEADERS} ${D_HEADERS}
+               ${CRYPT_HEADERS} ${DFILTER_HEADERS} ${D_HEADERS}
                ${FTYPES_HEADERS} ${WMEM_HEADERS} epan)
 
 # By default the name for a library with target name epan will be libepan,
@@ -311,11 +373,15 @@ target_link_libraries(epan ${epan_LIBS})
 
 add_dependencies(epan lemon)
 
-if(NOT ${ENABLE_STATIC})
-       install(TARGETS epan
-               LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-               RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
-               ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+install(TARGETS epan
+       LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+       RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
+       ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+)
+
+if(NOT WIN32)
+       install(FILES ${LIBWIRESHARK_PUBLIC_HEADERS}
+               DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${CPACK_PACKAGE_NAME}/epan"
        )
 endif()
 
@@ -323,30 +389,31 @@ add_executable(exntest EXCLUDE_FROM_ALL exntest.c except.c)
 target_link_libraries(exntest ${GLIB2_LIBRARIES})
 set_target_properties(exntest PROPERTIES
        FOLDER "Tests"
+       EXCLUDE_FROM_DEFAULT_BUILD True
        COMPILE_DEFINITIONS "WS_BUILD_DLL"
-       COMPILE_OPTIONS "${WS_WARNINGS_C_FLAGS}"
 )
 
 add_executable(oids_test EXCLUDE_FROM_ALL oids_test.c)
 target_link_libraries(oids_test epan ${ZLIB_LIBRARIES})
 set_target_properties(oids_test PROPERTIES
        FOLDER "Tests"
+       EXCLUDE_FROM_DEFAULT_BUILD True
        COMPILE_DEFINITIONS "WS_BUILD_DLL"
-       COMPILE_OPTIONS "${WS_WARNINGS_C_FLAGS}"
 )
 
 add_executable(reassemble_test EXCLUDE_FROM_ALL reassemble_test.c)
 target_link_libraries(reassemble_test epan)
 set_target_properties(reassemble_test PROPERTIES
        FOLDER "Tests"
+       EXCLUDE_FROM_DEFAULT_BUILD True
 )
 
 add_executable(tvbtest EXCLUDE_FROM_ALL tvbtest.c)
 target_link_libraries(tvbtest epan)
 set_target_properties(tvbtest PROPERTIES
        FOLDER "Tests"
+       EXCLUDE_FROM_DEFAULT_BUILD True
        COMPILE_DEFINITIONS "WS_BUILD_DLL"
-       COMPILE_OPTIONS "${WS_WARNINGS_C_FLAGS}"
 )
 
 CHECKAPI(
@@ -355,7 +422,7 @@ CHECKAPI(
        SWITCHES
          -g termoutput -build
        SOURCES
-         ${LIBWIRESHARK_FILES}
+         ${LIBWIRESHARK_NONGENERATED_FILES}
 )
 
 #