Merge branch 'devel/tizen_3.0' into tizen
[platform/core/context/context-provider.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(context-provider)
3 INCLUDE(GNUInstallDirs)
4 SET(target "context-provider")
5 SET(compile_defs "LOG_TAG=\"CONTEXT\"")
6
7 # Common Options
8 INCLUDE_DIRECTORIES(
9         ${CMAKE_CURRENT_SOURCE_DIR}/include
10 )
11 ADD_DEFINITIONS(-O2 -Wall -fPIC -fvisibility=hidden -Wl,--as-needed)
12
13 # Base Dependency
14 SET(dependencies libcontext-shared libcontext-server)
15
16 # Profiles
17 IF("${PROFILE}" STREQUAL "mobile")
18         ADD_DEFINITIONS("-D_MOBILE_")
19 ENDIF("${PROFILE}" STREQUAL "mobile")
20
21 IF("${PROFILE}" STREQUAL "wearable")
22         ADD_DEFINITIONS("-D_WEARABLE_")
23 ENDIF("${PROFILE}" STREQUAL "wearable")
24
25 IF("${PROFILE}" STREQUAL "tv")
26         ADD_DEFINITIONS("-D_TV_")
27 ENDIF("${PROFILE}" STREQUAL "tv")
28
29 # Include Sub-modules
30 ADD_SUBDIRECTORY(src)
31 MESSAGE("Compile definitions: ${compile_defs}")
32
33 # Build
34 INCLUDE(FindPkgConfig)
35 PKG_CHECK_MODULES(DEPS REQUIRED ${dependencies})
36
37 FOREACH(flag ${DEPS_CFLAGS})
38         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
39 ENDFOREACH(flag)
40
41 ADD_LIBRARY(${target} SHARED ${sources})
42 TARGET_LINK_LIBRARIES(${target} ${DEPS_LDFLAGS})
43 SET_TARGET_PROPERTIES(${target} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS})
44 SET_TARGET_PROPERTIES(${target} PROPERTIES COMPILE_DEFINITIONS "${compile_defs}")
45 SET_TARGET_PROPERTIES(${target} PROPERTIES SOVERSION ${MAJORVER})
46 SET_TARGET_PROPERTIES(${target} PROPERTIES VERSION ${FULLVER})
47
48 # Package Config
49 FOREACH(item IN LISTS dependencies)
50         SET(deps_str "${deps_str} ${item}")
51 ENDFOREACH(item)
52
53 SET(VERSION ${FULLVER})
54 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
55 SET(PC_NAME ${PROJECT_NAME})
56 SET(PC_DESCRIPTION "Tizen Context Framework Context Provider")
57 SET(PC_INCLUDE "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}/context-service")
58 SET(PC_LIBDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
59 SET(PC_CFLAGS "-I\${includedir}/context-service")
60 SET(PC_LDFLAGS "-l${target}")
61 SET(PC_REQUIRED "${deps_str}")
62
63 CONFIGURE_FILE(
64         ${PROJECT_NAME}.pc.in
65         ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc
66         @ONLY
67 )
68
69 # Installing
70 INSTALL(
71         DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/
72         DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/context-service/internal
73         FILES_MATCHING PATTERN "*.h"
74 )
75 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
76 INSTALL(TARGETS ${target} DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT RuntimeLibraries)