e3eb20aa6fdcb6ea9751bf4395dc95775099f9a9
[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         mime_file.c
58         mp2t.c
59         netmon.c
60         netscaler.c
61         netscreen.c
62         nettl.c
63         nettrace_3gpp_32_423.c
64         network_instruments.c
65         netxray.c
66         ngsniffer.c
67         packetlogger.c
68         pcap-common.c
69         pcapng.c
70         peekclassic.c
71         peektagged.c
72         pppdump.c
73         radcom.c
74         snoop.c
75         stanag4607.c
76         tnef.c
77         toshiba.c
78         visual.c
79         vms.c
80         vwr.c
81         wtap.c
82 )
83
84 if (WERROR_COMMON_FLAGS)
85         set_source_files_properties(
86                 ${WIRETAP_FILES}
87                 PROPERTIES
88                 COMPILE_FLAGS ${WERROR_COMMON_FLAGS}
89         )
90 endif()
91
92 add_lex_files(WIRETAP_FILES
93         ascend_scanner.l
94         k12text.l
95 )
96
97 add_yacc_files(WIRETAP_FILES
98         ascend.y
99 )
100
101 set(wiretap_LIBS
102         ${GLIB2_LIBRARIES}
103         ${GMODULE2_LIBRARIES}
104         ${ZLIB_LIBRARIES}
105         wsutil
106 )
107
108 add_library(wiretap ${LINK_MODE_LIB}
109         ${WIRETAP_FILES}
110         ${CMAKE_BINARY_DIR}/image/wiretap.rc
111 )
112
113 set(FULL_SO_VERSION "0.0.0")
114
115 set_target_properties(wiretap PROPERTIES
116         COMPILE_DEFINITIONS "WS_BUILD_DLL"
117         LINK_FLAGS "${WS_LINK_FLAGS}"
118         VERSION ${FULL_SO_VERSION} SOVERSION 0
119         FOLDER "DLLs"
120 )
121 IF(MSVC)
122         set_target_properties(wiretap PROPERTIES OUTPUT_NAME "wiretap-${PROJECT_VERSION}")
123 ENDIF()
124
125 if(ENABLE_APPLICATION_BUNDLE)
126         set_target_properties(wiretap PROPERTIES
127                 LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/run/Wireshark.app/Contents/Frameworks
128         )
129 endif()
130
131 ABICHECK(libwiretap)
132
133 add_custom_command(OUTPUT libwiretap.abi.tar.gz
134         COMMAND ${CMAKE_COMMAND} -E remove_directory ${ABICHECK_TMPDIR}
135         COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}
136         COMMAND ${ABI_COPY_COMMAND} ../config.h ${ABICHECK_TMPDIR}/ ${ABI_COPY_FLAGS}
137         COMMAND ${ABI_COPY_COMMAND} ${ABICHECK_HEADERS} ${ABICHECK_TMPDIR}/ ${ABI_COPY_FLAGS}
138         COMMAND ${ABICHECK_COMMAND}
139         COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/abi_dumps/libwiretap/libwiretap_* ${CMAKE_CURRENT_BINARY_DIR}/libwiretap.abi.tar.gz
140         COMMAND rm -rf ${ABICHECK_TMPDIR} ${CMAKE_CURRENT_BINARY_DIR}/abi_dumps
141         DEPENDS ${HEADERS} wiretap)
142
143 target_link_libraries(wiretap ${wiretap_LIBS})
144
145 if(NOT ${ENABLE_STATIC})
146         install(TARGETS wiretap
147                 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
148                 RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
149                 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
150         )
151 endif()