Added fd_to_path() doxygen header.
[dabba.git] / CMakeLists.txt
blobf68f716b7c11ab79572eab20f62ce90d655b1011
1 PROJECT(dabba C)
3 # States that CMake required version must be >= 2.6
4 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
6 SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
7 # Activate this when you want to build a shared lib out the the lib/ directory
8 # Bear in mind that no profiling will be available on 64-bit arch when on
9 # SET(BUILD_SHARED_LIBS ON)
11 FIND_PACKAGE(Threads REQUIRED)
13 IF(CMAKE_HAVE_PTHREAD_CREATE)
14         SET(LIBS ${LIBS} ${CMAKE_THREAD_LIBS_INIT})
15 ELSE(CMAKE_HAVE_PTHREAD_CREATE)
16         MESSAGE(FATAL_ERROR "The framework only supports pthread")
17 ENDIF(CMAKE_HAVE_PTHREAD_CREATE)
19 FIND_PACKAGE(Doxygen)
20 FIND_PACKAGE(Setcap)
22 IF(NOT SETCAP_FOUND)
23         MESSAGE(FATAL ERROR "setcap could not be found. See README for further information")
24 ENDIF(NOT SETCAP_FOUND)
26 INCLUDE(CheckBPFAttach)
27 INCLUDE(CheckPFPacket)
28 INCLUDE(CheckStrictAlign)
29 INCLUDE(CheckTxRing)
31 ADD_DEFINITIONS(
32         -W
33         -Wextra
34         -Wall
35         -Werror
36         -std=gnu99
37         -O2
38         -D_REENTRANT
39         -D_FORTIFY_SOURCE=2
40         -fstack-protector
43 IF(CMAKE_C_COMPILER_ID STREQUAL GNU)
44         ADD_DEFINITIONS(
45                 -pedantic
46                 -pedantic-errors
47                 -z relo
48                 -pie
49         )
50 ENDIF(CMAKE_C_COMPILER_ID STREQUAL GNU)
52 IF (CMAKE_BUILD_TYPE STREQUAL profile)
53         ADD_DEFINITIONS(-g -pg)
54 ENDIF (CMAKE_BUILD_TYPE STREQUAL profile)
56 ENABLE_TESTING()
58 ADD_CUSTOM_TARGET(setcap)
60 ADD_SUBDIRECTORY(dabbacore)
61 ADD_SUBDIRECTORY(dabbad)
62 ADD_SUBDIRECTORY(dabba)