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