Redesign policy management logic
[platform/core/security/vist.git] / src / vist / CMakeLists.txt
1 #  Copyright (c) 2019 Samsung Electronics Co., Ltd All Rights Reserved
2 #
3 #  Licensed under the Apache License, Version 2.0 (the "License");
4 #  you may not use this file except in compliance with the License.
5 #  You may obtain a copy of the License at
6 #
7 #      http://www.apache.org/licenses/LICENSE-2.0
8 #
9 #  Unless required by applicable law or agreed to in writing, software
10 #  distributed under the License is distributed on an "AS IS" BASIS,
11 #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 #  See the License for the specific language governing permissions and
13 #  limitations under the License
14
15 SET(TARGET_VIST_CLI vist-cli)
16 SET(TARGET_VIST_DAEMON vistd)
17 SET(TARGET_VIST_TEST vist-test)
18
19 SET(${TARGET_VIST_LIB}_SRCS "")
20 SET(${TARGET_VIST_LIB}_TESTS "")
21 SET(${TARGET_VIST_COMMON_LIB}_SRCS "")
22
23 IF(DEFINED GBS_BUILD)
24         SET(DEPENDENCY sqlite3
25                                    dlog
26                                    gflags
27                                    libsystemd-daemon)
28         PKG_CHECK_MODULES(VIST_COMMON_DEPS REQUIRED ${DEPENDENCY})
29         INCLUDE_DIRECTORIES(SYSTEM ${VIST_COMMON_DEPS_INCLUDE_DIRS})
30         ADD_DEFINITIONS(-DTIZEN="TIZEN")
31 ENDIF(DEFINED GBS_BUILD)
32
33 INCLUDE_DIRECTORIES(SYSTEM . common ${VIST_COMMON_DEPS_INCLUDE_DIRS})
34
35 ADD_DEFINITIONS(-DDB_PATH="${DB_INSTALL_DIR}/.vist.db"
36                                 -DDEFAULT_POLICY_ADMIN="${DEFAULT_POLICY_ADMIN}"
37                                 -DPLUGIN_INSTALL_DIR="${PLUGIN_INSTALL_DIR}"
38                                 -DTABLE_INSTALL_DIR="${TABLE_INSTALL_DIR}"
39                                 -DSCRIPT_INSTALL_DIR="${SCRIPT_INSTALL_DIR}")
40
41 ADD_DEFINITIONS("-Werror")
42 ADD_DEFINITIONS("-Wall")
43 ADD_DEFINITIONS("-Wextra")
44 ADD_DEFINITIONS("-pedantic")
45 ADD_DEFINITIONS("-pedantic-errors")
46
47 # common
48 ADD_SUBDIRECTORY(common)
49 ADD_SUBDIRECTORY(database)
50 ADD_SUBDIRECTORY(event)
51 ADD_SUBDIRECTORY(json)
52 ADD_SUBDIRECTORY(klass)
53 ADD_SUBDIRECTORY(logger)
54 ADD_SUBDIRECTORY(query-builder)
55 ADD_SUBDIRECTORY(sdk)
56
57 # rmi
58 ADD_SUBDIRECTORY(rmi)
59
60 # policy
61 ADD_SUBDIRECTORY(policy)
62
63 # client
64 ADD_SUBDIRECTORY(client)
65
66 # service
67 ADD_SUBDIRECTORY(notification)
68 ADD_SUBDIRECTORY(service)
69 ADD_SUBDIRECTORY(table)
70
71 ADD_LIBRARY(${TARGET_VIST_COMMON_LIB} STATIC ${${TARGET_VIST_COMMON_LIB}_SRCS})
72
73 IF(DEFINED GBS_BUILD)
74         TARGET_LINK_LIBRARIES(${TARGET_VIST_COMMON_LIB} ${VIST_COMMON_DEPS_LIBRARIES}
75                                                                                                         pthread glog gflags boost_system)
76 ELSE(DEFINED GBS_BUILD)
77         TARGET_LINK_LIBRARIES(${TARGET_VIST_COMMON_LIB} pthread glog gflags boost_system systemd)
78 ENDIF(DEFINED GBS_BUILD)
79
80 ADD_LIBRARY(${TARGET_VIST_LIB} STATIC ${${TARGET_VIST_LIB}_SRCS})
81 TARGET_LINK_LIBRARIES(${TARGET_VIST_LIB} ${TARGET_VIST_COMMON_LIB}
82                                                                                  ${TARGET_VIST_POLICY_LIB}
83                                                                                  ${TARGET_OSQUERY_LIB}
84                                                                                  vist-rmi)
85
86 ADD_EXECUTABLE(${TARGET_VIST_DAEMON} main/main.cpp)
87 TARGET_LINK_LIBRARIES(${TARGET_VIST_DAEMON} ${TARGET_VIST_LIB})
88 TARGET_LINK_WHOLE(${TARGET_VIST_DAEMON} ${TARGET_OSQUERY_LIB})
89 SET_TARGET_PROPERTIES(${TARGET_VIST_DAEMON} PROPERTIES COMPILE_FLAGS "-fPIE")
90 SET_TARGET_PROPERTIES(${TARGET_VIST_DAEMON} PROPERTIES LINK_FLAGS "-pie")
91 INSTALL(TARGETS ${TARGET_VIST_DAEMON}
92                 DESTINATION ${CMAKE_INSTALL_BINDIR}
93                 PERMISSIONS OWNER_READ
94                                         OWNER_WRITE
95                                         OWNER_EXECUTE
96                                         GROUP_READ
97                                         GROUP_EXECUTE
98                                         WORLD_READ
99                                         WORLD_EXECUTE)
100
101 ADD_EXECUTABLE(${TARGET_VIST_CLI} main/cli.cpp)
102 TARGET_LINK_LIBRARIES(${TARGET_VIST_CLI} ${TARGET_VIST_CLIENT_LIB})
103 SET_TARGET_PROPERTIES(${TARGET_VIST_CLI} PROPERTIES COMPILE_FLAGS "-fPIE")
104 SET_TARGET_PROPERTIES(${TARGET_VIST_CLI} PROPERTIES LINK_FLAGS "-pie")
105 INSTALL(TARGETS ${TARGET_VIST_CLI}
106                 DESTINATION ${CMAKE_INSTALL_BINDIR}
107                 PERMISSIONS OWNER_READ
108                                         OWNER_WRITE
109                                         OWNER_EXECUTE
110                                         GROUP_READ
111                                         GROUP_EXECUTE
112                                         WORLD_READ
113                                         WORLD_EXECUTE)
114
115 ADD_EXECUTABLE(${TARGET_VIST_TEST} main/tests.cpp
116                                                                    ${${TARGET_VIST_LIB}_TESTS})
117 TARGET_LINK_LIBRARIES(${TARGET_VIST_TEST} ${TARGET_VIST_LIB}
118                                                                                   ${TARGET_VIST_CLIENT_LIB}
119                                                                                   ${TARGET_VIST_COMMON_LIB}
120                                                                                   ${TARGET_VIST_POLICY_LIB}
121                                                                                   vist-rmi-static
122                                                                                   gtest)
123 TARGET_LINK_WHOLE(${TARGET_VIST_TEST} ${TARGET_OSQUERY_LIB})
124 ADD_TEST(${TARGET_VIST_TEST} ${TARGET_VIST_TEST})
125 INSTALL(TARGETS ${TARGET_VIST_TEST}
126                 DESTINATION ${CMAKE_INSTALL_BINDIR}
127                 PERMISSIONS OWNER_READ
128                                         OWNER_WRITE
129                                         OWNER_EXECUTE
130                                         GROUP_READ
131                                         GROUP_EXECUTE
132                                         WORLD_READ
133                                         WORLD_EXECUTE)