cmake: move Wflags to build type pedantic
[netsniff-ng.git] / src / CMakeLists.txt
blob1cb14f67db8239cb379b744bd7bdc08c43c77bec
1 project(netsniff-ng-suite C)
3 cmake_minimum_required(VERSION 2.6)
5 set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
6 set(EXECUTABLE_INSTALL_PATH /usr/sbin)
7 set(CONFIG_INSTALL_PATH /etc/netsniff-ng)
8 set(DOC_INSTALL_PATH share/doc/netsniff-ng)
10 set(VERSION "0.5.8")
12 include(CheckBPFAttach)
13 include(CheckPFPacket)
14 include(CheckStrictAlign)
15 include(CheckTxRing)
16 include(CheckHwTimestamp)
17 include(CheckGeoIpv6)
18 include(Pod2Man)
20 add_definitions(
21   -O3
22   -fstack-protector
23   --param=ssp-buffer-size=4
24   -fpie
25   -std=gnu99
26   -fno-strict-aliasing
27   -fexceptions
28   -fasynchronous-unwind-tables
29   -D_FORTIFY_SOURCE=2
30   -D_REENTRANT
31   -march=native
32   -mtune=native
33   -Wall
36 if(CMAKE_BUILD_TYPE STREQUAL pedantic)
37   add_definitions(
38     -Wundef
39     -Wstrict-prototypes
40     -Werror-implicit-function-declaration
41     -Wformat=2
42     -Wcomments
43     -Wendif-labels
44     -Wuninitialized
45     -Winit-self
46     -Wstrict-overflow=1
47     -Wtype-limits
48     -Wmissing-parameter-type
49     -Wclobbered
50     -Wempty-body
51     -Wignored-qualifiers
52     -Wmissing-include-dirs
53     -Woverlength-strings
54     -Wmissing-field-initializers
55     -Wmissing-declarations
56     -Wmissing-prototypes
57     -Wlogical-op
58     -Woverride-init
59     -Wnested-externs
60     -Wredundant-decls
61     -Winvalid-pch
62     -Wdisabled-optimization
63     -Wstack-protector
64     -Waggregate-return
65     -Wcast-align
66     -Wunsafe-loop-optimizations
67     -Wfloat-equal
68     -Wunknown-pragmas
69     -Wunused-function
70   )
71 endif(CMAKE_BUILD_TYPE STREQUAL pedantic)
73 if(CMAKE_BUILD_TYPE STREQUAL profile)
74   add_definitions(
75     -g
76     -pg
77   )
78 endif(CMAKE_BUILD_TYPE STREQUAL profile)
80 enable_testing()
82 add_manpage_target()
84 include_directories(.)
86 add_subdirectory(netsniff-ng)
87 add_subdirectory(trafgen)
88 add_subdirectory(mausezahn)
89 add_subdirectory(bpfc)
90 add_subdirectory(ifpps)
91 add_subdirectory(flowtop)
92 add_subdirectory(astraceroute)
93 add_subdirectory(curvetun)
95 # Release notes
96 install(
97   FILES ../Documentation/RelNotes/Notes-0.5.6
98   DESTINATION ${DOC_INSTALL_PATH}
101 install(
102   FILES ../Documentation/RelNotes/Notes-0.5.7
103   DESTINATION ${DOC_INSTALL_PATH}
106 # Additional usage information
107 install(
108   FILES ../Documentation/FurtherReading
109   DESTINATION ${DOC_INSTALL_PATH}
112 install(
113   FILES ../Documentation/IPv6Notes
114   DESTINATION ${DOC_INSTALL_PATH}
117 install(
118   FILES ../Documentation/KnownIssues
119   DESTINATION ${DOC_INSTALL_PATH}
122 install(
123   FILES ../Documentation/Performance
124   DESTINATION ${DOC_INSTALL_PATH}
127 install(
128   FILES ../Documentation/RelatedWork
129   DESTINATION ${DOC_INSTALL_PATH}
132 install(
133   FILES ../Documentation/Sponsors
134   DESTINATION ${DOC_INSTALL_PATH}