CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(context-provider)
INCLUDE(GNUInstallDirs)
+SET(target "context-provider")
+SET(compile_defs "LOG_TAG=\"CONTEXT\"")
# Common Options
INCLUDE_DIRECTORIES(
)
ADD_DEFINITIONS(-O2 -Wall -fPIC -fvisibility=hidden -Wl,--as-needed)
-# Common Dependency
-SET(deps_common "libcontext-shared libcontext-server")
+# Base Dependency
+SET(dependencies "libcontext-shared libcontext-server")
# Profiles
IF("${PROFILE}" STREQUAL "mobile")
# Include Sub-modules
ADD_SUBDIRECTORY(src)
+MESSAGE("Compile definitions: ${compile_defs}")
+
+# Build
+INCLUDE(FindPkgConfig)
+PKG_CHECK_MODULES(DEPS REQUIRED ${dependencies})
+
+FOREACH(flag ${DEPS_CFLAGS})
+ SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+ADD_LIBRARY(${target} SHARED ${sources})
+TARGET_LINK_LIBRARIES(${target} ${DEPS_LDFLAGS})
+SET_TARGET_PROPERTIES(${target} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS})
+SET_TARGET_PROPERTIES(${target} PROPERTIES COMPILE_DEFINITIONS "${compile_defs}")
+SET_TARGET_PROPERTIES(${target} PROPERTIES SOVERSION ${MAJORVER})
+SET_TARGET_PROPERTIES(${target} PROPERTIES VERSION ${FULLVER})
# Package Config
SET(VERSION ${FULLVER})
SET(PC_DESCRIPTION "Tizen Context Framework Context Provider")
SET(PC_INCLUDE "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}/context-service")
SET(PC_LIBDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
-SET(PC_CFLAGS -I\${includedir}/context-service)
-
-GET_DIRECTORY_PROPERTY(PC_LDFLAGS DIRECTORY src DEFINITION target_all)
-GET_DIRECTORY_PROPERTY(PC_REQUIRED DIRECTORY src DEFINITION deps_all)
-SET(PC_REQUIRED "${deps_common} ${PC_REQUIRED}")
+SET(PC_CFLAGS "-I\${includedir}/context-service")
+SET(PC_LDFLAGS "-l${target}")
+SET(PC_REQUIRED "${dependencies}")
CONFIGURE_FILE(
${PROJECT_NAME}.pc.in
# Installing
INSTALL(
- DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/context-service/internal
+ DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/context-service/internal
FILES_MATCHING PATTERN "*.h"
)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+INSTALL(TARGETS ${target} DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT RuntimeLibraries)
FUNCTION(add_provider prvd_name)
ADD_SUBDIRECTORY(${prvd_name})
- GET_DIRECTORY_PROPERTY(target_sub DIRECTORY ${prvd_name} DEFINITION target)
- GET_DIRECTORY_PROPERTY(deps_sub DIRECTORY ${prvd_name} DEFINITION deps)
- SET(target_all "${target_all} -l${target_sub}" PARENT_SCOPE)
- SET(deps_list "${deps_list} ${deps_sub}" PARENT_SCOPE)
+ GET_DIRECTORY_PROPERTY(srcs_subdir DIRECTORY ${prvd_name} DEFINITION prvd_srcs)
+ GET_DIRECTORY_PROPERTY(deps_subdir DIRECTORY ${prvd_name} DEFINITION prvd_deps)
+ GET_DIRECTORY_PROPERTY(cdef_subdir DIRECTORY ${prvd_name} DEFINITION prvd_cdef)
+ SET(srcs_collected ${srcs_collected} ${srcs_subdir} PARENT_SCOPE)
+ SET(deps_collected ${deps_collected} ${deps_subdir} PARENT_SCOPE)
+ SET(cdef_collected ${cdef_collected} ${cdef_subdir} PARENT_SCOPE)
ENDFUNCTION(add_provider)
+
add_provider(device)
add_provider(statistics)
add_provider(place)
add_provider(custom)
-SEPARATE_ARGUMENTS(deps_list)
-LIST(REMOVE_DUPLICATES deps_list)
-FOREACH(item IN LISTS deps_list)
- SET(deps_all "${deps_all} ${item}")
+
+LIST(REMOVE_DUPLICATES deps_collected)
+FOREACH(item IN LISTS deps_collected)
+ SET(deps_filtered "${deps_filtered} ${item}")
ENDFOREACH(item)
-STRING(STRIP "${target_all}" target_all)
-STRING(STRIP "${deps_all}" deps_all)
+STRING(STRIP "${deps_filtered}" deps_filtered)
+
+SET(sources ${sources} ${srcs_collected} PARENT_SCOPE)
+SET(dependencies "${dependencies} ${deps_filtered}" PARENT_SCOPE)
+SET(compile_defs ${compile_defs} ${cdef_collected} PARENT_SCOPE)
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-SET(target "ctx-custom")
+# prvd_cdef, prvd_deps, and prvd_srcs need to be set properly
# Common Profile
-FILE(GLOB srcs ./*.cpp)
-
-MESSAGE("Custom Provider Sources: ${srcs}")
-
-# Build
-INCLUDE(FindPkgConfig)
-PKG_CHECK_MODULES(custom_pkgs REQUIRED ${deps_common})
-
-FOREACH(flag ${custom_pkgs_CFLAGS})
- SET(extra_cflags "${extra_cflags} ${flag}")
-ENDFOREACH(flag)
-
-ADD_LIBRARY(${target} SHARED ${srcs})
-TARGET_LINK_LIBRARIES(${target} ${custom_pkgs_LDFLAGS})
-SET_TARGET_PROPERTIES(${target} PROPERTIES COMPILE_FLAGS ${extra_cflags})
-SET_TARGET_PROPERTIES(${target} PROPERTIES COMPILE_DEFINITIONS "LOG_TAG=\"CONTEXT-CUSTOM\"")
-SET_TARGET_PROPERTIES(${target} PROPERTIES SOVERSION ${MAJORVER})
-SET_TARGET_PROPERTIES(${target} PROPERTIES VERSION ${FULLVER})
-
-# Install
-INSTALL(TARGETS ${target} DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT RuntimeLibraries)
+FILE(GLOB prvd_srcs ./*.cpp)
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-SET(target "ctx-device")
-SET(definitions LOG_TAG=\"CONTEXT-DEVICE\")
+# prvd_cdef, prvd_deps, and prvd_srcs need to be set properly
# Common Profile
-FILE(GLOB srcs ./*.cpp)
-SET(deps "vconf capi-system-info capi-system-device capi-system-runtime-info")
+FILE(GLOB prvd_srcs ./*.cpp)
+SET(prvd_deps vconf capi-system-info capi-system-device capi-system-runtime-info)
# Mobile Profile
IF("${PROFILE}" STREQUAL "mobile")
- SET(deps "${deps} capi-network-bluetooth capi-network-wifi")
- SET(deps "${deps} capi-telephony tapi msg-service capi-messaging-email motion")
- FILE(GLOB_RECURSE srcs ${srcs} activity/*.cpp)
- FILE(GLOB_RECURSE srcs ${srcs} system/*.cpp)
- FILE(GLOB_RECURSE srcs ${srcs} social/*.cpp)
+ SET(prvd_deps ${prvd_deps} capi-network-bluetooth capi-network-wifi)
+ SET(prvd_deps ${prvd_deps} capi-telephony tapi msg-service capi-messaging-email motion)
+ FILE(GLOB_RECURSE prvd_srcs ${prvd_srcs} activity/*.cpp)
+ FILE(GLOB_RECURSE prvd_srcs ${prvd_srcs} system/*.cpp)
+ FILE(GLOB_RECURSE prvd_srcs ${prvd_srcs} social/*.cpp)
ENDIF("${PROFILE}" STREQUAL "mobile")
# Wearable Profile
IF("${PROFILE}" STREQUAL "wearable")
- SET(deps "${deps} capi-network-bluetooth capi-network-wifi")
- SET(deps "${deps} capi-telephony tapi msg-service motion")
- FILE(GLOB_RECURSE srcs ${srcs} activity/*.cpp)
- FILE(GLOB_RECURSE srcs ${srcs} system/*.cpp)
- SET(srcs ${srcs} social/call.cpp)
- SET(srcs ${srcs} social/message.cpp)
+ SET(prvd_deps ${prvd_deps} capi-network-bluetooth capi-network-wifi)
+ SET(prvd_deps ${prvd_deps} capi-telephony tapi msg-service motion)
+ FILE(GLOB_RECURSE prvd_srcs ${prvd_srcs} activity/*.cpp)
+ FILE(GLOB_RECURSE prvd_srcs ${prvd_srcs} system/*.cpp)
+ SET(prvd_srcs ${prvd_srcs} ${CMAKE_CURRENT_SOURCE_DIR}/social/call.cpp)
+ SET(prvd_srcs ${prvd_srcs} ${CMAKE_CURRENT_SOURCE_DIR}/social/message.cpp)
ENDIF("${PROFILE}" STREQUAL "wearable")
# TV Profile
IF("${PROFILE}" STREQUAL "tv")
- SET(deps "${deps} capi-network-bluetooth capi-network-wifi")
- SET(srcs
- ${srcs}
- system/headphone.cpp
- system/wifi.cpp
- system/alarm.cpp
- system/time.cpp
+ SET(prvd_deps ${prvd_deps} capi-network-bluetooth capi-network-wifi)
+ SET(prvd_srcs
+ ${prvd_srcs}
+ ${CMAKE_CURRENT_SOURCE_DIR}/system/headphone.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/system/wifi.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/system/alarm.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/system/time.cpp
)
ENDIF("${PROFILE}" STREQUAL "tv")
-
-MESSAGE("Device Provider Sources: ${srcs}")
-
-# Build
-INCLUDE(FindPkgConfig)
-PKG_CHECK_MODULES(device_pkgs REQUIRED ${deps_common} ${deps})
-
-FOREACH(flag ${device_pkgs_CFLAGS})
- SET(extra_cflags "${extra_cflags} ${flag}")
-ENDFOREACH(flag)
-
-ADD_LIBRARY(${target} SHARED ${srcs})
-TARGET_LINK_LIBRARIES(${target} ${device_pkgs_LDFLAGS})
-SET_TARGET_PROPERTIES(${target} PROPERTIES COMPILE_FLAGS ${extra_cflags})
-SET_TARGET_PROPERTIES(${target} PROPERTIES COMPILE_DEFINITIONS "${definitions}")
-SET_TARGET_PROPERTIES(${target} PROPERTIES SOVERSION ${MAJORVER})
-SET_TARGET_PROPERTIES(${target} PROPERTIES VERSION ${FULLVER})
-
-# Install
-INSTALL(TARGETS ${target} DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT RuntimeLibraries)
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-SET(target "ctx-place")
-SET(definitions LOG_TAG=\"CONTEXT-PLACE\")
+# prvd_cdef, prvd_deps, and prvd_srcs need to be set properly
# Build flag for the place auto detection engine.
# Set this to "yes" to enable the engine.
SET(enable_recog_engine "no")
# Common Profile
-FILE(GLOB srcs *.cpp)
+FILE(GLOB prvd_srcs *.cpp)
# Mobile Profile
IF("${PROFILE}" STREQUAL "mobile")
- FILE(GLOB_RECURSE srcs ${srcs} geofence/*.cpp)
- SET(deps "${deps} capi-geofence-manager")
+ FILE(GLOB_RECURSE prvd_srcs ${prvd_srcs} geofence/*.cpp)
+ SET(prvd_deps ${prvd_deps} capi-geofence-manager)
IF("${enable_recog_engine}" STREQUAL "yes")
- FILE(GLOB_RECURSE srcs ${srcs} recognition/*.cpp)
- SET(deps "${deps} capi-location-manager")
- SET(deps "${deps} capi-network-wifi")
+ FILE(GLOB_RECURSE prvd_srcs ${prvd_srcs} recognition/*.cpp)
+ SET(prvd_deps ${prvd_deps} capi-location-manager)
+ SET(prvd_deps ${prvd_deps} capi-network-wifi)
ELSE("${enable_recog_engine}" STREQUAL "yes")
- SET(definitions ${definitions} "_DISABLE_RECOG_ENGINE_")
+ SET(prvd_cdef ${prvd_cdef} _DISABLE_RECOG_ENGINE_)
ENDIF("${enable_recog_engine}" STREQUAL "yes")
ENDIF("${PROFILE}" STREQUAL "mobile")
-
-MESSAGE("Place Provider Sources: ${srcs}")
-
-# Build
-INCLUDE(FindPkgConfig)
-PKG_CHECK_MODULES(place_pkgs REQUIRED ${deps_common} ${deps})
-
-FOREACH(flag ${place_pkgs_CFLAGS})
- SET(extra_cflags "${extra_cflags} ${flag}")
-ENDFOREACH(flag)
-
-ADD_LIBRARY(${target} SHARED ${srcs})
-TARGET_LINK_LIBRARIES(${target} ${place_pkgs_LDFLAGS})
-SET_TARGET_PROPERTIES(${target} PROPERTIES COMPILE_FLAGS ${extra_cflags})
-SET_TARGET_PROPERTIES(${target} PROPERTIES COMPILE_DEFINITIONS "${definitions}")
-SET_TARGET_PROPERTIES(${target} PROPERTIES SOVERSION ${MAJORVER})
-SET_TARGET_PROPERTIES(${target} PROPERTIES VERSION ${FULLVER})
-
-# Install
-INSTALL(TARGETS ${target} DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT RuntimeLibraries)
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-SET(target "ctx-statistics")
-SET(definitions LOG_TAG=\"CONTEXT-STATS\")
+# prvd_cdef, prvd_deps, and prvd_srcs need to be set properly
# Build flag for the prediction engine.
# Set this to "yes" to enable the engine.
SET(enable_prediction_engine "no")
-# Common Options
-INCLUDE_DIRECTORIES(
- ${CMAKE_CURRENT_SOURCE_DIR}/shared
-)
-
# Common Profile
-FILE(GLOB srcs ./*.cpp)
-FILE(GLOB srcs ${srcs} shared/*.cpp)
-FILE(GLOB srcs ${srcs} app/*.cpp)
+FILE(GLOB prvd_srcs ./*.cpp)
+FILE(GLOB prvd_srcs ${prvd_srcs} shared/*.cpp)
+FILE(GLOB prvd_srcs ${prvd_srcs} app/*.cpp)
IF("${enable_prediction_engine}" STREQUAL "yes")
- FILE(GLOB srcs ${srcs} prediction/*.cpp)
+ FILE(GLOB prvd_srcs ${prvd_srcs} prediction/*.cpp)
ELSE("${enable_prediction_engine}" STREQUAL "yes")
- SET(definitions ${definitions} "_DISABLE_PREDICTION_ENGINE_")
+ SET(prvd_cdef ${prvd_cdef} _DISABLE_PREDICTION_ENGINE_)
ENDIF("${enable_prediction_engine}" STREQUAL "yes")
-SET(deps "capi-system-runtime-info pkgmgr pkgmgr-info capi-appfw-package-manager")
-SET(deps "${deps} capi-appfw-application capi-appfw-app-manager")
-SET(deps "${deps} capi-media-sound-manager")
+SET(prvd_deps capi-system-runtime-info pkgmgr pkgmgr-info capi-appfw-package-manager)
+SET(prvd_deps ${prvd_deps} capi-appfw-application capi-appfw-app-manager)
+SET(prvd_deps ${prvd_deps} capi-media-sound-manager)
# Mobile Profile
IF("${PROFILE}" STREQUAL "mobile")
- FILE(GLOB srcs ${srcs} media/*.cpp)
- FILE(GLOB srcs ${srcs} social/*.cpp)
- SET(deps "${deps} contacts-service2 capi-content-media-content")
+ FILE(GLOB prvd_srcs ${prvd_srcs} media/*.cpp)
+ FILE(GLOB prvd_srcs ${prvd_srcs} social/*.cpp)
+ SET(prvd_deps ${prvd_deps} contacts-service2 capi-content-media-content)
ENDIF("${PROFILE}" STREQUAL "mobile")
# Wearable Profile
# TV Profile
IF("${PROFILE}" STREQUAL "tv")
- FILE(GLOB srcs ${srcs} media/*.cpp)
- SET(deps "${deps} capi-content-media-content")
+ FILE(GLOB prvd_srcs ${prvd_srcs} media/*.cpp)
+ SET(prvd_deps ${prvd_deps} capi-content-media-content)
ENDIF("${PROFILE}" STREQUAL "tv")
-
-MESSAGE("Statistics Provider Sources: ${srcs}")
-
-# Build
-INCLUDE(FindPkgConfig)
-PKG_CHECK_MODULES(stats_pkgs REQUIRED ${deps_common} ${deps})
-
-FOREACH(flag ${stats_pkgs_CFLAGS})
- SET(extra_cflags "${extra_cflags} ${flag}")
-ENDFOREACH(flag)
-
-ADD_LIBRARY(${target} SHARED ${srcs})
-TARGET_LINK_LIBRARIES(${target} ${stats_pkgs_LDFLAGS})
-SET_TARGET_PROPERTIES(${target} PROPERTIES COMPILE_FLAGS ${extra_cflags})
-SET_TARGET_PROPERTIES(${target} PROPERTIES COMPILE_DEFINITIONS "${definitions}")
-SET_TARGET_PROPERTIES(${target} PROPERTIES SOVERSION ${MAJORVER})
-SET_TARGET_PROPERTIES(${target} PROPERTIES VERSION ${FULLVER})
-
-# Install
-INSTALL(TARGETS ${target} DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT RuntimeLibraries)
#include <db_mgr.h>
#include <json.h>
#include <types_internal.h>
-#include <system_info.h>
+#include "../shared/system_info.h"
#include "app_stats_types.h"
#include "active_window_monitor.h"
#ifndef __CONTEXT_APP_STATS_TYPES_H__
#define __CONTEXT_APP_STATS_TYPES_H__
-#include <common_types.h>
+#include "../shared/common_types.h"
#define APP_HISTORY_PRIV "apphistory.read"
#define APP_SUBJ_RECENTLY_USED "stats/app/recently"
#include <string>
#include <json.h>
-#include <db_handle_base.h>
+#include "../shared/db_handle_base.h"
namespace ctx {
class app_db_handle : public stats_db_handle_base {
#include <types_internal.h>
#include <context_mgr.h>
#include <db_mgr.h>
-#include <system_info.h>
+#include "../shared/system_info.h"
#include "media_stats_types.h"
#include "db_handle.h"
#include <string>
#include <json.h>
-#include <db_handle_base.h>
+#include "../shared/db_handle_base.h"
namespace ctx {
class media_db_handle : public stats_db_handle_base {
#include <time.h>
#include <types_internal.h>
#include <db_mgr.h>
-#include <system_info.h>
+#include "../shared/system_info.h"
#include "media_stats_types.h"
#include "db_handle.h"
#include "media_content_monitor.h"
#ifndef __CONTEXT_MEDIA_STATS_TYPES_H__
#define __CONTEXT_MEDIA_STATS_TYPES_H__
-#include <common_types.h>
+#include "../shared/common_types.h"
#define MEDIA_HISTORY_PRIV "mediahistory.read"
#define MEDIA_SUBJ_PEAK_TIME_FOR_MUSIC "stats/music/peak_time"
#include <string>
#include <json.h>
-#include <db_handle_base.h>
+#include "../shared/db_handle_base.h"
namespace ctx {
class social_db_handle : public stats_db_handle_base {
#ifndef __CONTEXT_SOCIAL_STATS_TYPES_H__
#define __CONTEXT_SOCIAL_STATS_TYPES_H__
-#include <common_types.h>
+#include "../shared/common_types.h"
#define SOCIAL_HISTORY_PRIV "callhistory.read"
#define SOCIAL_SUBJ_FREQ_ADDRESS "stats/contact/often"