ERF: Make ERF wiretap forwards compatible.
[metze/wireshark/wip.git] / wiretap / CMakeLists.txt
1 # CMakeLists.txt
2 #
3 # Wireshark - Network traffic analyzer
4 # By Gerald Combs <gerald@wireshark.org>
5 # Copyright 1998 Gerald Combs
6 #
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.
11 #
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.
16 #
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.
20 #
21
22 include(UseABICheck)
23
24 set(WIRETAP_FILES
25         5views.c
26         aethra.c
27         ascendtext.c
28         atm.c
29         ber.c
30         btsnoop.c
31         camins.c
32         capsa.c
33         catapult_dct2000.c
34         commview.c
35         cosine.c
36         csids.c
37         daintree-sna.c
38         dbs-etherwatch.c
39         dct3trace.c
40         erf.c
41         eyesdn.c
42         file_access.c
43         file_wrappers.c
44         hcidump.c
45         i4btrace.c
46         ipfix.c
47         iptrace.c
48         iseries.c
49         json.c
50         k12.c
51         lanalyzer.c
52         libpcap.c
53         logcat.c
54         logcat_text.c
55         merge.c
56         mpeg.c
57         mplog.c
58         mime_file.c
59         mp2t.c
60         netmon.c
61         netscaler.c
62         netscreen.c
63         nettl.c
64         nettrace_3gpp_32_423.c
65         network_instruments.c
66         netxray.c
67         ngsniffer.c
68         packetlogger.c
69         pcap-common.c
70         pcapng.c
71         peekclassic.c
72         peektagged.c
73         pppdump.c
74         radcom.c
75         snoop.c
76         stanag4607.c
77         tnef.c
78         toshiba.c
79         visual.c
80         vms.c
81         vwr.c
82         wtap.c
83         wtap_opttypes.c
84         ${CMAKE_SOURCE_DIR}/ws_version_info.c
85 )
86
87 if (WERROR_COMMON_FLAGS)
88         set_source_files_properties(
89                 ${WIRETAP_FILES}
90                 PROPERTIES
91                 COMPILE_FLAGS ${WERROR_COMMON_FLAGS}
92         )
93 endif()
94
95 add_lex_files(LEX_FILES GENERATED_FILES
96         ascend_scanner.l
97         k12text.l
98 )
99
100 add_yacc_files(YACC_FILES GENERATED_FILES
101         ascend.y
102 )
103
104 set(wiretap_LIBS
105         ${GLIB2_LIBRARIES}
106         ${GMODULE2_LIBRARIES}
107         ${ZLIB_LIBRARIES}
108         wsutil
109 )
110
111 add_library(wiretap ${LINK_MODE_LIB}
112         ${WIRETAP_FILES}
113         ${GENERATED_FILES}
114         ${CMAKE_BINARY_DIR}/image/wiretap.rc
115 )
116
117 add_dependencies(wiretap version)
118
119 set(FULL_SO_VERSION "0.0.0")
120
121 set_target_properties(wiretap PROPERTIES
122         COMPILE_DEFINITIONS "WS_BUILD_DLL"
123         LINK_FLAGS "${WS_LINK_FLAGS}"
124         VERSION ${FULL_SO_VERSION} SOVERSION 0
125         FOLDER "DLLs"
126 )
127 IF(MSVC)
128         set_target_properties(wiretap PROPERTIES OUTPUT_NAME "wiretap-${PROJECT_VERSION}")
129 ENDIF()
130
131 if(ENABLE_APPLICATION_BUNDLE)
132         set_target_properties(wiretap PROPERTIES
133                 LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/run/Wireshark.app/Contents/Frameworks
134         )
135 endif()
136
137 ABICHECK(libwiretap)
138
139 add_custom_command(OUTPUT libwiretap.abi.tar.gz
140         COMMAND ${CMAKE_COMMAND} -E remove_directory ${ABICHECK_TMPDIR}
141         COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}
142         COMMAND ${ABI_COPY_COMMAND} ../config.h ${ABICHECK_TMPDIR}/ ${ABI_COPY_FLAGS}
143         COMMAND ${ABI_COPY_COMMAND} ${ABICHECK_HEADERS} ${ABICHECK_TMPDIR}/ ${ABI_COPY_FLAGS}
144         COMMAND ${ABICHECK_COMMAND}
145         COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/abi_dumps/libwiretap/libwiretap_* ${CMAKE_CURRENT_BINARY_DIR}/libwiretap.abi.tar.gz
146         COMMAND rm -rf ${ABICHECK_TMPDIR} ${CMAKE_CURRENT_BINARY_DIR}/abi_dumps
147         DEPENDS ${HEADERS} wiretap)
148
149 target_link_libraries(wiretap ${wiretap_LIBS})
150
151 if(NOT ${ENABLE_STATIC})
152         install(TARGETS wiretap
153                 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
154                 RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
155                 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
156         )
157 endif()
158
159 CHECKAPI(
160         NAME
161           wiretap
162         SWITCHES
163 ## 'abort' checking disabled for now pending resolution of existing use of g_assert & g_error
164 ##        -g abort -g termoutput
165           -g termoutput -build
166         SOURCES
167           ${WIRETAP_FILES}
168 # LEX files commented out due to use of malloc, free etc.
169 #         ${LEX_FILES}
170           ${YACC_FILES}
171 )