Initialize Tizen 2.3
[framework/system/deviced.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(deviced C)
3
4 ########################################################
5 # Generation options:
6 # -DBUILD_DOC_ONLY - only doxygen documentation is build
7 # -DBUILD_DOC - build also doxygen documentation
8 #
9 # NOTE:
10 # Remember to add all directories with files to DOC_SRC_DIRS_IN list
11 #
12 ########################################################
13
14 IF(BUILD_DOC_ONLY)
15     SET(BUILD_EXECUTABLE FALSE)
16     SET(BUILD_DOC TRUE)
17 ELSE(BUILD_DOC_ONLY)
18     SET(BUILD_EXECUTABLE TRUE)
19 ENDIF(BUILD_DOC_ONLY)
20
21 IF(BUILD_DOC)
22     SET( DOC_SRC_DIRS_IN
23         ${CMAKE_SOURCE_DIR}/src/deviced
24     )
25     FOREACH(doc_dir ${DOC_SRC_DIRS_IN})
26         SET(DOC_SRC_DIRS "${DOC_SRC_DIRS} ${doc_dir}")
27     ENDFOREACH(doc_dir)
28
29     FIND_PACKAGE(Doxygen REQUIRED)
30
31     get_filename_component( DOXYGEN_DOC_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} PATH)
32
33     #adjust the doxygen configuration for this project
34     configure_file(${CMAKE_SOURCE_DIR}/doxygen/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/doxygen/Doxyfile @ONLY)
35
36     #build the documentation
37     add_custom_target( doc ALL
38         ${DOXYGEN_EXECUTABLE}
39         ${CMAKE_CURRENT_BINARY_DIR}/doxygen/Doxyfile
40         WORKING_DIRECTORY ${CMAKE_DOXYGEN_DIRECTORY}
41         COMMENT "Generating documentation with Doxygen" VERBATIM
42     )
43
44 ENDIF(BUILD_DOC)
45
46 IF(BUILD_EXECUTABLE)
47
48 ########################################################
49 # Build options:
50 # -DMICRO_DD - for tizenw project
51 # -DTIZEN_ENGINEER_MODE - 
52 ########################################################
53 IF("$ENV{CFLAGS}" MATCHES "-DMICRO_DD")
54         OPTION(USE_MICRO_DD "Use Micro DD" ON)
55 ENDIF()
56
57 IF("$ENV{CFLAGS}" MATCHES "-DTIZEN_ENGINEER_MODE")
58         OPTION(USE_ENGINEER_MODE "Use Engineer mode" ON)
59 ENDIF()
60
61 IF("${ARCH}" STREQUAL "emulator")
62         OPTION(USE_EMULATOR "Use Emulator" ON)
63 ELSEIF("${ARCH}" STREQUAL "arm")
64         OPTION(USE_ARM "Use Arm" ON)
65 ENDIF()
66
67 IF("$ENV{CFLAGS}" MATCHES "-DSYSTEMD_SHUTDOWN")
68         OPTION(USE_SYSTEMD_SHUTDOWN "Use systemd shutdown" ON)
69 ENDIF()
70
71 ########################################################
72 # Deviced CMakeLists.txt
73 ########################################################
74 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
75 SET(EXEC_PREFIX "${PREFIX}/bin")
76 SET(LIBDIR "${PREFIX}/lib")
77 SET(INCLUDEDIR "${PREFIX}/include/${PROJECT_NAME}")
78 SET(DATADIR "${PREFIX}/share/${PROJECT_NAME}")
79 SET(VERSION 0.1.0)
80
81 SET(SRCS
82         src/battery/config.c
83         src/battery/lowbat-handler.c
84         src/battery/battery.c
85         src/core/device-notifier.c
86         src/core/main.c
87         src/core/sysnoti.c
88         src/core/launch.c
89         src/core/queue.c
90         src/core/core.c
91         src/core/devices.c
92         src/core/sig-handler.c
93         src/core/device-change-handler.c
94         src/core/predefine.c
95         src/core/common.c
96         src/core/config-parser.c
97         src/core/execute.c
98         src/core/edbus-handler.c
99         src/core/power-supply.c
100         src/core/lowstorage.c
101         src/proc/cpu-info.c
102         src/board/board-info.c
103         src/proc/proc-handler.c
104         src/ta/ta-handler.c
105         src/time/time-handler.c
106         src/ticker/ticker.c
107         src/testmode/testmode.c
108 )
109
110 IF(USE_SYSTEMD_SHUTDOWN)
111 SET(SRCS ${SRCS}
112         src/power/systemd-power.c
113 )
114 ELSE()
115 SET(SRCS ${SRCS}
116         src/power/power-handler.c
117 )
118 ENDIF()
119
120 IF(NOT USE_MICRO_DD)
121     IF(USE_EMULATOR)
122         ADD_DEFINITIONS("-DMOBILE_EMULATOR")
123         SET(SRCS ${SRCS}
124             src/core/noti.c
125         )
126     ENDIF(USE_EMULATOR)
127 ENDIF(NOT USE_MICRO_DD)
128
129 SET(SRCS ${SRCS}
130         src/apps/apps.c
131         src/apps/lowbat.c
132         src/apps/poweroff.c
133         src/pmqos/pmqos.c
134         src/pmqos/pmqos-plugin.c
135 )
136
137 IF(NOT USE_MICRO_DD)
138 SET(SRCS ${SRCS}
139         src/battery/battery-time.c
140         src/extcon/extcon.c
141         src/cpu/cpu-handler.c
142         src/hall/hall-handler.c
143         src/proc/pmon-handler.c
144         src/apps/launch.c
145         src/apps/lowmem.c
146         src/apps/mmc.c
147         src/apps/usb.c
148         src/apps/usbotg.c
149         src/apps/system.c
150 )
151
152 IF(NOT USE_SYSTEMD_SHUTDOWN)
153 SET(SRCS ${SRCS}
154         src/telephony/telephony.c
155 )
156 ENDIF()
157
158 SET(SRCS ${SRCS}
159         src/mmc/mmc-handler.c
160         src/mmc/uevent.c
161         src/mmc/config.c
162         src/mmc/cprm.c
163         src/mmc/app2ext.c
164 )
165
166 FIND_PROGRAM(UNAME NAMES uname)
167 EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARC")
168 IF(USE_EMULATOR)
169 SET(SRCS ${SRCS}
170         src/mmc/ext4.c
171         )
172 ENDIF(USE_EMULATOR)
173
174 SET(SRCS ${SRCS}
175         src/mmc/vfat.c
176 )
177 ENDIF(NOT USE_MICRO_DD)
178
179 # display(pm)
180 SET(SRCS ${SRCS}
181         src/display/core.c
182         src/display/display-dbus.c
183         src/display/hbm.c
184         src/display/device-interface.c
185         src/display/lock-detector.c
186         src/display/poll.c
187         src/display/setting.c
188         src/display/display-ops.c
189 )
190
191 IF(USE_MICRO_DD)
192 SET(SRCS ${SRCS}
193         src/display/alpm.c
194         src/display/key-filter-micro.c
195 )
196 ELSE()
197 SET(SRCS ${SRCS}
198         src/display/brightness.c
199         src/display/key-filter.c
200         src/display/enhance.c
201         src/display/auto-brightness.c
202         src/display/smartstay.c
203 )
204 ENDIF(USE_MICRO_DD)
205
206 SET(SRCS ${SRCS}
207         src/led/ir.c
208         src/led/torch.c
209         src/led/pattern.c
210         src/led/noti.c
211         src/led/xml.c
212 )
213
214 IF(NOT USE_MICRO_DD)
215 SET(SRCS ${SRCS}
216         src/touch/touch.c
217         src/touch/touch-controller.c
218         src/touch/touch-plugin.c)
219
220
221 SET(SRCS ${SRCS}
222         src/led/rgb.c
223 )
224 ENDIF(NOT USE_MICRO_DD)
225
226 SET(SRCS ${SRCS}
227         src/control/control.c
228 )
229
230 SET(SRCS ${SRCS}
231         src/haptic/haptic.c
232         src/haptic/standard.c
233         src/haptic/external.c
234         src/haptic/emulator.c)
235
236 # usb client
237 SET(SRCS ${SRCS}
238         src/usb/usb-common.c
239         src/usb/usb-client.c
240         src/usb/usb-client-xml.c
241         src/usb/usb-client-set.c
242         src/usb/usb-client-control.c
243         src/usb/usb-client-dbus.c
244 )
245
246 # usb host
247 IF(NOT USE_MICRO_DD)
248 SET(SRCS ${SRCS}
249         src/usb/usb-common.c
250         src/usb/usb-host.c
251         src/usb/usb-host-dbus.c
252         src/usb/usb-host-storage.c
253         src/usb/usb-host-storage-vfat.c
254         src/usb/usb-host-hid.c
255         src/usb/usb-host-camera.c
256         src/usb/usb-host-printer.c
257         src/usb/usb-host-naming.c
258 )
259 ENDIF(NOT USE_MICRO_DD)
260
261 # powersaver mode
262 IF(USE_MICRO_DD)
263 SET(SRCS ${SRCS}
264         src/powersaver/powersaver.c
265 )
266 ENDIF(USE_MICRO_DD)
267
268 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
269 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/src)
270 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/src/deviced)
271 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/logd/src/shared)
272
273 SET(PKG_MODULES
274         ecore
275         ecore-file
276         ecore-x
277         edbus
278         eina
279         vconf
280         dlog
281         device-node
282         libxml-2.0
283         capi-base-common
284 )
285
286 IF(NOT USE_MICRO_DD)
287 SET(PKG_MODULES ${PKG_MODULES}
288         tapi
289         modem
290         sensor
291 )
292 ENDIF()
293
294 IF(USE_TRUSTZONE_QUALCOMM)
295 SET(PKG_MODULES ${PKG_MODULES}
296         tee-qsee
297 )
298 ENDIF()
299
300 IF(NOT USE_MICRO_DD)
301     IF(USE_EMULATOR)
302         SET(PKG_MODULES ${PKG_MODULES}
303             heynoti
304         )
305     ENDIF(USE_EMULATOR)
306 ENDIF(NOT USE_MICRO_DD)
307 INCLUDE(FindPkgConfig)
308 pkg_check_modules(pkgs REQUIRED ${PKG_MODULES})
309
310 FOREACH(flag ${pkgs_CFLAGS})
311         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
312 ENDFOREACH(flag)
313
314 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -Werror")
315 IF(USE_ENGINEER_MODE)
316         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -g -fno-omit-frame-pointer -finstrument-functions")
317 ELSE()
318         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -g -fno-omit-frame-pointer")
319 ENDIF()
320 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -lrt")
321 MESSAGE("FLAGS: ${CMAKE_C_FLAGS}")
322
323 ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
324 ADD_DEFINITIONS("-DFACTORYFS=\"$ENV{FACTORYFS}\"")
325 ADD_DEFINITIONS("-DLIBDIR=\"${LIBDIR}\"")
326 ADD_DEFINITIONS("-DENABLE_KEY_FILTER")
327 ADD_DEFINITIONS("-DENABLE_X_LCD_ONOFF")
328 ADD_DEFINITIONS("-DENABLE_DEVICED_DLOG")
329 ADD_DEFINITIONS("-DENABLE_LIBDEVICED_DLOG")
330 ADD_DEFINITIONS("-DENABLE_PM_LOG")
331 IF(USE_ARM)
332         ADD_DEFINITIONS("-DTARGET")
333 ELSEIF(USE_EMULATOR)
334         ADD_DEFINITIONS("-DEMULATOR")
335 ENDIF()
336 ADD_DEFINITIONS("-DDEBUG")
337
338 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
339 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} "-ldl" "-lm" "-ludev" "-ledbus" shared)
340 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin)
341
342 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/src/deviced/ DESTINATION include/${PROJECT_NAME}
343                 FILES_MATCHING
344                 PATTERN "*_doc.h" EXCLUDE
345                 PATTERN "*.h")
346
347 CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
348 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION lib/pkgconfig)
349
350 IF(USE_ARM AND NOT USE_MICRO_DD)
351         INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/src/haptic/HW_touch_30ms_sharp.ivt DESTINATION ${DATADIR})
352         INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/led/led.xml DESTINATION ${DATADIR})
353 ENDIF(USE_ARM AND NOT USE_MICRO_DD)
354 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/scripts/dump_pm.sh DESTINATION /opt/etc/dump.d/module.d)
355
356 IF(USE_TRUSTZONE_QUALCOMM)
357 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/display/display-msm.conf DESTINATION /etc/deviced RENAME display.conf)
358 ELSEIF(USE_EMULATOR)
359 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/display/display-emul.conf DESTINATION /etc/deviced RENAME display.conf)
360 ELSE()
361 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/display/display-exynos.conf DESTINATION /etc/deviced RENAME display.conf)
362 ENDIF()
363 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/mmc/mmc.conf DESTINATION /etc/deviced RENAME mmc.conf)
364 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/pmqos/pmqos.conf DESTINATION /etc/deviced RENAME pmqos.conf)
365
366 IF(USE_MICRO_DD)
367     IF(USE_EMULATOR)
368         INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/battery/battery-micro-emul.conf DESTINATION /etc/deviced RENAME battery.conf)
369     ELSE(USR_EMULATOR)
370         INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/battery/battery-micro.conf DESTINATION /etc/deviced RENAME battery.conf)
371     ENDIF(USE_EMULATOR)
372 ELSE(USE_MICRO_DD)
373 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/battery/battery.conf DESTINATION /etc/deviced RENAME battery.conf)
374 ENDIF(USE_MICRO_DD)
375
376 INSTALL(PROGRAMS ${CMAKE_BINARY_DIR}/scripts/deviced-pre.sh DESTINATION bin)
377 INSTALL(FILES ${CMAKE_SOURCE_DIR}/packaging/${PROJECT_NAME}.rule DESTINATION /etc/smack/accesses2.d)
378 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/usb/configurations/conf-supported.xml      DESTINATION ${DATADIR}/usb-configurations)
379 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/usb/configurations/usb-configurations.xml  DESTINATION ${DATADIR}/usb-configurations)
380
381 IF(NOT USE_MICRO_DD)
382         INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/scripts/movi_format.sh DESTINATION bin)
383         INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/scripts/mmc-smack-label DESTINATION bin)
384 ENDIF(NOT USE_MICRO_DD)
385
386 # USB (data-router)
387 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/scripts/start_dr.sh  DESTINATION ${EXEC_PREFIX})
388
389 # USB (Manual setting)
390 IF(USE_ENGINEER_MODE)
391 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/scripts/direct_set_debug.sh  DESTINATION ${EXEC_PREFIX})
392 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/scripts/set_usb_debug.sh     DESTINATION ${EXEC_PREFIX})
393 ENDIF()
394
395 ADD_SUBDIRECTORY(src)
396 ADD_SUBDIRECTORY(src/libdeviced)
397 ADD_SUBDIRECTORY(src/devicectl)
398 ADD_SUBDIRECTORY(src/auto-test)
399
400 ENDIF(BUILD_EXECUTABLE)