2.0 alpha
[platform/core/system/devman.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(devman C)
3
4 INCLUDE(FindPkgConfig)
5 pkg_check_modules(rpkgs REQUIRED
6                 vconf
7                 dlog
8                 heynoti
9                 iniparser)
10 ADD_DEFINITIONS(${rpkgs_CFLAGS})
11
12 SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRAINTS true)
13
14 SET(SRCS
15         src/device_plugin.c
16         src/device_engine.c
17         src/device_haptic.c
18         src/device_convert.c
19         src/if_legacy.c
20         src/if_generic.c
21         src/devman_internal.c)
22
23 SET(HEADERS
24         include/devman.h
25         include/devman_managed.h
26         include/devman_image.h
27         include/devman_error.h
28         include/devman_haptic.h
29         include/devman_haptic_ext.h
30         include/devman_haptic_ext_core.h
31         include/devman_haptic_plugin_intf.h
32         include/devman_plugin_intf.h
33         include/SLP_devman_PG.h)
34
35 INCLUDE(devices/CMakeLists.txt) 
36
37 SET(INC_DIR include)
38 INCLUDE_DIRECTORIES(${INC_DIR})
39
40 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
41 SET(EXEC_PREFIX "\${prefix}")
42 SET(LIBDIR "\${prefix}/lib")
43 SET(INCLUDEDIR "\${prefix}/include/${PROJECT_NAME}")
44 SET(DATADIR ${CMAKE_DATADIR})
45 SET(VERSION 0.1)
46
47 SET(UDEV_RULES_PATH ${CMAKE_DEVMAN_RSRC_PREFIX}/udev-rules)
48 SET(UDEV_RULES udev-files/91-devman.rules)
49 SET(RC_LOCAL_SCRIPT devman)
50
51 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
52 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -g")
53
54 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
55
56 ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
57 ADD_DEFINITIONS("-DFACTORYFS=\"$ENV{FACTORYFS}\"")
58 ADD_DEFINITIONS("-DENABLE_DLOG_OUT -DSLP_DEBUG")
59
60 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS} ${TARGET_SRCS})
61
62 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${rpkgs_LDFLAGS} "-ldl")
63 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION})
64
65 ADD_EXECUTABLE(display_wd src/display_wd.c)
66 TARGET_LINK_LIBRARIES(display_wd ${pkgs_LDFLAGS} ${PROJECT_NAME})
67 INSTALL(TARGETS display_wd DESTINATION bin)
68
69 CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
70 CONFIGURE_FILE(${PROJECT_NAME}_haptic.pc.in ${PROJECT_NAME}_haptic.pc @ONLY)
71 CONFIGURE_FILE(${PROJECT_NAME}_plugin.pc.in ${PROJECT_NAME}_plugin.pc @ONLY)
72 CONFIGURE_FILE(${UDEV_RULES}.in ${UDEV_RULES} @ONLY)
73
74 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib COMPONENT RuntimeLibraries)
75 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION lib/pkgconfig)
76 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_haptic.pc DESTINATION lib/pkgconfig)
77 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_plugin.pc DESTINATION lib/pkgconfig)
78
79 FOREACH(hfile ${HEADERS})
80         INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${hfile} DESTINATION include/${PROJECT_NAME})
81 ENDFOREACH(hfile)
82
83 FOREACH(rfile ${UDEV_RULES})
84         INSTALL(FILES ${rfile} DESTINATION ${UDEV_RULES_PATH})
85 ENDFOREACH(rfile)
86
87 FOREACH(sfile ${PDP_FILES})
88         INSTALL(FILES ${sfile} DESTINATION sbin)
89 ENDFOREACH(sfile)
90
91 INSTALL(FILES ${UDEV_SMDEL} DESTINATION bin)
92 INSTALL(FILES ${UDEV_USB} DESTINATION sbin)
93 INSTALL(PROGRAMS ${RC_LOCAL_SCRIPT} DESTINATION /etc/rc.d/init.d)