seperate sound device from feedback internal code
[platform/core/system/libsvi.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 ${LIB_INSTALL_DIR})
7 SET(INCLUDEDIR "\${prefix}/include/${PROJECT_NAME}")
8 SET(VERSION 0.1.4)
9
10 SET(FEEDBACK_DATA_PATH ${CMAKE_CURRENT_SOURCE_DIR}/data)
11 SET(FEEDBACK_DATA_DIRS ${FEEDBACK_DATA_PATH}/feedback)
12
13 SET(SRCS
14         src/devices.c
15         src/sound.c
16         src/feedback.c
17         src/feedback-internal.c
18         src/xmlparser.c)
19
20 SET(HEADERS
21         SLP_FEEDBACK_PG.h
22         include/feedback.h
23         include/feedback-ids.h)
24
25 SET(SVI_NAME svi)
26
27 SET(SVI_HEADERS
28         include/svi.h
29         include/svi-ids.h)
30
31 SET(SVI_SRCS
32         src/svi.c)
33
34 SET(DEPENDENTS "vconf haptic mm-keysound dlog libxml-2.0 glib-2.0")
35 SET(PC_DEPENDENTS "capi-base-common")
36
37 SET(PC_NAME ${PROJECT_NAME})
38 SET(PC_REQUIRED ${PC_DEPENDENTS})
39 SET(PC_LDFLAGS -l${PROJECT_NAME})
40
41 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
42
43 INCLUDE(FindPkgConfig)
44 pkg_check_modules(pkgs REQUIRED ${DEPENDENTS})
45
46 FOREACH(flag ${pkgs_CFLAGS})
47         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
48 ENDFOREACH(flag)
49
50 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
51 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -g")
52
53 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
54
55 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
56 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION 0)
57 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION})
58 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
59
60 ADD_LIBRARY(${SVI_NAME} SHARED ${SVI_SRCS})
61 SET_TARGET_PROPERTIES(${SVI_NAME} PROPERTIES SOVERSION 0)
62 SET_TARGET_PROPERTIES(${SVI_NAME} PROPERTIES VERSION ${VERSION})
63 TARGET_LINK_LIBRARIES(${SVI_NAME} -L${CMAKE_BINARY_DIR} -lfeedback)
64 TARGET_LINK_LIBRARIES(${SVI_NAME} ${pkgs_LDFLAGS})
65
66 CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
67 CONFIGURE_FILE(${SVI_NAME}.pc.in ${SVI_NAME}.pc @ONLY)
68
69 FOREACH(hfile ${HEADERS})
70         INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${hfile} DESTINATION include/${PROJECT_NAME})
71 ENDFOREACH(hfile)
72
73 FOREACH(hfile ${SVI_HEADERS})
74         INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${hfile} DESTINATION include/${SVI_NAME})
75 ENDFOREACH(hfile)
76
77 FOREACH(datadir ${FEEDBACK_DATA_DIRS})
78     INSTALL(DIRECTORY ${datadir} DESTINATION share)
79 ENDFOREACH(datadir)
80
81 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
82 INSTALL(TARGETS ${SVI_NAME} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
83 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
84 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${SVI_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)