merge from 2.4 , block compile error
[apps/core/preloaded/quickpanel.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(quickpanel C)
3
4 SET(VENDOR "org.tizen")
5 SET(PACKAGE ${PROJECT_NAME})
6 SET(PKGNAME "${VENDOR}.${PACKAGE}")
7 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
8 SET(BINDIR "${PREFIX}/bin")
9 SET(RESDIR "${PREFIX}/res")
10 SET(LOCALEDIR "${RESDIR}/locale")
11 SET(ICONDIR "${RESDIR}/icons")
12 SET(EDJDIR "${RESDIR}/edje")
13 SET(DATADIR "${PREFIX}/data")
14 SET(DATADIR_RW "${PREFIX_RW}/data")
15 SET(DESKTOPDIR "/usr/share/applications")
16 SET(MANIFESTXMLDIR "/usr/share/packages")
17 SET(SHARED_DIR "${PREFIX}/shared/res")
18
19 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
20         SET(CMAKE_BUILD_TYPE "Release")
21 ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
22 MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
23
24 INCLUDE_DIRECTORIES(
25                 ${CMAKE_CURRENT_SOURCE_DIR}/daemon
26                 ${CMAKE_CURRENT_SOURCE_DIR}/daemon/minictrl
27                 ${CMAKE_CURRENT_SOURCE_DIR}/daemon/notifications
28                 ${CMAKE_CURRENT_SOURCE_DIR}/daemon/service
29                 ${CMAKE_CURRENT_SOURCE_DIR}/daemon/settings
30                 ${CMAKE_CURRENT_SOURCE_DIR}/daemon/settings/modules
31                 ${CMAKE_CURRENT_SOURCE_DIR}/daemon/vi
32                 ${CMAKE_CURRENT_SOURCE_DIR}/daemon/page
33                 ${CMAKE_CURRENT_SOURCE_DIR}/daemon/datetime
34                 ${CMAKE_CURRENT_SOURCE_DIR}/data
35                 ${CMAKE_CURRENT_SOURCE_DIR}/test
36                 )
37
38 INCLUDE(FindPkgConfig)
39
40 IF(X11_SUPPORT)
41 pkg_check_modules(extra_pkgs REQUIRED
42         ecore-x
43         x11
44         xi
45         utilX
46         inputproto
47 )
48 ENDIF(X11_SUPPORT)
49
50 IF(WAYLAND_SUPPORT)
51 pkg_check_modules(extra_pkgs REQUIRED
52         ecore-wayland
53 )
54 ENDIF(WAYLAND_SUPPORT)
55
56 pkg_check_modules(pkgs REQUIRED
57         capi-appfw-application
58         capi-system-runtime-info
59         capi-system-info
60         capi-system-device
61         capi-network-tethering
62         capi-network-bluetooth
63         capi-network-connection
64         capi-network-wifi
65         capi-media-player
66         capi-media-sound-manager
67         capi-media-metadata-extractor
68         capi-system-system-settings
69         capi-base-utils-i18n
70         capi-ui-efl-util
71         tapi
72         feedback
73         appcore-common
74         notification
75         badge
76         vconf
77         libprivilege-control
78         edbus
79         evas
80         ecore
81         edje
82         ecore-input
83         icu-i18n
84         elementary
85         efl-assist
86         dlog
87         syspopup-caller
88         minicontrol-viewer
89         minicontrol-monitor
90         pkgmgr
91         pkgmgr-info
92         iniparser
93         alarm-service
94 )
95
96 FOREACH(flag ${pkgs_CFLAGS} ${extra_pkgs_CFLAGS})
97         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
98 ENDFOREACH(flag)
99
100 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -g -O2 -fpie")
101 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
102 SET(CMAKE_C_FLAGS_RELEASE "-O2")
103
104 FIND_PROGRAM(UNAME NAMES uname)
105 EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
106 IF("${ARCH}" STREQUAL "arm")
107         ADD_DEFINITIONS("-DTARGET")
108         MESSAGE("add -DTARGET")
109 ENDIF("${ARCH}" STREQUAL "arm")
110
111 IF("${VENDOR}" STREQUAL "org.tizen")
112         ADD_DEFINITIONS("-DQP_SETTING_ENABLE")
113         ADD_DEFINITIONS("-DQP_BRIGHTNESS_ENABLE")
114         ADD_DEFINITIONS("-DQP_MINICTRL_ENABLE")
115         ADD_DEFINITIONS("-DQP_SCREENREADER_ENABLE")
116         ADD_DEFINITIONS("-DQP_SMART_ALERT_ENABLE")
117         ADD_DEFINITIONS("-DQP_SERVICE_NOTI_LED_ENABLE")
118         ADD_DEFINITIONS("-DQP_ANIMATED_IMAGE_ENABLE")
119         ADD_DEFINITIONS("-DQP_REMINDER_ENABLE")
120         ADD_DEFINITIONS("-DQP_EMERGENCY_MODE_ENABLE")
121 ENDIF("${VENDOR}" STREQUAL "org.tizen")
122 MESSAGE("##### VENDOR: ${VENDOR}")
123
124 ADD_DEFINITIONS("-DVENDOR=\"${VENDOR}\"")
125 ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE}\"")
126 ADD_DEFINITIONS("-DPACKAGE_NAME=\"${PKGNAME}\"")
127 ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
128 ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"")
129 ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
130 ADD_DEFINITIONS("-DICONDIR=\"${ICONDIR}\"")
131 ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"")
132 ADD_DEFINITIONS("-DDATADIR=\"${DATADIR}\"")
133 ADD_DEFINITIONS("-DDATADIR_RW=\"${DATADIR_RW}\"")
134 ADD_DEFINITIONS("-DSHARED_DIR=\"${SHARED_DIR}\"")
135 #ADD_DEFINITIONS("-DFILE_DEBUG")
136 ADD_DEFINITIONS("-D_DLOG_USED")
137
138 SET(BUILD_COMMON_SOURCE
139         ${BUILD_COMMON_SOURCE}
140         daemon/accessibility.c
141         daemon/common.c
142         daemon/datetime/datetime.c
143         daemon/datetime/util-time.c
144         daemon/dbus_utility.c
145         daemon/device/brightness.c
146         daemon/handler_controller.c
147         daemon/list_util.c
148         daemon/media.c
149         daemon/minictrl/minictrl.c
150         daemon/modules.c
151         daemon/notifications/activenoti.c
152         daemon/notifications/animated_image.c
153         daemon/notifications/noti_box.c
154         daemon/notifications/noti.c
155         daemon/notifications/noti_gridbox.c
156         daemon/notifications/noti_listbox.c
157         daemon/notifications/noti_list_item.c
158         daemon/notifications/noti_node.c
159         daemon/notifications/noti_section.c
160         daemon/notifications/noti_util.c
161         daemon/notifications/noti_view_boxtype.c
162         daemon/notifications/noti_view.c
163         daemon/notifications/noti_view_listype.c
164         daemon/notifications/noti_view_ongoing.c
165         daemon/page/page_base.c
166         daemon/page/page_edit.c
167         daemon/page/pager.c
168         daemon/page/page_setting_all.c
169         daemon/preference.c
170         daemon/service/animated_icon.c
171         daemon/service/configuration.c
172         daemon/service/emergency_mode.c
173         daemon/service/keyboard.c
174         daemon/service/noti_led.c
175         daemon/service/reminder.c
176         daemon/service/smart_alert.c
177         daemon/service/uninstall.c
178         daemon/settings/modules/assistive_light.c
179         daemon/settings/modules/bluetooth.c
180         daemon/settings/modules/flightmode.c
181         daemon/settings/modules/gps.c
182         daemon/settings/modules/mobile_data.c
183         daemon/settings/modules/rotate-lock.c
184         daemon/settings/modules/sound-profile.c
185         daemon/settings/modules/tethering.c
186         daemon/settings/modules/ultra_power_saving.c
187         daemon/settings/modules/wifi.c
188         daemon/settings/setting_module_api.c
189         daemon/settings/settings.c
190         daemon/settings/settings_gridbox.c
191         daemon/settings/settings_icon_common.c
192         daemon/settings/settings_ipc.c
193         daemon/settings/settings_view_all.c
194         daemon/settings/settings_view_featured.c
195         daemon/sim_controller.c
196         daemon/vi/vi_manager.c
197 )
198
199 IF(X11_SUPPORT)
200 ADD_DEFINITIONS("-DHAVE_X")
201 SET(BUILD_SOURCE
202         ${BUILD_SOURCE}
203         daemon/common_uic_x11.c
204         daemon/notifications/noti_win_x11.c
205         daemon/page/pager_common_x11.c
206         daemon/quickpanel-ui_x11.c
207         daemon/service/keyboard_x_x11.c
208         daemon/settings/setting_utils_x11.c
209 )
210 ENDIF(X11_SUPPORT)
211
212 IF(WAYLAND_SUPPORT)
213 ADD_DEFINITIONS("-DHAVE_WAYLAND")
214 SET(BUILD_SOURCE
215         ${BUILD_SOURCE}
216         daemon/common_uic.c
217         daemon/notifications/noti_win.c
218         daemon/page/pager_common.c
219         daemon/quickpanel-ui.c
220         daemon/service/keyboard_x.c
221         daemon/settings/setting_utils.c
222 )
223 ENDIF(WAYLAND_SUPPORT)
224
225 AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/test TEST_SRCS)
226
227 SET(SRCS ${BUILD_COMMON_SOURCE} ${BUILD_SOURCE} ${TEST_SRCS})
228
229 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
230
231
232 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
233 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} ${extra_pkgs_LDFLAGS} "-pie")
234 #-lefence
235
236 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})
237 INSTALL(DIRECTORY DESTINATION ${DATADIR})
238 INSTALL(DIRECTORY DESTINATION ${DATADIR_RW})
239 INSTALL(FILES ${CMAKE_SOURCE_DIR}/icons/quickpanel_icon_default.png DESTINATION ${RESDIR})
240 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${PKGNAME}.efl DESTINATION /etc/smack/accesses.d)
241
242 # icon for setting
243 INSTALL(FILES ${CMAKE_SOURCE_DIR}/icons/settings_noti_panel.png DESTINATION ${SHARED_DIR}/icons)
244
245 # icons for notification
246 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/data/images_noti_icons/ DESTINATION ${SHARED_DIR}/noti_icons FILES_MATCHING PATTERN "*.png")
247
248 # License
249 INSTALL(FILES ${CMAKE_SOURCE_DIR}/LICENSE DESTINATION /usr/share/license RENAME ${PKGNAME})
250
251 # i18n
252 ADD_SUBDIRECTORY(data)
253 ADD_SUBDIRECTORY(po)
254