Merge branch 'tizen_7.0' into tizen
[platform/core/uifw/multi-assistant-service.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(org.tizen.multi-assistant-service CXX C)
3
4 # DEFAULT DATA
5 SET ( PACKAGE "org.tizen.multi-assistant-service")
6 SET ( PKGNAME ${PACKAGE})
7 SET ( PREFIX ${CMAKE_INSTALL_PREFIX})
8 SET ( BINDIR "${PREFIX}/bin")
9 SET ( RESDIR "${PREFIX}/res")
10 SET ( LIBDIR "${PREFIX}/lib")
11 SET ( SHARED_RESDIR "${PREFIX}/shared/res")
12 SET ( BINNAME org.tizen.multi-assistant-service)
13
14 # SET FLAG ---------------------------------------------------------------------------------------
15 # Find Packages
16 INCLUDE(FindPkgConfig)
17 pkg_check_modules(pkgs REQUIRED
18         capi-appfw-package-manager
19         capi-appfw-preference
20         capi-appfw-service-application
21         libtzplatform-config
22         dlog
23         ecore
24         capi-message-port
25         dbus-1
26         glib-2.0
27         libxml-2.0
28         multi-assistant
29         vconf
30         pkgmgr-info
31         jsoncpp
32 )
33
34 # SET FLAG ---------------------------------------------------------------------------------------
35 FOREACH(flag ${pkgs_CFLAGS})
36         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
37 ENDFOREACH(flag)
38
39 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
40 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wl,-z,relro -fPIE -pie -std=c++11 -fvisibility=hidden -fvisibility-inlines-hidden")
41 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wl,-z,relro -fPIE -pie -fvisibility=hidden")
42
43 # SET WARNNING OPTION ----------------------------------------------------------------------------
44 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
45 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
46
47 IF(NOT "${TEST_TYPE}" STREQUAL "none")
48         SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DTEST_TYPE=${TEST_TYPE}")
49         SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DTEST_TYPE=${TEST_TYPE}")
50 ENDIF()
51
52 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUSE_TRUSTED_MESSAGE_PORT=${USE_TRUSTED_MESSAGE_PORT}")
53 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_TRUSTED_MESSAGE_PORT=${USE_TRUSTED_MESSAGE_PORT}")
54
55 # OPTION DEBUG -----------------------------------------------------------------------------------
56 IF("${_SDEBUG}" MATCHES "debug")
57   MESSAGE("Building in debug mode.")
58   SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG} -O0")
59   SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_DEBUG} -O0")
60 ELSE()
61   MESSAGE("Building in release mode.")
62   SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}  ${CMAKE_CXX_FLAGS_RELEASE}")
63   SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_RELEASE}")
64 ENDIF()
65
66 LINK_DIRECTORIES(${CMAKE_SOURCE_DIR}/lib)
67 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src)
68 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/inc)
69
70 SET(SRCS
71                 src/service_config.cpp
72                 src/application_manager_aul.cpp
73                 src/preference_manager_vconf.cpp
74                 src/client_manager.cpp
75                 src/package_update_monitor.cpp
76                 src/service_main.cpp
77                 src/service_plugin.cpp
78                 src/service_ipc_dbus.cpp
79                 src/service_ipc_dbus_dispatcher.cpp
80                 src/main.cpp
81 )
82 ADD_EXECUTABLE(${BINNAME} ${SRCS})
83
84 INSTALL(FILES ${CMAKE_SOURCE_DIR}/${PKGNAME}.xml DESTINATION /usr/share/packages)
85 INSTALL(TARGETS ${BINNAME} DESTINATION ${BINDIR})
86
87 TARGET_LINK_LIBRARIES(${BINNAME} -ldl ${pkgs_LDFLAGS} ${EXTRA_LDFLAGS})
88
89 ADD_SUBDIRECTORY(plugins)
90
91 IF(NOT "${TEST_TYPE}" STREQUAL "none")
92 ENABLE_TESTING()
93 ADD_SUBDIRECTORY(tests)
94 ENDIF()