Version 0.9.6
[platform/core/context/context-service.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(context-service)
3 INCLUDE(GNUInstallDirs)
4
5 # Targets
6 SET(target "contextd")
7
8 # Source Lists
9 FILE(GLOB SRCS src/*.cpp src/access_control/*.cpp src/policy/*.cpp)
10 IF(${TRIGGER_SUPPORT})
11         FILE(GLOB SRCS ${SRCS} src/trigger/*.cpp)
12         ADD_DEFINITIONS(-DTRIGGER_SUPPORT)
13 ENDIF(${TRIGGER_SUPPORT})
14 MESSAGE("Sources: ${SRCS}")
15
16 # Dependencies
17 SET(DEPS
18         gmodule-2.0
19         vconf
20         capi-system-device
21         capi-appfw-app-manager
22         capi-appfw-package-manager
23         notification
24         context-common
25         context
26 )
27
28 IF("${PROFILE}" STREQUAL "mobile")
29         ADD_DEFINITIONS("-D_MOBILE_")
30 ENDIF("${PROFILE}" STREQUAL "mobile")
31
32 IF("${PROFILE}" STREQUAL "wearable")
33         ADD_DEFINITIONS("-D_WEARABLE_")
34 ENDIF("${PROFILE}" STREQUAL "wearable")
35
36 IF(${LEGACY_SECURITY})
37         SET(DEPS ${DEPS} security-server)
38         ADD_DEFINITIONS(-DLEGACY_SECURITY)
39 ELSE(${LEGACY_SECURITY})
40         SET(DEPS ${DEPS} cynara-creds-gdbus cynara-client cynara-session)
41 ENDIF(${LEGACY_SECURITY})
42
43 IF(${SYSTEM_SERVICE})
44         ADD_DEFINITIONS(-DSYSTEM_SERVICE)
45 ENDIF(${SYSTEM_SERVICE})
46
47 # Common Options
48 INCLUDE(FindPkgConfig)
49 INCLUDE_DIRECTORIES(
50         /usr/include
51         /usr/include/glib-2.0
52 )
53 ADD_DEFINITIONS(-O2 -Wall -fPIC -fPIE -fdata-sections -ffunction-sections -fvisibility=hidden)
54 ADD_DEFINITIONS(-DLOG_TAG="CONTEXT")
55 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fPIC -pie -Wl,--as-needed -Wl,--gc-section -Wl,--print-gc-section")
56
57 # Building Daemon
58 pkg_check_modules(daemon_pkg REQUIRED ${DEPS})
59
60 FOREACH(flag ${daemon_pkg_CFLAGS})
61         SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
62 ENDFOREACH(flag)
63
64 ADD_EXECUTABLE(${target} ${SRCS})
65 TARGET_LINK_LIBRARIES(${target} ${daemon_pkg_LDFLAGS})
66
67 # Installing Daemon
68 INSTALL(TARGETS ${target} DESTINATION ${CMAKE_INSTALL_BINDIR})