tizen 2.3 release
[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(CONFDIR "/etc/${PROJECT_NAME}")
80 SET(VERSION 0.1.0)
81
82 SET(SRCS
83         src/battery/config.c
84         src/battery/lowbat-handler.c
85         src/core/buxton-helper.c
86         src/core/device-notifier.c
87         src/core/main.c
88         src/core/launch.c
89         src/core/devices.c
90         src/core/sig-handler.c
91         src/core/log.c
92         src/core/device-change-handler.c
93         src/core/common.c
94         src/core/config-parser.c
95         src/core/execute.c
96         src/core/edbus-handler.c
97         src/core/power-supply.c
98         src/earjack/earjack.c
99         src/proc/cpu-info.c
100         src/board/board-info.c
101         src/proc/proc-handler.c
102         src/storage/storage.c
103         src/ta/ta-handler.c
104         src/time/time-handler.c
105         src/ticker/ticker.c
106         src/testmode/testmode.c
107 )
108
109 IF(USE_MICRO_DD)
110 SET(SRCS ${SRCS}
111         src/cool-down/cool-down-micro.c
112 )
113 ELSE()
114 SET(SRCS ${SRCS}
115         src/cool-down/cool-down.c
116 )
117 ENDIF()
118
119 SET(SRCS ${SRCS}
120         src/hdmi-cec/libcec.c
121         src/hdmi-cec/cec.c
122 )
123 SET(SRCS ${SRCS}
124         src/gpio/gpio.c
125         src/gpio/buzzer.c
126         src/gpio/hall.c
127         src/gpio/sim.c
128 )
129
130 IF(USE_SYSTEMD_SHUTDOWN)
131 SET(SRCS ${SRCS}
132         src/power/systemd-power.c
133 )
134 ELSE()
135 SET(SRCS ${SRCS}
136         src/power/power-handler.c
137 )
138 ENDIF()
139
140 #device sleep
141 SET(SRCS ${SRCS}
142         src/sleep/sleep.c
143 )
144
145 SET(SRCS ${SRCS}
146         src/apps/apps.c
147         src/apps/cool-down.c
148         src/apps/lowbat.c
149         src/apps/poweroff.c
150         src/apps/lowmem.c
151         src/pmqos/pmqos.c
152         src/pmqos/pmqos-plugin.c
153         src/telephony/telephony.c
154 )
155
156 IF(NOT USE_MICRO_DD)
157 SET(SRCS ${SRCS}
158         src/battery/battery-time.c
159         src/extcon/extcon.c
160         src/hall/hall-handler.c
161         src/apps/launch.c
162         src/apps/mmc.c
163         src/apps/usb.c
164         src/apps/usbotg.c
165         src/apps/system.c
166 )
167
168 SET(SRCS ${SRCS}
169         src/mmc/mmc-handler.c
170         src/mmc/uevent.c
171         src/mmc/config.c
172         src/mmc/cprm.c
173         src/mmc/app2ext.c
174 )
175
176 FIND_PROGRAM(UNAME NAMES uname)
177 EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARC")
178 IF(USE_EMULATOR)
179 SET(SRCS ${SRCS}
180         src/mmc/ext4.c
181         )
182 ENDIF(USE_EMULATOR)
183
184 SET(SRCS ${SRCS}
185         src/mmc/exfat.c
186         src/mmc/vfat.c
187 )
188
189 SET(SRCS ${SRCS}
190         src/ode/ode.c
191         src/ode/noti.c
192 )
193 ENDIF(NOT USE_MICRO_DD)
194
195 # display(pm)
196 SET(SRCS ${SRCS}
197         src/display/core.c
198         src/display/display-dbus.c
199         src/display/hbm.c
200         src/display/device-interface.c
201         src/display/lock-detector.c
202         src/display/poll.c
203         src/display/setting.c
204         src/display/display-ops.c
205         src/display/display-actor.c
206         src/display/auto-brightness.c
207 )
208
209 IF(USE_MICRO_DD)
210 SET(SRCS ${SRCS}
211         src/display/alpm.c
212         src/display/key-filter-micro.c
213 )
214 ELSE()
215 SET(SRCS ${SRCS}
216         src/display/brightness.c
217         src/display/key-filter.c
218         src/display/enhance.c
219         src/display/smartstay.c
220 )
221 ENDIF(USE_MICRO_DD)
222
223 SET(SRCS ${SRCS}
224         src/led/ir.c
225         src/led/torch.c
226         src/led/pattern.c
227         src/led/noti.c
228 )
229
230 SET(SRCS ${SRCS}
231         src/pass/pass.c
232         src/pass/pass-core.c
233         src/pass/pass-gov-step.c
234         src/pass/pass-gov-radiation.c
235         src/pass/pass-plugin.c
236 )
237
238 SET(SRCS ${SRCS}
239         src/touch/touchscreen.c)
240
241 IF(NOT USE_MICRO_DD)
242 SET(SRCS ${SRCS}
243         src/touch/touch.c
244         src/touch/touchkey.c
245         src/touch/touch-controller.c
246         src/touch/touch-plugin.c)
247
248
249 SET(SRCS ${SRCS}
250         src/led/rgb.c
251         src/led/conf.c
252 )
253 ENDIF(NOT USE_MICRO_DD)
254
255 SET(SRCS ${SRCS}
256         src/control/control.c
257 )
258
259 SET(SRCS ${SRCS}
260         src/haptic/haptic.c
261         src/haptic/external.c
262         src/haptic/standard.c
263         src/haptic/emulator.c)
264
265 # usb client
266 SET(SRCS ${SRCS}
267         src/usb/usb-common.c
268         src/usb/usb-client.c
269         src/usb/usb-client-event-sdk.c
270         src/usb/usb-client-config.c
271         src/usb/usb-client-set.c
272         src/usb/usb-client-control.c
273         src/usb/usb-client-dbus.c
274 )
275 IF(USE_MICRO_DD)
276 SET(SRCS ${SRCS} src/usb/usb-client-mode-micro.c)
277 ELSE(USE_MICRO_DD)
278 SET(SRCS ${SRCS} src/usb/usb-client-mode.c)
279 ENDIF(USE_MICRO_DD)
280
281 # usb host
282 IF(NOT USE_MICRO_DD)
283 SET(SRCS ${SRCS}
284         src/usb/usb-common.c
285         src/usb/usb-host.c
286         src/usb/usb-host-dbus.c
287         src/usb/usb-host-storage.c
288         src/usb/usb-host-storage-vfat.c
289         src/usb/usb-host-storage-exfat.c
290         src/usb/usb-host-hid.c
291         src/usb/usb-host-camera.c
292         src/usb/usb-host-printer.c
293         src/usb/usb-host-naming.c
294 )
295 ENDIF(NOT USE_MICRO_DD)
296
297 # powersaver mode
298 SET(SRCS ${SRCS}
299         src/powersaver/powersaver.c
300 )
301 IF(USE_MICRO_DD)
302 SET(SRCS ${SRCS}
303         src/powersaver/powersaver-micro.c
304 )
305 ENDIF(USE_MICRO_DD)
306
307 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
308 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/src)
309 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/src/deviced)
310
311 SET(PKG_MODULES
312         libbuxton
313         ecore
314         edbus
315         eina
316         vconf
317         dlog
318         device-node
319         capi-base-common
320         journal
321         storage
322         sensor
323         tapi
324 )
325
326 INCLUDE(FindPkgConfig)
327 pkg_check_modules(pkgs REQUIRED ${PKG_MODULES})
328
329 FOREACH(flag ${pkgs_CFLAGS})
330         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
331 ENDFOREACH(flag)
332
333 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -Werror")
334 IF(USE_ENGINEER_MODE)
335         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -g -fno-omit-frame-pointer -finstrument-functions")
336 ELSE()
337         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -g -fno-omit-frame-pointer")
338 ENDIF()
339 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -lrt")
340 MESSAGE("FLAGS: ${CMAKE_C_FLAGS}")
341
342 ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
343 ADD_DEFINITIONS("-DFACTORYFS=\"$ENV{FACTORYFS}\"")
344 ADD_DEFINITIONS("-DLIBDIR=\"${LIBDIR}\"")
345 ADD_DEFINITIONS("-DENABLE_KEY_FILTER")
346 ADD_DEFINITIONS("-DENABLE_X_LCD_ONOFF")
347 ADD_DEFINITIONS("-DENABLE_DEVICED_DLOG")
348 ADD_DEFINITIONS("-DENABLE_LIBDEVICED_DLOG")
349 ADD_DEFINITIONS("-DENABLE_PM_LOG")
350 IF(USE_ARM)
351         ADD_DEFINITIONS("-DTARGET")
352 ELSEIF(USE_EMULATOR)
353         ADD_DEFINITIONS("-DEMULATOR")
354 ENDIF()
355 ADD_DEFINITIONS("-DDEBUG")
356
357 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
358 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} "-ldl" "-lm" "-ludev" "-ledbus" "-lstorage" shared)
359 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin)
360
361 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/src/deviced/ DESTINATION include/${PROJECT_NAME}
362                 FILES_MATCHING
363                 PATTERN "*_doc.h" EXCLUDE
364                 PATTERN "*.h")
365
366 CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
367 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION lib/pkgconfig)
368
369 IF(NOT USE_MICRO_DD)
370         INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/led/led.conf DESTINATION /etc/deviced)
371 ENDIF(NOT USE_MICRO_DD)
372 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/scripts/dump_pm.sh DESTINATION /opt/etc/dump.d/module.d)
373
374 IF(USE_EMULATOR AND USE_MICRO_DD)
375 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/display/display-emul-wearable.conf DESTINATION /etc/deviced RENAME display.conf)
376 ELSEIF(USE_EMULATOR)
377 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/display/display-emul-mobile.conf DESTINATION /etc/deviced RENAME display.conf)
378 ELSEIF(USE_MICRO_DD)
379 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/display/display-wearable.conf DESTINATION /etc/deviced RENAME display.conf)
380 ELSE()
381 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/display/display-mobile.conf DESTINATION /etc/deviced RENAME display.conf)
382 ENDIF()
383 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/mmc/mmc.conf DESTINATION /etc/deviced RENAME mmc.conf)
384 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/pmqos/pmqos.conf DESTINATION /etc/deviced RENAME pmqos.conf)
385
386 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/battery/battery.conf DESTINATION /etc/deviced RENAME battery.conf)
387
388 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/storage/storage.conf DESTINATION /etc/deviced RENAME storage.conf)
389
390 IF(USE_MICRO_DD)
391 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/pass/pass-micro.conf DESTINATION /etc/deviced RENAME pass.conf)
392 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/haptic/haptic-micro.conf DESTINATION /etc/deviced RENAME haptic.conf)
393 ELSE()
394 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/pass/pass.conf DESTINATION /etc/deviced RENAME pass.conf)
395 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/haptic/haptic-mobile.conf DESTINATION /etc/deviced RENAME haptic.conf)
396 ENDIF(USE_MICRO_DD)
397
398 INSTALL(PROGRAMS ${CMAKE_BINARY_DIR}/scripts/deviced-pre.sh DESTINATION bin)
399 INSTALL(FILES ${CMAKE_SOURCE_DIR}/packaging/${PROJECT_NAME}.efl DESTINATION /etc/smack/accesses.d)
400 IF(USE_MICRO_DD)
401 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/usb/usb-client-configuration-micro.conf  DESTINATION ${CONFDIR} RENAME usb-client-configuration.conf)
402 ELSE(USE_MICRO_DD)
403 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/usb/usb-client-configuration.conf  DESTINATION ${CONFDIR})
404 ENDIF(USE_MICRO_DD)
405 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/usb/usb-client-operation.conf  DESTINATION ${CONFDIR})
406
407 IF(NOT USE_MICRO_DD)
408         INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/scripts/movi_format.sh DESTINATION bin)
409         INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/scripts/mmc-smack-label DESTINATION bin)
410         INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/fsck-msdos/LICENSE DESTINATION share/license RENAME fsck_msdosfs)
411 ENDIF(NOT USE_MICRO_DD)
412
413 # USB (data-router)
414 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/scripts/start_dr.sh  DESTINATION ${EXEC_PREFIX})
415
416 # USB (Manual setting)
417 IF(USE_ENGINEER_MODE)
418 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/scripts/direct_set_debug.sh  DESTINATION ${EXEC_PREFIX})
419 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/scripts/set_usb_debug.sh     DESTINATION ${EXEC_PREFIX})
420 ENDIF()
421
422 ADD_SUBDIRECTORY(src)
423 ADD_SUBDIRECTORY(src/libdeviced)
424 IF(NOT USE_MICRO_DD)
425         ADD_SUBDIRECTORY(src/fsck-msdos)
426         ADD_SUBDIRECTORY(src/newfs-msdos)
427 ENDIF(NOT USE_MICRO_DD)
428 ADD_SUBDIRECTORY(src/devicectl)
429 ADD_SUBDIRECTORY(src/auto-test)
430
431 ENDIF(BUILD_EXECUTABLE)