tizen 2.4 release
[framework/context/place-context-provider.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(place-context-provider)
3 INCLUDE(GNUInstallDirs)
4
5 # Targets
6 SET(target_provider "ctx-place-provider")
7
8 # Source Lists
9 FILE(GLOB SRCS src/*.cpp)
10
11 # Dependencies
12 SET(provider_deps "context-common")
13
14 # Dependencies regarding profiles
15 IF("${PROFILE}" STREQUAL "mobile")
16         ADD_DEFINITIONS("-D_MOBILE_")
17         FILE(GLOB SRCS ${SRCS} src/geofence/*.cpp)
18         SET(provider_deps "${provider_deps} capi-geofence-manager")
19 ENDIF("${PROFILE}" STREQUAL "mobile")
20
21 IF("${PROFILE}" STREQUAL "wearable")
22         ADD_DEFINITIONS("-D_WEARABLE_")
23 ENDIF("${PROFILE}" STREQUAL "wearable")
24
25 MESSAGE("Sources: ${SRCS}")
26
27 # Common Options
28 INCLUDE(FindPkgConfig)
29 INCLUDE_DIRECTORIES(
30         ${CMAKE_CURRENT_SOURCE_DIR}/include
31         ${CMAKE_CURRENT_SOURCE_DIR}/src/shared
32 )
33 ADD_DEFINITIONS(-g -O2 -Wall -fPIC -fvisibility=hidden -Wl,--as-needed)
34
35 # Build
36 pkg_check_modules(provider_pkg REQUIRED ${provider_deps})
37
38 FOREACH(flag ${provider_pkg_CFLAGS})
39         SET(PROVIDER_EXTRA_CFLAGS "${PROVIDER_EXTRA_CFLAGS} ${flag}")
40 ENDFOREACH(flag)
41
42 ADD_LIBRARY(${target_provider} SHARED ${SRCS})
43 TARGET_LINK_LIBRARIES(${target_provider} ${provider_pkg_LDFLAGS})
44 SET_TARGET_PROPERTIES(${target_provider} PROPERTIES COMPILE_FLAGS ${PROVIDER_EXTRA_CFLAGS})
45 SET_TARGET_PROPERTIES(${target_provider} PROPERTIES COMPILE_DEFINITIONS "LOG_TAG=\"CONTEXT-PLACE\"")
46 SET_TARGET_PROPERTIES(${target_provider} PROPERTIES SOVERSION ${MAJORVER})
47 SET_TARGET_PROPERTIES(${target_provider} PROPERTIES VERSION ${FULLVER})
48
49
50 # Installing
51 INSTALL(TARGETS ${target_provider} DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT RuntimeLibraries)
52 INSTALL(
53         DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/context-service/internal
54         FILES_MATCHING PATTERN "*.h"
55 )
56
57 SET(VERSION ${FULLVER})
58 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
59 SET(PC_NAME ${PROJECT_NAME})
60 SET(PC_INCLUDE "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}/context-service")
61 SET(PC_LIBDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
62 SET(PC_DESCRIPTION "Tizen Place Context Provider")
63 SET(PC_REQUIRED ${provider_deps})
64 SET(PC_LDFLAGS -l${target_provider})
65 SET(PC_CFLAGS -I\${includedir}/context-service)
66
67 CONFIGURE_FILE(
68         ${PROJECT_NAME}.pc.in
69         ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc
70         @ONLY
71 )
72 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)