Fix the following GTK-CRITICAL error Gtk-CRITICAL **: gtk_list_store_get_path: assert...
[metze/wireshark/wip.git] / CMakeLists.txt
1 # CMakeLists.txt
2 #
3 # $Id$
4 #
5 # Wireshark - Network traffic analyzer
6 # By Gerald Combs <gerald@wireshark.org>
7 # Copyright 1998 Gerald Combs
8 #
9 # This program is free software; you can redistribute it and/or
10 # modify it under the terms of the GNU General Public License
11 # as published by the Free Software Foundation; either version 2
12 # of the License, or (at your option) any later version.
13 #
14 # This program is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 # GNU General Public License for more details.
18 #
19 # You should have received a copy of the GNU General Public License
20 # along with this program; if not, write to the Free Software
21 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22 #
23
24 project(Wireshark C CXX)
25
26 cmake_minimum_required(VERSION 2.6)
27 set(CMAKE_BACKWARDS_COMPATIBILITY 2.6)
28
29 # Needs to be set after cmake_minimum_required or cmake_policy(VERSION)
30 if(COMMAND cmake_policy)
31         # Backward compatibility for versions < 2.6.3
32         cmake_policy(SET CMP0011 OLD)
33 #       cmake_policy(SET CMP0015 NEW)
34 endif(COMMAND cmake_policy)
35
36 # set(PROJECT_MAJOR_VERSION 1)
37 # set(PROJECT_MINOR_VERSION 9)
38 # set(PROJECT_PATCH_VERSION 0)
39 # set(PROJECT_VERSION_EXTENSION "-rc5")
40 # If not set, copy over Wireshark version from configure.ac
41 if(NOT PROJECT_MAJOR_VERSION)
42         file(STRINGS
43                 ${CMAKE_SOURCE_DIR}/configure.ac
44                 PROJECT_MAJOR_VERSION_TMP
45                 REGEX "^m4_define\\(\\[?version_major\\]?, *\\[?[0-9]+\\]?\\)"
46         )
47         file(STRINGS
48                 ${CMAKE_SOURCE_DIR}/configure.ac
49                 PROJECT_MINOR_VERSION_TMP
50                 REGEX "^m4_define\\(\\[?version_minor\\]?, *\\[?[0-9]+\\]?\\)"
51         )
52         file(STRINGS
53                 ${CMAKE_SOURCE_DIR}/configure.ac
54                 PROJECT_PATCH_VERSION_TMP
55                 REGEX "^m4_define\\(\\[?version_micro\\]?, *\\[?[0-9]+\\]?\\)"
56         )
57         # XXX pull VERSION_EXTENSION out of configure.ac ?
58
59         string(REGEX REPLACE "m4_define\\(\\[?version_major\\]?, *\\[?([0-9]+)\\]?\\)"
60                 "\\1"
61                 PROJECT_MAJOR_VERSION
62                 ${PROJECT_MAJOR_VERSION_TMP}
63         )
64         string(REGEX REPLACE "m4_define\\(\\[?version_minor\\]?, *\\[?([0-9]+)\\]?\\)"
65                 "\\1"
66                 PROJECT_MINOR_VERSION
67                 ${PROJECT_MINOR_VERSION_TMP}
68         )
69         string(REGEX REPLACE "m4_define\\(\\[?version_micro\\]?, *\\[?([0-9]+)\\]?\\)"
70                 "\\1"
71                 PROJECT_PATCH_VERSION
72                 ${PROJECT_PATCH_VERSION_TMP}
73         )
74 endif()
75
76
77 if(PROJECT_VERSION_EXTENSION)
78         set(PROJECT_VERSION ${PROJECT_MAJOR_VERSION}.${PROJECT_MINOR_VERSION}.${PROJECT_PATCH_VERSION}${PROJECT_VERSION_EXTENSION})
79 else()
80         set(PROJECT_VERSION ${PROJECT_MAJOR_VERSION}.${PROJECT_MINOR_VERSION}.${PROJECT_PATCH_VERSION})
81 endif()
82
83 message(STATUS "V: ${PROJECT_VERSION}, MaV: ${PROJECT_MAJOR_VERSION}, MiV: ${PROJECT_MINOR_VERSION}, PL: ${PROJECT_PATCH_VERSION}, EV: ${PROJECT_VERSION_EXTENSION}.")
84
85 #Where to find local cmake scripts
86 set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
87 INCLUDE(UseLemon)
88 INCLUDE(UseMakeDissectorReg)
89 INCLUDE(UseMakeTapReg)
90
91 # Under linux the release mode (CMAKE_BUILD_TYPE=release) defines NDEBUG
92
93 # Enable with: "make VERBOSE=1"
94 set(CMAKE_VERBOSE_MAKEFILE OFF)
95
96 #Defines CMAKE_INSTALL_BINDIR, CMAKE_INSTALL_DATADIR, etc ...
97 include(CMakeInstallDirs)
98
99 include_directories(
100         ${CMAKE_BINARY_DIR}
101         ${CMAKE_SOURCE_DIR}
102         ${CMAKE_SOURCE_DIR}/epan
103         ${CMAKE_SOURCE_DIR}/tools/lemon
104         ${CMAKE_SOURCE_DIR}/wiretap
105 )
106
107 #Where to put libraries
108 if(NOT LIBRARY_OUTPUT_PATH)
109         set(LIBRARY_OUTPUT_PATH ${Wireshark_BINARY_DIR}/lib CACHE INTERNAL
110                    "Single output directory for building all libraries.")
111 endif()
112
113
114 include(CMakeOptions.txt)
115
116
117 set(WIRESHARK_C_FLAGS
118         -O2
119         -g
120         -Wall
121         -W
122         -Wextra
123         -Wendif-labels
124         -Wpointer-arith
125         -Warray-bounds
126         -Wcast-align
127         -Wformat-security
128         -fexcess-precision=fast
129 )
130
131 set(WIRESHARK_C_ONLY_FLAGS
132         # The following are C only, not C++
133         -Wdeclaration-after-statement
134         -Wno-pointer-sign
135         -Wold-style-definition
136 )
137
138 set(WIRESHARK_EXTRA_C_FLAGS
139         -pedantic
140         -Woverflow
141         -Wlogical-op
142         -Wno-overlength-strings
143         -fstrict-overflow -Wstrict-overflow=4
144         -Wunreachable-code
145         -Wunsafe-loop-optimizations
146         -Wno-long-long
147         -Wcast-qual
148         -Waddress
149         -Warray-bounds
150         -Wattributes
151         -Wdiv-by-zero
152         -Wformat-security
153         -Wignored-qualifiers
154         -Wpragmas
155         -Wredundant-decls
156         -Wvla
157         # packet-ncp2222.inc prevents this from going into all warnings
158         -Wwrite-strings
159         # All the registration functions block these for now.
160         -Wmissing-declarations
161         # Problem with packet-afs.c
162         -Wshadow
163         # More cleanup needed for this on LP64
164         -Wshorten-64-to-32
165
166 )
167
168 set(WIRESHARK_EXTRA_C_ONLY_FLAGS
169         # The following are C only, not C++
170         -Wbad-function-cast
171         -Wc++-compat
172         -Wjump-misses-init
173         # GLib blocks this for now.
174         -Wstrict-prototypes
175         # All the registration functions block these for now.
176         -Wmissing-prototypes
177 )
178
179 if(ENABLE_EXTRA_GCC_CHECKS)   # This overrides -Werror
180         set(WIRESHARK_C_FLAGS ${WIRESHARK_C_FLAGS} ${WIRESHARK_EXTRA_C_FLAGS})
181         set(WIRESHARK_C_ONLY_FLAGS ${WIRESHARK_C_ONLY_FLAGS} ${WIRESHARK_EXTRA_C_ONLY_FLAGS})
182 endif()
183
184 add_definitions(
185         -DG_DISABLE_DEPRECATED
186         -DG_DISABLE_SINGLE_INCLUDES
187 )
188
189 # Counterhack to work around some cache magic in CHECK_C_SOURCE_COMPILES
190 include(CheckCCompilerFlag)
191 set(C 0)
192 # Sigh: Have to use THIS_FLAG instead of ${F} for some reason
193 foreach(THIS_FLAG ${WIRESHARK_C_FLAGS})
194         set(F WS_C_FLAG_${C})
195         set(${F} ${THIS_FLAG})
196         set(V WS_C_FLAG_VALID${C})
197         check_c_compiler_flag(${${F}} ${V})
198         if (${${V}})
199                 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${${F}}")
200                 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${${F}}")
201         endif()
202         math(EXPR C "${C} + 1")
203 endforeach()
204 # Continue increasing C from previous loop
205 foreach(THIS_FLAG ${WIRESHARK_C_ONLY_FLAGS})
206         set(F WS_C_FLAG_${C})
207         set(${F} ${THIS_FLAG})
208         set(V WS_C_FLAG_VALID${C})
209         check_c_compiler_flag(${${F}} ${V})
210         if (${${V}})
211                 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${${F}}")
212         endif()
213         math(EXPR C "${C} + 1")
214 endforeach()
215 message(STATUS "C-Flags: ${CMAKE_C_FLAGS}\nCXX-Flags: ${CMAKE_CXX_FLAGS}")
216
217 check_c_compiler_flag(-fvisibility=hidden FVHIDDEN)
218 if((FVHIDDEN))
219         set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden")
220 else() # TODO add alternate compiler flags for hiding symbols
221         message(WARNING "Hiding shared library symbols is not supported by the compiler."
222                 " All shared library symbols will be exported.")
223 endif()
224
225 if(NOT DISABLE_WERROR AND NOT ENABLE_EXTRA_GCC_CHECKS)
226         check_c_compiler_flag(-Werror WERROR)
227 else()
228         unset(WERROR)
229 endif()
230
231 if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_CXX_COMPILER MATCHES ".*clang")
232         set (C_UNUSED "__attribute__((unused))" )
233 else()
234         set (C_UNUSED "" )
235 endif()
236
237 set(WIRESHARK_LD_FLAGS
238         -Wl,--as-needed
239         # -flto
240         # -fwhopr
241         # -fwhole-program
242 )
243
244 include(CheckCLinkerFlag)
245 set(C 0)
246 # Sigh: Have to use THIS_FLAG instead of ${F} for some reason
247 foreach(THIS_FLAG ${WIRESHARK_LD_FLAGS})
248         set(F WS_LD_FLAG_${C})
249         set(${F} ${THIS_FLAG})
250         set(V WS_LD_FLAG_VALID${C})
251         check_c_linker_flag(${${F}} ${V})
252         if (${${V}})
253                 set(WS_LINK_FLAGS ${WS_LINK_FLAGS} ${${F}})
254         endif()
255         math(EXPR C "${C} + 1")
256 endforeach()
257
258 if(ENABLE_STATIC)
259   set(LINK_MODE_LIB STATIC)
260   set(LINK_MODE_MODULE STATIC)
261 else()
262   set(LINK_MODE_LIB SHARED)
263   set(LINK_MODE_MODULE MODULE)
264 endif()
265
266 # The packagelist is doing some magic:  If we add XXX to the packagelist, we
267 # - may optionally set XXX_OPTIONS to pass to the find_package command
268 # - will call FindXXX.cmake
269 # - return found libraries in XXX_LIBRARIES
270 # - return found include in XXX_INCLUDE_DIRS
271 # - set HAVE_XXX
272
273 #The minimum package list
274 set(PACKAGELIST GLIB2 GMODULE2 GTHREAD2 M LEX YACC Perl SH PythonInterp)
275 set(GLIB2_FIND_REQUIRED)
276 set(GLIB2_MIN_VERSION 2.14.0)
277 set(GTHREAD2_REQUIRED)
278 set(PCAP_REQUIRED)
279 set(M_REQUIRED)
280
281 set(PACKAGELIST ${PACKAGELIST} HtmlViewer)
282
283 if(ENABLE_PCAP)
284         set(PACKAGELIST ${PACKAGELIST} PCAP)
285 endif()
286
287 # Build the GTK-GUI?
288 if(BUILD_wireshark)
289         if(ENABLE_GTK3)
290                 set(PACKAGELIST ${PACKAGELIST} GTK3)
291         else()
292                 set(PACKAGELIST ${PACKAGELIST} GTK2)
293                 set(GTK2_OPTIONS COMPONENTS gtk)
294                 set(GTK2_FIND_VERSION 2.12)
295                 set(GTK2_DEBUG false)
296         endif()
297 endif()
298
299 # Build the Qt GUI?
300 if(BUILD_qtshark)
301         set(PACKAGELIST ${PACKAGELIST} QT)
302         # set(QT_OPTIONS 4.7.1 REQUIRED QtCore QtGui)
303 endif()
304
305 # SMI SNMP
306 if(ENABLE_SMI)
307         set(PACKAGELIST ${PACKAGELIST} SMI)
308 endif()
309
310 # GNU crypto
311 if(ENABLE_GCRYPT)
312         set(PACKAGELIST ${PACKAGELIST} GCRYPT)
313 endif()
314
315 # GNU SSL/TLS support
316 if(ENABLE_GNUTLS)
317         set(PACKAGELIST ${PACKAGELIST} GNUTLS)
318 endif()
319
320 # Kerberos
321 if(ENABLE_KERBEROS)
322         set(PACKAGELIST ${PACKAGELIST} KERBEROS)
323 endif()
324
325 # Portable audio
326 if(ENABLE_PORTAUDIO)
327         set(PACKAGELIST ${PACKAGELIST} PORTAUDIO)
328 endif()
329
330
331 # Prefer c-ares over adns
332 if(ENABLE_CARES)        # C Asynchronouse resolver
333         set(PACKAGELIST ${PACKAGELIST} CARES)
334 elseif(ENABLE_ADNS)     # Gnu asynchronous DNS
335         set(PACKAGELIST ${PACKAGELIST} ADNS)
336 endif()
337
338 # Zlib compression
339 if(ENABLE_ZLIB)
340         set(PACKAGELIST ${PACKAGELIST} ZLIB)
341 endif()
342
343 # Lua 5.1 dissectors
344 if(ENABLE_LUA)
345         set(PACKAGELIST ${PACKAGELIST} LUA)
346 endif()
347
348 # GeoIP address resolving
349 if(ENABLE_GEOIP)
350         set(PACKAGELIST ${PACKAGELIST} GEOIP)
351 endif()
352
353 if(ENABLE_NETLINK)
354         set(PACKAGELIST ${PACKAGELIST} NL)
355 endif()
356
357 # Capabilities
358 if(ENABLE_CAP)
359         set(PACKAGELIST ${PACKAGELIST} CAP)
360 endif()
361
362 if(ENABLE_PYTHON)
363         set(PACKAGELIST ${PACKAGELIST} PYTHON)
364 endif()
365
366 set(PACKAGELIST ${PACKAGELIST} YAPP)
367
368 set(PACKAGELIST ${PACKAGELIST} POD)
369
370
371 set(PROGLIST text2pcap mergecap capinfos editcap reordercap dumpcap)
372
373 #Let's loop the package list
374 foreach(PACKAGE ${PACKAGELIST})
375         if(${PACKAGE} STREQUAL "QT")
376                 set(PACKAGE_NAME "Qt4")
377         else()
378                 set(PACKAGE_NAME ${PACKAGE})
379         endif()
380         if(${PACKAGE}_OPTIONS)
381                 find_package(${PACKAGE_NAME} ${${PACKAGE}_OPTIONS})
382         elseif(${PACKAGE}_REQUIRED)
383                 find_package(${PACKAGE_NAME} REQUIRED)
384         else()
385                 find_package(${PACKAGE_NAME})
386         endif()
387         message(${PACKAGE}_FOUND)
388         if (${PACKAGE}_FOUND)
389                 set(HAVE_LIB${PACKAGE} 1)
390                 include_directories(${${PACKAGE}_INCLUDE_DIRS})
391                 message(STATUS "${PACKAGE} includes: ${${PACKAGE}_INCLUDE_DIRS}")
392                 message(STATUS "${PACKAGE} libs: ${${PACKAGE}_LIBRARIES}")
393         endif()
394 endforeach()
395
396 #packaging
397 include(CPackConfig.txt)
398
399 if(HAVE_LIBPYTHON)
400         set(HAVE_PYTHON 1)
401         set(PYTHON_DIR "${CMAKE_INSTALL_PREFIX}/lib/wireshark/python/${CPACK_PACKAGE_VERSION}")
402 endif()
403 if(HAVE_LIBLUA)
404         set(HAVE_LUA_H 1)
405         set(HAVE_LUA 1)
406 endif()
407 if(HAVE_LIBKERBEROS)
408         set(HAVE_KERBEROS 1)
409         # HAVE_HEIMDAL_KERBEROS
410         set(HAVE_MIT_KERBEROS 1)
411         set(HAVE_KEYTYPE_ARCFOUR_56 1)
412 endif()
413 if(HAVE_LIBGEOIP)
414         set(HAVE_GEOIP 1)
415 endif()
416 if(HAVE_LIBCARES)
417         set(HAVE_C_ARES 1)
418 endif()
419 if(HAVE_LIBADNS)
420         set(HAVE_GNU_ADNS 1)
421 endif()
422 if(ENABLE_AIRPCAP)
423         set(HAVE_AIRPCAP 1)
424 endif()
425 if(HAVE_LIBNL AND ENABLE_AIRPCAP)
426         message(ERROR "Airpcap and Libnl support are mutually exclusive")
427 endif()
428 # No matter which version of GTK is present
429 if(GTK2_FOUND OR GTK3_FOUND)
430         set(GTK_FOUND ON)
431 endif()
432 # That's the name autofoo uses
433 if(HAVE_LIBZLIB)
434         set(HAVE_LIBZ 1)
435 endif()
436 # QT_LIBRARIES and QT_INCLUDES are not set above. They require extra magic:
437 if(QT_FOUND)
438         include(${QT_USE_FILE})
439         include_directories(${QT_INCLUDE_DIR})
440         message(STATUS "QT includes: ${QT_INCLUDE_DIR}")
441         message(STATUS "QT libs: ${QT_LIBRARIES}")
442 endif()
443
444 include(ConfigureChecks.cmake)
445
446 #Big or little endian ?
447 include(TestBigEndian)
448 test_big_endian(WORDS_BIGENDIAN)
449
450 set(DATAFILE_DIR "${CMAKE_INSTALL_PREFIX}/share/${CPACK_PACKAGE_NAME}")
451
452 if(ENABLE_PLUGINS)
453         set(HAVE_PLUGINS 1)
454         set(PLUGIN_DIR="${DATAFILE_DIR}/plugins/${CPACK_PACKAGE_VERSION}")
455         set(PLUGIN_SRC_DIRS
456                 plugins/asn1
457                 plugins/docsis
458                 plugins/ethercat
459                 plugins/gryphon
460                 plugins/irda
461                 plugins/m2m
462                 plugins/mate
463                 plugins/opcua
464                 plugins/profinet
465                 plugins/stats_tree
466                 plugins/unistim
467                 plugins/wimax
468                 plugins/wimaxasncp
469                 plugins/wimaxmacphy
470         )
471 # It seems this stuff doesn't build with autofoo either...
472 #       if(YAPP_FOUND)
473 #               set(PLUGIN_SRC_DIRS
474 #                       ${PLUGIN_SRC_DIRS}
475 #                       plugins/tpg
476 #               )
477 #       endif()
478 else()
479         set(PLUGIN_SRC_DIRS )
480 endif()
481
482 foreach(PLUGIN_DIR ${PLUGIN_SRC_DIRS})
483         add_subdirectory( ${PLUGIN_DIR} )
484 endforeach()
485
486 add_subdirectory( codecs )
487 add_subdirectory( epan )
488 add_subdirectory( tools/lemon )
489 add_subdirectory( wiretap )
490 add_subdirectory( wsutil )
491
492 add_custom_target(dumpabi DEPENDS dumpabi-libwireshark dumpabi-libwiretap dumpabi-libwsutil color.h)
493
494 if((BUILD_wireshark AND GTK_FOUND) OR (BUILD_qtshark AND QT_FOUND))
495         add_subdirectory( ui )
496 endif()
497
498 if(BUILD_wireshark AND GTK_FOUND)
499         add_subdirectory( ui/gtk )
500 endif()
501
502 if(BUILD_qtshark AND QT_FOUND)
503         add_subdirectory( ui/qt )
504 endif()
505
506
507 # Basedir where to install guides
508 set(DOC_DIR "$ENV{docdir}" CACHE FILEPATH "Installation directory for ug and dg pdfs.")
509 message(STATUS "docdir: ${DOC_DIR}")
510
511 if(ENABLE_GUIDES)
512         add_subdirectory( docbook )
513 endif()
514
515 if(ENABLE_PCAP_NG_DEFAULT)
516         set(PCAP_NG_DEFAULT 1)
517 endif()
518
519 #Platform specific
520 #if(UNIX)
521 #endif()
522
523 if(APPLE)
524         #
525         # We assume that APPLE means OS X so that we have the OS X
526         # frameworks.
527         #
528         set(HAVE_OS_X_FRAMEWORKS 1)
529         FIND_LIBRARY (APPLE_APPLICATION_SERVICES_LIBRARY ApplicationServices)
530         FIND_LIBRARY (APPLE_CORE_FOUNDATION_LIBRARY CoreFoundation)
531         FIND_LIBRARY (APPLE_SYSTEM_CONFIGURATION_LIBRARY SystemConfiguration)
532 endif()
533
534 if(WIN32)
535         set(WS_MSVC_NORETURN "__declspec(noreturn)")
536
537         # Disable deprecation
538         if(MSVC80 OR MSVC90)
539                 add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE)
540         endif()
541 else()
542         set(WS_MSVC_NORETURN " ")
543 endif()
544
545 configure_file(${CMAKE_SOURCE_DIR}/cmakeconfig.h.in ${CMAKE_BINARY_DIR}/config.h)
546
547 set( configure_input "Built with CMake ${CMAKE_VERSION}" )
548 set( VERSION ${PROJECT_VERSION} )
549
550 configure_file(
551         ${CMAKE_SOURCE_DIR}/packaging/macosx/Info.plist.in
552         ${CMAKE_SOURCE_DIR}/packaging/macosx/Info.plist
553         @ONLY)
554
555 include(FeatureSummary)
556 #SET_FEATURE_INFO(NAME DESCRIPTION [URL [COMMENT] ]
557 #FEATURE_SUMMARY(WHAT ALL) Requires removal of our local copy of FeatureSummary
558 PRINT_ENABLED_FEATURES()
559 PRINT_DISABLED_FEATURES()
560
561 link_directories(
562         ${CMAKE_BINARY_DIR}/ui
563         ${CMAKE_BINARY_DIR}/ui/gtk
564         ${CMAKE_BINARY_DIR}/ui/qt
565         ${CMAKE_BINARY_DIR}/codecs
566         ${CMAKE_BINARY_DIR}/epan
567         ${CMAKE_BINARY_DIR}/wiretap
568         ${CMAKE_BINARY_DIR}/wsutil
569 )
570
571 ADD_CUSTOM_TARGET(
572         svnversion ALL
573         COMMAND ${PERL}
574                 ${CMAKE_CURRENT_SOURCE_DIR}/make-version.pl
575                 ${CMAKE_CURRENT_SOURCE_DIR}
576         DEPENDS
577                 ${CMAKE_CURRENT_SOURCE_DIR}/make-version.pl
578 )
579
580 ADD_CUSTOM_COMMAND(
581         OUTPUT  svnversion.h
582         COMMAND ${PERL}
583                 ${CMAKE_CURRENT_SOURCE_DIR}/make-version.pl
584                 ${CMAKE_CURRENT_SOURCE_DIR}
585         DEPENDS
586                 ${CMAKE_CURRENT_SOURCE_DIR}/make-version.pl
587 )
588
589 ADD_CUSTOM_COMMAND(
590         OUTPUT  ps.c
591         COMMAND ${PYTHON_EXECUTABLE}
592                 ${CMAKE_CURRENT_SOURCE_DIR}/tools/rdps.py
593                 ${CMAKE_CURRENT_SOURCE_DIR}/print.ps
594                 ps.c
595         DEPENDS
596                 ${CMAKE_CURRENT_SOURCE_DIR}/tools/rdps.py
597                 ${CMAKE_CURRENT_SOURCE_DIR}/print.ps
598 )
599
600 if(UNIX)
601         set(PLATFORM_SRC
602                 capture-pcap-util-unix.c capture_unix_ifnames.c
603         )
604 endif()
605
606 if(WIN32)
607         set(PLATFORM_SRC
608                 capture-wpcap.c capture_wpcap_packet.c capture_win_ifnames.c
609         )
610 endif()
611
612 set(WTAP_PLUGIN_SOURCES
613         epan/plugins.c
614         epan/report_err.c
615         epan/filesystem.c
616 )
617
618 set(SHARK_COMMON_CAPTURE_SRC
619         capture_ifinfo.c
620         capture_ui_utils.c
621 )
622
623 set(WIRESHARK_COMMON_SRC
624         ${PLATFORM_SRC}
625         capture-pcap-util.c
626         cfile.c
627         cfutils.c
628         clopts_common.c
629         disabled_protos.c
630         frame_data_sequence.c
631         packet-range.c
632         print.c
633         ps.c
634         svnversion.h
635         sync_pipe_write.c
636         timestats.c
637         tap-megaco-common.c
638         tap-rtp-common.c
639         version_info.c
640 )
641
642 set(TSHARK_TAP_SRC
643         ui/cli/tap-afpstat.c
644         ui/cli/tap-ansi_astat.c
645         ui/cli/tap-bootpstat.c
646         ui/cli/tap-camelcounter.c
647         ui/cli/tap-camelsrt.c
648         ui/cli/tap-comparestat.c
649         ui/cli/tap-dcerpcstat.c
650         ui/cli/tap-diameter-avp.c
651         ui/cli/tap-expert.c
652         ui/cli/tap-follow.c
653         ui/cli/tap-funnel.c
654         ui/cli/tap-gsm_astat.c
655         ui/cli/tap-h225counter.c
656         ui/cli/tap-h225rassrt.c
657         ui/cli/tap-hosts.c
658         ui/cli/tap-httpstat.c
659         ui/cli/tap-icmpstat.c
660         ui/cli/tap-icmpv6stat.c
661         ui/cli/tap-iostat.c
662         ui/cli/tap-iousers.c
663         ui/cli/tap-macltestat.c
664         ui/cli/tap-mgcpstat.c
665         ui/cli/tap-megacostat.c
666         ui/cli/tap-protocolinfo.c
667         ui/cli/tap-protohierstat.c
668         ui/cli/tap-radiusstat.c
669         ui/cli/tap-rlcltestat.c
670         ui/cli/tap-rpcstat.c
671         ui/cli/tap-rpcprogs.c
672         ui/cli/tap-rtp.c
673         ui/cli/tap-rtspstat.c
674         ui/cli/tap-scsistat.c
675         ui/cli/tap-sctpchunkstat.c
676         ui/cli/tap-sipstat.c
677         ui/cli/tap-smbsids.c
678         ui/cli/tap-smbstat.c
679         ui/cli/tap-stats_tree.c
680         ui/cli/tap-sv.c
681         ui/cli/tap-wspstat.c
682 )
683
684 set(INSTALL_DIRS
685         diameter
686         dtds
687         help
688         radius
689         tpncp
690         wimaxasncp
691 )
692
693 set(INSTALL_FILES
694         ${CMAKE_BINARY_DIR}/AUTHORS-SHORT
695         COPYING
696         ${CMAKE_BINARY_DIR}/capinfos.html
697         cfilters
698         colorfilters
699         dfilters
700         ${CMAKE_BINARY_DIR}/dftest.html
701         ${CMAKE_BINARY_DIR}/dumpcap.html
702         ${CMAKE_BINARY_DIR}/editcap.html
703         ${CMAKE_BINARY_DIR}/asn2deb.html
704         ${CMAKE_BINARY_DIR}/idl2deb.html
705         ${CMAKE_BINARY_DIR}/idl2wrs.html
706         ipmap.html
707         manuf
708         ${CMAKE_BINARY_DIR}/mergecap.html
709         pdml2html.xsl
710         ${CMAKE_BINARY_DIR}/randpkt.html
711         ${CMAKE_BINARY_DIR}/rawshark.html
712         ${CMAKE_BINARY_DIR}/reordercap.html
713         services
714         smi_modules
715         ${CMAKE_BINARY_DIR}/text2pcap.html
716         ${CMAKE_BINARY_DIR}/tshark.html
717         ${CMAKE_BINARY_DIR}/wireshark-filter.html
718         ${CMAKE_BINARY_DIR}/wireshark.html
719         docbook/ws.css
720 )
721
722 set(LIBEPAN_LIBS
723 #               @NSL_LIBS@      # -lnsl
724 #               @SOCKET_LIBS@   # -lsocket
725 #               @SSL_LIBS@      # -lcrypto
726                 epan
727 #               $(plugin_ldadd) # in case of static
728                 ${PCAP_LIBRARIES}
729                 ${CARES_LIBRARIES}
730                 ${ADNS_LIBRARIES}
731                 ${KERBEROS_LIBRARIES}
732                 ${LUA_LIBRARIES}
733                 ${PYTHON_LIBRARIES}
734                 ${GEOIP_LIBRARIES}
735                 ${GCRYPT_LIBRARIES}
736                 ${GNUTLS_LIBRARIES}
737                 ${SMI_LIBRARIES}
738                 ${ZLIB_LIBRARIES}
739                 ${M_LIBRARIES}
740 )
741
742 if( (BUILD_wireshark AND GTK_FOUND) OR (BUILD_qtshark AND QT_FOUND) )
743         set(wireshark_FILES
744                 airpcap_loader.c
745                 capture.c
746                 capture_info.c
747                 capture_opts.c
748                 capture_sync.c
749                 color_filters.c
750                 file.c
751                 fileset.c
752                 filters.c
753                 g711.c
754                 iface_monitor.c
755                 merge.c
756                 proto_hier_stats.c
757                 summary.c
758                 tempfile.c
759                 u3.c
760                 ws80211_utils.c
761                 ${SHARK_COMMON_CAPTURE_SRC}
762                 ${WIRESHARK_COMMON_SRC}
763         )
764 endif()
765
766 if(BUILD_wireshark AND GTK_FOUND)
767         set(wireshark_LIBS
768                 gtkui
769                 ui
770                 ui_dirty
771                 ${GTK2_LIBRARIES}
772                 ${GTK3_LIBRARIES}
773                 ${GTHREAD2_LIBRARIES}
774                 codecs
775                 ${PORTAUDIO_LIBRARIES}
776                 ${LIBEPAN_LIBS}
777                 ${APPLE_APPLICATION_SERVICES_LIBRARY}
778                 ${APPLE_CORE_SERVICES_LIBRARY}
779                 ${APPLE_SYSTEM_CONFIGURATION_LIBRARY}
780                 ${NL_LIBRARIES}
781         )
782         # qtshark and wireshark share wireshark_FILES
783
784         add_executable(wireshark ${wireshark_FILES})
785         add_dependencies(wireshark svnversion)
786         set_target_properties(wireshark PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
787         target_link_libraries(wireshark ${wireshark_LIBS})
788         install(TARGETS wireshark RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
789 endif()
790
791 if(BUILD_qtshark AND QT_FOUND)
792         set(qtshark_LIBS
793                 qtui
794                 ui
795                 ui_dirty
796                 ${QT_LIBRARIES}
797                 ${GTHREAD2_LIBRARIES}
798                 codecs
799                 ${PORTAUDIO_LIBRARIES}
800                 ${LIBEPAN_LIBS}
801                 ${APPLE_APPLICATION_SERVICES_LIBRARY}
802                 ${APPLE_CORE_FOUNDATION_LIBRARY}
803                 ${APPLE_SYSTEM_CONFIGURATION_LIBRARY}
804                 ${NL_LIBRARIES}
805         )
806         # qtshark and wireshark share wireshark_FILES
807
808         add_executable(qtshark ${wireshark_FILES})
809         add_dependencies(qtshark svnversion)
810         set_target_properties(qtshark PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
811         target_link_libraries(qtshark ${qtshark_LIBS})
812         install(TARGETS qtshark RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
813 endif()
814
815 register_tap_files(tshark-tap-register.c
816         ${TSHARK_TAP_SRC}
817 )
818
819 if(BUILD_tshark)
820         set(tshark_LIBS
821                 ${LIBEPAN_LIBS}
822                 ${APPLE_CORE_FOUNDATION_LIBRARY}
823                 ${APPLE_SYSTEM_CONFIGURATION_LIBRARY}
824         )
825         set(tshark_FILES
826                 capture_opts.c
827                 capture_sync.c
828                 tempfile.c
829                 tshark-tap-register.c
830                 tshark.c
831                 ui/util.c
832                 ${TSHARK_TAP_SRC}
833                 ${SHARK_COMMON_CAPTURE_SRC}
834                 ${WIRESHARK_COMMON_SRC}
835         )
836         add_executable(tshark ${tshark_FILES})
837         add_dependencies(tshark svnversion)
838         set_target_properties(tshark PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
839         target_link_libraries(tshark ${tshark_LIBS})
840         install(TARGETS tshark RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
841 endif()
842
843 if(BUILD_rawshark AND PCAP_FOUND)
844         set(rawshark_LIBS
845                 ${LIBEPAN_LIBS}
846                 ${APPLE_CORE_FOUNDATION_LIBRARY}
847                 ${APPLE_SYSTEM_CONFIGURATION_LIBRARY}
848         )
849         set(rawshark_FILES
850                 ${WIRESHARK_COMMON_SRC}
851                 rawshark.c
852                 ui/util.c
853         )
854         add_executable(rawshark ${rawshark_FILES})
855         add_dependencies(rawshark svnversion)
856         set_target_properties(rawshark PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
857         target_link_libraries(rawshark ${rawshark_LIBS})
858         install(TARGETS rawshark RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
859 endif()
860
861 if(BUILD_dftest)
862         set(dftest_LIBS
863                 ${LIBEPAN_LIBS}
864         )
865         set(dftest_FILES
866                 dftest.c
867                 ui/util.c
868         )
869         add_executable(dftest ${dftest_FILES})
870         set_target_properties(dftest PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
871         target_link_libraries(dftest ${dftest_LIBS})
872         install(TARGETS dftest RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
873 endif()
874
875 if(BUILD_randpkt)
876         set(randpkt_LIBS
877                 wiretap
878                 ${M_LIBRARIES}
879                 ${PCAP_LIBRARIES}
880 #               @SOCKET_LIBS@
881 #               @NSL_LIBS@
882                 ${CARES_LIBRARIES}
883                 ${ADNS_LIBRARIES}
884                 ${ZLIB_LIBRARIES}
885         )
886         set(randpkt_FILES
887                 randpkt.c
888         )
889         add_executable(randpkt ${randpkt_FILES})
890         set_target_properties(randpkt PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
891         target_link_libraries(randpkt ${randpkt_LIBS})
892         install(TARGETS randpkt RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
893 endif()
894
895 if(BUILD_text2pcap)
896         set(text2pcap_LIBS
897                 wsutil
898                 ${M_LIBRARIES}
899                 ${ZLIB_LIBRARIES}
900         )
901         set(text2pcap_CLEAN_FILES
902                 text2pcap.c
903                 pcapio.c
904         )
905         set(text2pcap_FILES
906                 ${text2pcap_CLEAN_FILES}
907         )
908         add_lex_files(text2pcap_FILES
909                 text2pcap-scanner.l
910         )
911         add_executable(text2pcap ${text2pcap_FILES})
912         add_dependencies(text2pcap svnversion)
913         set_target_properties(text2pcap PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
914         target_link_libraries(text2pcap ${text2pcap_LIBS})
915         install(TARGETS text2pcap RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
916 endif()
917
918 if(BUILD_mergecap)
919         set(mergecap_LIBS
920                 wiretap
921                 ${ZLIB_LIBRARIES}
922         )
923         set(mergecap_FILES
924                 mergecap.c
925                 merge.c
926                 svnversion.h
927                 ${WTAP_PLUGIN_SOURCES}
928         )
929         add_executable(mergecap ${mergecap_FILES})
930         add_dependencies(mergecap svnversion)
931         set_target_properties(mergecap PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
932         target_link_libraries(mergecap ${mergecap_LIBS})
933         install(TARGETS mergecap RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
934 endif()
935
936 if(BUILD_reordercap)
937         set(reordercap_LIBS
938                 wiretap
939                 ${ZLIB_LIBRARIES}
940         )
941         set(reordercap_FILES
942                 reordercap.c
943                 svnversion.h
944                 ${WTAP_PLUGIN_SOURCES}
945         )
946         add_executable(reordercap ${reordercap_FILES})
947         add_dependencies(reordercap svnversion)
948         set_target_properties(reordercap PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
949         target_link_libraries(reordercap ${reordercap_LIBS})
950         install(TARGETS reordercap RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
951 endif()
952
953 if(BUILD_capinfos)
954         set(capinfos_LIBS
955                 wiretap
956                 wsutil
957                 ${ZLIB_LIBRARIES}
958                 ${GCRYPT_LIBRARIES}
959         )
960         set(capinfos_FILES
961                 capinfos.c
962                 ${WTAP_PLUGIN_SOURCES}
963         )
964         add_executable(capinfos ${capinfos_FILES})
965         add_dependencies(capinfos svnversion)
966         set_target_properties(capinfos PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
967         target_link_libraries(capinfos ${capinfos_LIBS})
968         install(TARGETS capinfos RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
969 endif()
970
971 if(BUILD_editcap)
972         set(editcap_LIBS
973                 wiretap
974                 ${ZLIB_LIBRARIES}
975         )
976         set(editcap_FILES
977                 editcap.c
978                 epan/crypt/md5.c
979                 epan/nstime.c
980                 ${WTAP_PLUGIN_SOURCES}
981         )
982         add_executable(editcap ${editcap_FILES})
983         add_dependencies(editcap svnversion)
984         set_target_properties(editcap PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
985         target_link_libraries(editcap ${editcap_LIBS})
986         install(TARGETS editcap RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
987 endif()
988
989 if(BUILD_dumpcap AND PCAP_FOUND)
990         set(dumpcap_LIBS
991 #               @INET_NTOP_LO@
992                 wsutil
993                 ${PCAP_LIBRARIES}
994                 ${CAP_LIBRARIES}
995 #               @SOCKET_LIBS@
996 #               @NSL_LIBS@
997                 ${GLIB2_LIBRARIES}
998                 ${GTHREAD2_LIBRARIES}
999                 ${ZLIB_LIBRARIES}
1000                 ${APPLE_CORE_FOUNDATION_LIBRARY}
1001                 ${APPLE_SYSTEM_CONFIGURATION_LIBRARY}
1002                 ${NL_LIBRARIES}
1003         )
1004         set(dumpcap_FILES
1005                 svnversion.h
1006                 capture_opts.c
1007                 capture-pcap-util.c
1008                 capture_stop_conditions.c
1009                 cfutils.c
1010                 clopts_common.c
1011                 conditions.c
1012                 dumpcap.c
1013                 pcapio.c
1014                 ringbuffer.c
1015                 sync_pipe_write.c
1016                 tempfile.c
1017                 version_info.c
1018                 ws80211_utils.c
1019                 ${PLATFORM_SRC}
1020         )
1021         add_executable(dumpcap ${dumpcap_FILES})
1022         add_dependencies(dumpcap svnversion)
1023         set_target_properties(dumpcap PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
1024         target_link_libraries(dumpcap ${dumpcap_LIBS})
1025         install(TARGETS dumpcap RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
1026 endif()
1027
1028 ADD_CUSTOM_COMMAND(
1029         OUTPUT  ${CMAKE_BINARY_DIR}/AUTHORS-SHORT
1030         COMMAND ${PERL}
1031                 ${CMAKE_SOURCE_DIR}/doc/perlnoutf.pl
1032                 ${CMAKE_SOURCE_DIR}/doc/make-authors-short.pl
1033                 < ${CMAKE_SOURCE_DIR}/AUTHORS
1034                 > ${CMAKE_BINARY_DIR}/AUTHORS-SHORT
1035         DEPENDS
1036                 ${CMAKE_SOURCE_DIR}/doc/perlnoutf.pl
1037                 ${CMAKE_SOURCE_DIR}/doc/make-authors-short.pl
1038                 ${CMAKE_SOURCE_DIR}/AUTHORS
1039 )
1040
1041 ADD_CUSTOM_COMMAND(
1042         OUTPUT  ${CMAKE_BINARY_DIR}/AUTHORS-SHORT-FORMAT
1043                 ${CMAKE_BINARY_DIR}/wireshark.pod
1044         COMMAND ${PERL}
1045                 ${CMAKE_SOURCE_DIR}/doc/perlnoutf.pl
1046                 ${CMAKE_SOURCE_DIR}/doc/make-authors-format.pl
1047                 < ${CMAKE_BINARY_DIR}/AUTHORS-SHORT
1048                 > ${CMAKE_BINARY_DIR}/AUTHORS-SHORT-FORMAT
1049         COMMAND cat
1050                 ${CMAKE_SOURCE_DIR}/doc/wireshark.pod.template
1051                 ${CMAKE_BINARY_DIR}/AUTHORS-SHORT-FORMAT
1052                 > ${CMAKE_BINARY_DIR}/wireshark.pod
1053         DEPENDS
1054                 ${CMAKE_SOURCE_DIR}/doc/perlnoutf.pl
1055                 ${CMAKE_SOURCE_DIR}/doc/make-authors-format.pl
1056                 ${CMAKE_BINARY_DIR}/AUTHORS-SHORT
1057                 ${CMAKE_SOURCE_DIR}/doc/wireshark.pod.template
1058 )
1059
1060 pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/capinfos 1 )
1061 pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/dftest 1 )
1062 pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/dumpcap 1 )
1063 pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/editcap 1 )
1064 pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/asn2deb 1 )
1065 pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/idl2deb 1 )
1066 pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/idl2wrs 1 )
1067 pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/mergecap 1 )
1068 pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/randpkt 1 )
1069 pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/rawshark 1 )
1070 pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/reordercap 1 )
1071 pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/text2pcap 1 )
1072 pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/tshark 1 )
1073 pod2manhtml( wireshark 1 )
1074 pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/wireshark-filter 4 )
1075
1076 add_custom_target(
1077         auxiliary ALL
1078         DEPENDS
1079                 AUTHORS-SHORT
1080                 capinfos.html
1081                 dftest.html
1082                 dumpcap.html
1083                 editcap.html
1084                 asn2deb.html
1085                 idl2deb.html
1086                 idl2wrs.html
1087                 mergecap.html
1088                 randpkt.html
1089                 rawshark.html
1090                 reordercap.html
1091                 text2pcap.html
1092                 tshark.html
1093                 wireshark.html
1094                 wireshark-filter.html
1095 )
1096
1097 set(MAN1_FILES
1098         ${CMAKE_BINARY_DIR}/capinfos.1
1099         ${CMAKE_BINARY_DIR}/dftest.1
1100         ${CMAKE_BINARY_DIR}/dumpcap.1
1101         ${CMAKE_BINARY_DIR}/editcap.1
1102         ${CMAKE_BINARY_DIR}/idl2wrs.1
1103         ${CMAKE_BINARY_DIR}/mergecap.1
1104         ${CMAKE_BINARY_DIR}/randpkt.1
1105         ${CMAKE_BINARY_DIR}/rawshark.1
1106         ${CMAKE_BINARY_DIR}/reordercap.1
1107         ${CMAKE_BINARY_DIR}/text2pcap.1
1108         ${CMAKE_BINARY_DIR}/tshark.1
1109         ${CMAKE_BINARY_DIR}/wireshark.1
1110 )
1111
1112 set(MAN4_FILES
1113         ${CMAKE_BINARY_DIR}/wireshark-filter.4
1114 )
1115
1116 set(CLEAN_FILES
1117         ${wireshark_FILES}
1118         ${tshark_FILES}
1119         ${rawshark_FILES}
1120         ${dftest_FILES}
1121         ${randpkt_FILES}
1122         ${text2pcap_CLEAN_FILES}
1123         ${mergecap_FILES}
1124         ${capinfos_FILES}
1125         ${editcap_FILES}
1126         ${dumpcap_FILES}
1127 )
1128
1129 if (WERROR)
1130         set_source_files_properties(
1131                 ${CLEAN_FILES}
1132                 PROPERTIES
1133                 COMPILE_FLAGS -Werror
1134         )
1135 endif()
1136
1137 install(
1138         FILES
1139                 ${INSTALL_FILES}
1140         DESTINATION
1141                 ${CMAKE_INSTALL_DATADIR}/${CPACK_PACKAGE_NAME}
1142 )
1143
1144 install(
1145         FILES
1146                 ${MAN1_FILES}
1147         DESTINATION
1148                 ${CMAKE_INSTALL_MANDIR}/man1
1149 )
1150
1151 install(
1152         FILES
1153                 ${MAN4_FILES}
1154         DESTINATION
1155                 ${CMAKE_INSTALL_MANDIR}/man4
1156 )
1157
1158 install(
1159         DIRECTORY
1160                 ${INSTALL_DIRS}
1161         DIRECTORY_PERMISSIONS
1162                 OWNER_EXECUTE OWNER_WRITE OWNER_READ
1163                 GROUP_EXECUTE GROUP_READ
1164                 WORLD_EXECUTE WORLD_READ
1165         DESTINATION
1166                 ${CMAKE_INSTALL_DATADIR}/${CPACK_PACKAGE_NAME}
1167         PATTERN ".svn" EXCLUDE
1168         PATTERN "Makefile.*" EXCLUDE
1169         PATTERN "faq.py" EXCLUDE
1170 )
1171
1172
1173 if(DOC_DIR)
1174         message(STATUS "Docdir install: ${DOC_DIR}")
1175         INSTALL(
1176                 DIRECTORY
1177                         ${CMAKE_BINARY_DIR}/docbook/
1178                 DIRECTORY_PERMISSIONS
1179                         OWNER_EXECUTE OWNER_WRITE OWNER_READ
1180                         GROUP_EXECUTE GROUP_READ
1181                         WORLD_EXECUTE WORLD_READ
1182                 DESTINATION
1183                         ${DOC_DIR}/guides
1184                 FILES_MATCHING
1185                 PATTERN "*.pdf"
1186         )
1187 endif()