Remove unnecessary explicit dependency to libcontext-shared
[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 -fdata-sections -ffunction-sections -fvisibility=hidden)
12 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fPIC -Wl,--as-needed -Wl,--gc-section -Wl,--print-gc-section")
13
14 # Base Dependency
15 SET(dependencies libcontext-server)
16
17 # Profiles
18 IF("${PROFILE}" STREQUAL "mobile")
19         ADD_DEFINITIONS("-D_MOBILE_")
20 ENDIF("${PROFILE}" STREQUAL "mobile")
21
22 IF("${PROFILE}" STREQUAL "wearable")
23         ADD_DEFINITIONS("-D_WEARABLE_")
24 ENDIF("${PROFILE}" STREQUAL "wearable")
25
26 IF("${PROFILE}" STREQUAL "tv")
27         ADD_DEFINITIONS("-D_TV_")
28 ENDIF("${PROFILE}" STREQUAL "tv")
29
30 # Include Sub-modules
31 ADD_SUBDIRECTORY(src)
32 MESSAGE("Compile definitions: ${compile_defs}")
33
34 # Build
35 INCLUDE(FindPkgConfig)
36 PKG_CHECK_MODULES(DEPS REQUIRED ${dependencies})
37
38 FOREACH(flag ${DEPS_CFLAGS})
39         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
40 ENDFOREACH(flag)
41
42 ADD_LIBRARY(${target} STATIC ${sources})
43 TARGET_LINK_LIBRARIES(${target} ${DEPS_LDFLAGS})
44 SET_TARGET_PROPERTIES(${target} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS})
45 SET_TARGET_PROPERTIES(${target} PROPERTIES COMPILE_DEFINITIONS "${compile_defs}")
46 SET_TARGET_PROPERTIES(${target} PROPERTIES SOVERSION ${MAJORVER})
47 SET_TARGET_PROPERTIES(${target} PROPERTIES VERSION ${FULLVER})
48
49 # Package Config
50 FOREACH(item IN LISTS dependencies)
51         SET(deps_str "${deps_str} ${item}")
52 ENDFOREACH(item)
53
54 SET(VERSION ${FULLVER})
55 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
56 SET(PC_NAME ${PROJECT_NAME})
57 SET(PC_DESCRIPTION "Tizen Context Framework Context Provider")
58 SET(PC_INCLUDE "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}/context-service")
59 SET(PC_LIBDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
60 SET(PC_CFLAGS "-I\${includedir}/context-service")
61 SET(PC_LDFLAGS "-l${target}")
62 SET(PC_REQUIRED "${deps_str}")
63
64 CONFIGURE_FILE(
65         ${PROJECT_NAME}.pc.in
66         ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc
67         @ONLY
68 )
69
70 # Installing
71 INSTALL(
72         DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/
73         DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/context-service/internal
74         FILES_MATCHING PATTERN "*.h"
75 )
76 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
77 INSTALL(TARGETS ${target} DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT RuntimeLibraries)