Add Privacy-Guard
[platform/core/security/privacy-guard.git] / client / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 #PROJECT(privacy-guard-client)
3
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})
9
10 INCLUDE(FindPkgConfig)
11 pkg_check_modules(privacy-guard-client REQUIRED dlog sqlite3 dbus-1 dbus-glib-1 db-util pkgmgr-info libtzplatform-config)
12
13 FOREACH(flag ${pkgs_CFLAGS})
14         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
15 ENDFOREACH(flag)
16
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")
25
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/")
31
32 ## Additional flag
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)
38 IF(FILTER_LISTED_PKG)
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)
44 IF(PRIVACY_POPUP)
45         MESSAGE("PRIVACY_POPUP IS ENABLED")
46         ADD_DEFINITIONS("-D__PRIVACY_POPUP")
47 ENDIF(PRIVACY_POPUP)
48
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
60         )
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
65         )
66 SET(PRIVACY_GUARD_EXTERN_HEADERS
67         ${extern_include_dir}/privacy_guard_client.h
68         ${extern_include_dir}/privacy_guard_client_types.h
69         )
70
71 SET(PRIVACY_GUARD_CLIENT_LDFLAGS " -module -avoid-version ")
72 SET(PRIVACY_GUARD_CLIENT_CFLAGS  " ${CFLAGS} -fPIC ")
73
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 ###################################################################################################
81
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)
86
87 CONFIGURE_FILE(../privacy-guard-client.pc.in privacy-guard-client.pc @ONLY)
88
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)