Implement IVI profile
[apps/native/starter.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(starter C)
3
4 SET(PACKAGE ${PROJECT_NAME})
5 SET(PKGNAME "org.tizen.${PACKAGE}")
6 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
7 SET(BINDIR "${PREFIX}/bin")
8 SET(DATADIR "${PREFIX}/share")
9 SET(RESDIR "${PREFIX}/res")
10 SET(LOCALEDIR "${PREFIX}/share/locale")
11
12 IF("${TIZEN_PROFILE_NAME}" STREQUAL "COMMON")
13
14 INCLUDE_DIRECTORIES(
15         ${CMAKE_SOURCE_DIR}/include
16         ${CMAKE_SOURCE_DIR}/include/common
17 )
18 INCLUDE(FindPkgConfig)
19 pkg_check_modules(pkgs REQUIRED
20         aul
21         capi-system-media-key
22         db-util
23         dlog
24         ecore
25         ecore-wayland
26         ecore-evas
27         ecore-input
28         edbus
29         eina
30         elementary
31         evas
32         syspopup-caller
33         vconf
34         appcore-efl
35         glib-2.0
36         ui-gadget-1
37         bundle
38         capi-appfw-application
39         capi-appfw-app-manager
40         capi-network-bluetooth
41         capi-system-system-settings
42         feedback
43         alarm-service
44         pkgmgr-info
45         deviced
46         edbus
47         dbus-1
48         dbus-glib-1
49         tts
50         capi-message-port
51         security-manager
52         efl-extension
53 )
54
55 ELSEIF("${TIZEN_PROFILE_NAME}" STREQUAL "MOBILE")
56
57 INCLUDE_DIRECTORIES(
58         ${CMAKE_SOURCE_DIR}/include
59         ${CMAKE_SOURCE_DIR}/include/mobile
60 )
61 INCLUDE(FindPkgConfig)
62 pkg_check_modules(pkgs REQUIRED
63         aul
64         capi-system-media-key
65         db-util
66         dlog
67         ecore
68         ecore-wayland
69         ecore-evas
70         ecore-input
71         edbus
72         eina
73         elementary
74         evas
75         syspopup-caller
76         vconf
77         appcore-efl
78         glib-2.0
79         ui-gadget-1
80         bundle
81         capi-appfw-application
82         capi-appfw-app-manager
83         capi-network-bluetooth
84         capi-system-system-settings
85         feedback
86         alarm-service
87         pkgmgr-info
88         deviced
89         edbus
90         dbus-1
91         dbus-glib-1
92         tts
93         capi-message-port
94         security-manager
95         efl-extension
96 )
97
98 ELSEIF("${TIZEN_PROFILE_NAME}" STREQUAL "WEARABLE")
99
100 INCLUDE_DIRECTORIES(
101         ${CMAKE_SOURCE_DIR}/include
102         ${CMAKE_SOURCE_DIR}/include/wearable
103 )
104 INCLUDE(FindPkgConfig)
105 pkg_check_modules(pkgs REQUIRED
106         aul
107         capi-system-media-key
108         db-util
109         dlog
110         ecore
111         ecore-evas
112         ecore-input
113         ecore-wayland
114         edbus
115         eina
116         elementary
117         evas
118         syspopup-caller
119         vconf
120         appcore-efl
121         glib-2.0
122         ui-gadget-1
123         bundle
124         capi-appfw-application
125         capi-appfw-app-manager
126         capi-network-bluetooth
127         feedback
128         alarm-service
129         pkgmgr-info
130         deviced
131         edbus
132         dbus-1
133         dbus-glib-1
134 )
135
136 ELSEIF("${TIZEN_PROFILE_NAME}" STREQUAL "IVI")
137
138 INCLUDE_DIRECTORIES(
139         ${CMAKE_SOURCE_DIR}/include
140         ${CMAKE_SOURCE_DIR}/include/ivi
141 )
142 INCLUDE(FindPkgConfig)
143 pkg_check_modules(pkgs REQUIRED
144         aul
145         capi-system-media-key
146         db-util
147         dlog
148         ecore
149         ecore-wayland
150         ecore-evas
151         ecore-input
152         edbus
153         eina
154         elementary
155         evas
156         syspopup-caller
157         vconf
158         appcore-efl
159         glib-2.0
160         ui-gadget-1
161         bundle
162         capi-appfw-application
163         capi-appfw-app-manager
164         capi-network-bluetooth
165         capi-system-system-settings
166         feedback
167         alarm-service
168         pkgmgr-info
169         deviced
170         edbus
171         dbus-1
172         dbus-glib-1
173         tts
174         capi-message-port
175         security-manager
176         efl-extension
177 )
178
179 ENDIF()
180
181 IF(X11_SUPPORT)
182 pkg_check_modules(pkgs REQUIRED
183         ecore-x
184         utilX
185         )
186 ENDIF(X11_SUPPORT)
187
188 FOREACH(flag ${pkgs_CFLAGS})
189         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
190 ENDFOREACH(flag)
191
192 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -fPIE")
193 SET(CMAKE_C_FLAGS_PROFILING    "-O0 -g -pg -fPIE")
194 SET(CMAKE_CXX_FLAGS_PROFILING  "-O0 -std=c++0x -g -pg -fPIE")
195 SET(CMAKE_C_FLAGS_DEBUG        "-O0 -g -fPIE")
196 SET(CMAKE_CXX_FLAGS_DEBUG      "-O0 -std=c++0x -g -fPIE")
197 SET(CMAKE_C_FLAGS_RELEASE      "-O2 -g -fPIE")
198 SET(CMAKE_CXX_FLAGS_RELEASE    "-O2 -std=c++0x -g -fPIE")
199 SET(CMAKE_C_FLAGS_CCOV         "-O2 -g --coverage -fPIE")
200 SET(CMAKE_CXX_FLAGS_CCOV       "-O2 -std=c++0x -g --coverage -fPIE")
201
202 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--rpath=${PREFIX}/lib -pie")
203
204 FIND_PROGRAM(UNAME NAMES uname)
205 EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
206 IF("${ARCH}" STREQUAL "arm")
207         ADD_DEFINITIONS("-DTARGET")
208         MESSAGE("add -DTARGET")
209 ENDIF("${ARCH}" STREQUAL "arm")
210
211 ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE}\"")
212 ADD_DEFINITIONS("-DPACKAGE_NAME=\"${PKGNAME}\"")
213 ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
214 ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
215 ADD_DEFINITIONS("-D_GNU_SOURCE")
216
217 IF(X11_SUPPORT)
218         ADD_DEFINITIONS("-DHAVE_X11")
219 ENDIF(X11_SUPPORT)
220
221 IF(WAYLAND_SUPPORT)
222         ADD_DEFINITIONS("-DHAVE_WAYLAND")
223 ENDIF(WAYLAND_SUPPORT)
224
225 IF("${TIZEN_PROFILE_NAME}" STREQUAL "COMMON")
226
227 SET(BUILD_SOURCE
228         src/dbus_util.c
229         src/package_mgr.c
230         src/process_mgr.c
231         src/status.c
232
233         src/common/home_mgr.c
234         src/common/lock_mgr.c
235         src/common/starter.c
236         src/common/window_mgr.c
237         src/common/popup.c
238         src/common/hw_key.c
239 )
240
241 ELSEIF("${TIZEN_PROFILE_NAME}" STREQUAL "MOBILE")
242
243 SET(BUILD_SOURCE
244         src/dbus_util.c
245         src/package_mgr.c
246         src/process_mgr.c
247         src/status.c
248
249         src/mobile/home_mgr.c
250         src/mobile/starter.c
251         src/mobile/lock_mgr.c
252         src/mobile/lock_pwd_util.c
253         src/mobile/lock_pwd_simple.c
254         src/mobile/lock_pwd_complex.c
255         src/mobile/lock_pwd_control_panel.c
256         src/mobile/lock_pwd_verification.c
257         src/mobile/window_mgr.c
258         src/mobile/popup.c
259         src/mobile/hw_key.c
260 )
261
262 ELSEIF("${TIZEN_PROFILE_NAME}" STREQUAL "WEARABLE")
263
264 SET(BUILD_SOURCE
265         src/dbus_util.c
266         src/package_mgr.c
267         src/process_mgr.c
268         src/status.c
269
270         src/wearable/clock_mgr.c
271         src/wearable/home_mgr.c
272         src/wearable/hourly_alert.c
273         src/wearable/hw_key.c
274         src/wearable/starter.c
275 )
276
277 ELSEIF("${TIZEN_PROFILE_NAME}" STREQUAL "IVI")
278
279 SET(BUILD_SOURCE
280         src/dbus_util.c
281         src/package_mgr.c
282         src/process_mgr.c
283         src/status.c
284
285         src/ivi/home_mgr.c
286         src/ivi/lock_mgr.c
287         src/ivi/starter.c
288         src/ivi/window_mgr.c
289         src/ivi/popup.c
290         src/ivi/hw_key.c
291 )
292
293 ENDIF()
294
295 ADD_EXECUTABLE(${PROJECT_NAME} ${BUILD_SOURCE})
296 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
297 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})
298 INSTALL(DIRECTORY DESTINATION ${DATADIR})
299
300 INSTALL(FILES ${CMAKE_SOURCE_DIR}/rd4starter DESTINATION /etc/init.d
301                 PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
302                 GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
303 INSTALL(FILES ${CMAKE_SOURCE_DIR}/rd3starter DESTINATION /etc/init.d
304                 PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
305                 GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
306 #INSTALL to /etc/init.d
307
308 ADD_SUBDIRECTORY(res)
309 ADD_SUBDIRECTORY(po)