1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 #PROJECT(privacy-guard-client)
4 SET(CMAKE_INSTALL_PREFIX /usr)
5 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
6 SET(EXEC_PREFIX "\${prefix}")
7 SET(LIBDIR ${LIB_INSTALL_DIR})
8 SET(INCLUDEDIR ${INCLUDE_INSTALL_DIR})
10 INCLUDE(FindPkgConfig)
11 pkg_check_modules(privacy-guard-client REQUIRED dlog sqlite3 dbus-1 dbus-glib-1 db-util pkgmgr-info libtzplatform-config)
13 FOREACH(flag ${pkgs_CFLAGS})
14 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
17 SET(CMAKE_C_FLAGS_PROFILING " -g -pg")
18 SET(CMAKE_CXX_FLAGS_PROFILING " -std=c++0x -g -pg")
19 SET(CMAKE_C_FLAGS_DEBUG " -g")
20 SET(CMAKE_CXX_FLAGS_DEBUG " -std=c++0x -g")
21 SET(CMAKE_C_FLAGS_RELEASE " -g")
22 SET(CMAKE_CXX_FLAGS_RELEASE " -std=c++0x -g")
23 SET(CMAKE_C_FLAGS_CCOV " -g --coverage")
24 SET(CMAKE_CXX_FLAGS_CCOV " -std=c++0x -g --coverage")
26 SET(client_src_dir "${CMAKE_SOURCE_DIR}/client/src")
27 SET(client_include_dir "${CMAKE_SOURCE_DIR}/client/inc/")
28 SET(common_src_dir "${CMAKE_SOURCE_DIR}/common/src/")
29 SET(common_include_dir "${CMAKE_SOURCE_DIR}/common/inc/")
30 SET(extern_include_dir "${CMAKE_SOURCE_DIR}/include/")
33 ADD_DEFINITIONS("-fvisibility=hidden")
34 ADD_DEFINITIONS("-Wall -Werror")
35 ADD_DEFINITIONS("-DDLOG_ERROR_ENABLED")
36 ADD_DEFINITIONS("-D_PRIVACY_GUARD_DEBUG")
37 OPTION (FILTER_LISTED_PKG "FILTER PKG BY LIST" ON)
39 MESSAGE("FILTER PKGs BY FILTERING LIST")
40 ADD_DEFINITIONS("-D__FILTER_LISTED_PKG")
41 ENDIF(FILTER_LISTED_PKG)
42 ## SET PRIVACY_POPUP FLAG
43 OPTION (PRIVACY_POPUP "PRIVACY_POPUP" ON)
45 MESSAGE("PRIVACY_POPUP IS ENABLED")
46 ADD_DEFINITIONS("-D__PRIVACY_POPUP")
49 ###################################################################################################
50 ## for libprivacy-guard-client (executable)
51 INCLUDE_DIRECTORIES(${pkgs_INCLUDE_DIRS} ${client_include_dir} ${common_include_dir} ${extern_include_dir})
52 SET(PRIVACY_GUARD_CLIENT_SOURCES
53 ${common_src_dir}/SocketConnection.cpp
54 ${common_src_dir}/SocketStream.cpp
55 ${common_src_dir}/PrivacyIdInfo.cpp
56 ${client_src_dir}/SocketClient.cpp
57 ${client_src_dir}/PrivacyChecker.cpp
58 ${client_src_dir}/PrivacyGuardClient.cpp
59 ${client_src_dir}/privacy_guard_client.cpp
61 SET(PRIVACY_GUARD_CLIENT_HEADERS
62 ${client_include_dir}/PrivacyChecker.h
63 ${client_include_dir}/PrivacyGuardClient.h
64 ${client_include_dir}/privacy_guard_client_internal.h
66 SET(PRIVACY_GUARD_EXTERN_HEADERS
67 ${extern_include_dir}/privacy_guard_client.h
68 ${extern_include_dir}/privacy_guard_client_types.h
71 SET(PRIVACY_GUARD_CLIENT_LDFLAGS " -module -avoid-version ")
72 SET(PRIVACY_GUARD_CLIENT_CFLAGS " ${CFLAGS} -fPIC ")
74 ADD_DEFINITIONS("-DLOG_TAG=\"PRIVACY-GUARD-CLIENT\"")
75 ADD_LIBRARY(privacy-guard-client SHARED ${PRIVACY_GUARD_CLIENT_SOURCES})
76 TARGET_LINK_LIBRARIES(privacy-guard-client ${pkgs_LDFLAGS} ${pkgs_LIBRARIES})
77 SET_TARGET_PROPERTIES(privacy-guard-client PROPERTIES COMPILE_FLAGS "${PRIVACY_GUARD_CLIENT_CFLAGS}")
78 SET_TARGET_PROPERTIES(privacy-guard-client PROPERTIES SOVERSION ${API_VERSION})
79 SET_TARGET_PROPERTIES(privacy-guard-client PROPERTIES VERSION ${VERSION})
80 ###################################################################################################
82 SET(PC_NAME privacy-guard-client)
83 SET(PC_DESCRIPTION "Privacy Guard Client API")
84 SET(PC_LDFLAGS -lprivacy-guard-client)
85 SET(PC_CFLAGS -I\${includedir}/privacy_guard)
87 CONFIGURE_FILE(../privacy-guard-client.pc.in privacy-guard-client.pc @ONLY)
89 INSTALL(TARGETS privacy-guard-client DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
90 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/privacy-guard-client.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
91 INSTALL(FILES ${PRIVACY_GUARD_CLIENT_HEADERS} DESTINATION ${INCLUDE_INSTALL_DIR}/privacy_guard/client)
92 INSTALL(FILES ${PRIVACY_GUARD_EXTERN_HEADERS} DESTINATION ${INCLUDE_INSTALL_DIR}/privacy_guard)