tizen 2.4 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("${PROFILE}" STREQUAL "tv")
11         SET(PROFILE "common")
12 ENDIF()
13 SET(FEEDBACK_PROFILE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/${PROFILE})
14
15 SET(SRCS
16         src/sound.c
17         src/vibrator.c
18         src/devices.c
19         src/parser.c
20         src/feedback.c
21         src/dbus.c
22         ${FEEDBACK_PROFILE_PATH}/src/check.c)
23
24 SET(HEADERS
25         include/feedback.h
26         include/feedback-ids.h
27         include/feedback-internal.h)
28
29 IF(NOT "${PROFILE}" STREQUAL "common")
30         SET(HEADERS ${HEADERS}
31                 ${FEEDBACK_PROFILE_PATH}/include/feedback-ids-${PROFILE}.h)
32         IF("${PROFILE}" STREQUAL "mobile")
33                 ADD_DEFINITIONS("-DMOBILE")
34         ELSEIF("${PROFILE}" STREQIAL "wearable")
35                 ADD_DEFINITIONS("-DWEARABLE")
36         ENDIF()
37 ENDIF()
38
39 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
40 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src)
41 INCLUDE_DIRECTORIES(${FEEDBACK_PROFILE_PATH}/include)
42
43 SET(PKG_MODULES vconf mm-keysound dlog glib-2.0 gio-2.0 dbus-1)
44
45 INCLUDE(FindPkgConfig)
46 pkg_check_modules(pkgs REQUIRED ${PKG_MODULES})
47
48 FOREACH(flag ${pkgs_CFLAGS})
49         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
50 ENDFOREACH(flag)
51
52 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
53 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -g")
54
55 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
56
57 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
58 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION 0)
59 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION})
60 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
61 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib COMPONENT RuntimeLibraries)
62
63 CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
64 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION lib/pkgconfig)
65
66 INSTALL(FILES ${HEADERS} DESTINATION include/${PROJECT_NAME})
67 INSTALL(DIRECTORY ${FEEDBACK_PROFILE_PATH}/data/ DESTINATION share/${PROJECT_NAME})