tizen 2.3.1 release
[framework/system/libfeedback.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(feedback C)
3
4 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
5 SET(EXEC_PREFIX "\${prefix}")
6 SET(LIBDIR "\${prefix}/lib")
7 SET(INCLUDEDIR "\${prefix}/include/${PROJECT_NAME}")
8 SET(VERSION 0.1.4)
9
10 IF("${ARCH}" STREQUAL "emulator")
11         OPTION(USE_EMULATOR "Use Emulator" ON)
12 ELSEIF("${ARCH}" STREQUAL "arm")
13         OPTION(USE_ARM "Use Arm" ON)
14 ENDIF()
15
16 SET(FEEDBACK_DATA_PATH ${CMAKE_CURRENT_SOURCE_DIR}/data)
17 IF(USE_EMULATOR)
18 SET(FEEDBACK_DATA_DIRS ${FEEDBACK_DATA_PATH}/emulator)
19 ELSE(USE_EMULATOR)
20 IF(MICRO_DD)
21 SET(FEEDBACK_DATA_DIRS ${FEEDBACK_DATA_PATH}/micro)
22 ELSE(MICRO_DD)
23 SET(FEEDBACK_DATA_DIRS ${FEEDBACK_DATA_PATH}/mobile)
24 ENDIF(MICRO_DD)
25 ENDIF(USE_EMULATOR)
26
27 SET(SRCS
28         src/devices.c
29         src/sound.c
30         src/vibrator.c
31         src/xmlparser.c
32         src/feedback.c
33         src/str.c
34         src/dbus.c)
35
36 SET(HEADERS
37         SLP_FEEDBACK_PG.h
38         include/feedback.h
39         include/feedback-ids.h)
40
41 SET(DEPENDENTS "vconf mm-keysound dlog libxml-2.0 glib-2.0 dbus-1")
42 SET(PC_DEPENDENTS "capi-base-common")
43
44 SET(PC_NAME ${PROJECT_NAME})
45 SET(PC_REQUIRED ${PC_DEPENDENTS})
46 SET(PC_LDFLAGS -l${PROJECT_NAME})
47
48 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
49
50 INCLUDE(FindPkgConfig)
51 pkg_check_modules(pkgs REQUIRED ${DEPENDENTS})
52
53 FOREACH(flag ${pkgs_CFLAGS})
54         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
55 ENDFOREACH(flag)
56
57 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
58 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -g")
59 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Werror")
60
61 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
62
63 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
64 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION 0)
65 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION})
66 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
67 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib COMPONENT RuntimeLibraries)
68
69 CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
70 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION lib/pkgconfig)
71
72 FOREACH(hfile ${HEADERS})
73         INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${hfile} DESTINATION include/${PROJECT_NAME})
74 ENDFOREACH(hfile)
75
76 IF(MICRO_DD OR USE_EMULATOR)
77         INSTALL(DIRECTORY ${FEEDBACK_DATA_DIRS}/ DESTINATION share/${PROJECT_NAME})
78 ELSE(MICRO_DD OR USE_EMULATOR)
79         INSTALL(DIRECTORY ${FEEDBACK_DATA_DIRS}/sound DESTINATION share/${PROJECT_NAME})
80         INSTALL(FILES ${FEEDBACK_DATA_DIRS}/sound.xml DESTINATION share/${PROJECT_NAME})
81         INSTALL(FILES ${FEEDBACK_DATA_DIRS}/vibration.xml DESTINATION share/${PROJECT_NAME})
82 ENDIF(MICRO_DD OR USE_EMULATOR)