1# Copyright (c) 2023 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6#     http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14import("//build/ohos.gni")
15import("../../../dlp_permission_service.gni")
16
17ohos_prebuilt_etc("dlp_permission_service.rc") {
18  source = "dlp_permission_service.cfg"
19  relative_install_dir = "init"
20  subsystem_name = "security"
21  part_name = "dlp_permission_service"
22}
23
24ohos_static_library("dlp_hex_string_static") {
25  branch_protector_ret = "pac_ret"
26
27  sanitize = {
28    cfi = true
29    cfi_cross_dso = true
30    debug = false
31  }
32
33  subsystem_name = "security"
34  part_name = "dlp_permission_service"
35
36  include_dirs = [
37    "${dlp_root_dir}/interfaces/inner_api/dlp_permission/include",
38    "${dlp_root_dir}/frameworks/common/include",
39  ]
40
41  sources = [ "${dlp_root_dir}/frameworks/common/src/hex_string.cpp" ]
42
43  configs = [ "${dlp_root_dir}/config:coverage_flags" ]
44
45  cflags_cc = [ "-DHILOG_ENABLE" ]
46
47  external_deps = [ "hilog:libhilog" ]
48}
49
50ohos_static_library("dlp_permission_serializer_static") {
51  branch_protector_ret = "pac_ret"
52
53  sanitize = {
54    cfi = true
55    cfi_cross_dso = true
56    debug = false
57  }
58
59  subsystem_name = "security"
60  part_name = "dlp_permission_service"
61
62  include_dirs = [
63    "sa_common",
64    "${dlp_root_dir}/interfaces/inner_api/dlp_permission/include",
65    "${dlp_root_dir}/frameworks/common/include",
66    "${dlp_root_dir}/frameworks/dlp_permission/include",
67  ]
68
69  sources = [ "sa_common/dlp_permission_serializer.cpp" ]
70
71  cflags_cc = [ "-DHILOG_ENABLE" ]
72
73  configs = [ "${dlp_root_dir}/config:coverage_flags" ]
74
75  deps = [ ":dlp_hex_string_static" ]
76
77  external_deps = [
78    "c_utils:utils",
79    "hilog:libhilog",
80    "json:nlohmann_json_static",
81    "os_account:os_account_innerkits",
82  ]
83
84  if (dlp_credential_enable == true) {
85    external_deps += [ "dlp_credential_service:dlp_credential_sdk" ]
86  } else {
87    include_dirs += [ "mock" ]
88  }
89}
90
91ohos_shared_library("dlp_permission_service") {
92  branch_protector_ret = "pac_ret"
93
94  sanitize = {
95    cfi = true
96    cfi_cross_dso = true
97    debug = false
98  }
99
100  subsystem_name = "security"
101  part_name = "dlp_permission_service"
102
103  include_dirs = [
104    "adapt",
105    "callback/dlp_sandbox_change_callback",
106    "callback/open_dlp_file_callback",
107    "sa_main",
108    "sa_common",
109    "storage/include",
110    "${dlp_root_dir}/frameworks/common/include",
111    "${dlp_root_dir}/frameworks/dlp_permission/include",
112    "${dlp_root_dir}/interfaces/inner_api/dlp_parse/include",
113    "${dlp_root_dir}/interfaces/inner_api/dlp_permission/include",
114  ]
115
116  sources = [
117    "${dlp_root_dir}/frameworks/common/src/cert_parcel.cpp",
118    "${dlp_root_dir}/frameworks/common/src/permission_policy.cpp",
119    "${dlp_root_dir}/frameworks/common/src/retention_sandbox_info.cpp",
120    "${dlp_root_dir}/frameworks/common/src/visited_dlp_file_info.cpp",
121    "${dlp_root_dir}/frameworks/dlp_permission/src/auth_user_info_parcel.cpp",
122    "${dlp_root_dir}/frameworks/dlp_permission/src/dlp_permission_info_parcel.cpp",
123    "${dlp_root_dir}/frameworks/dlp_permission/src/dlp_policy_parcel.cpp",
124    "${dlp_root_dir}/frameworks/dlp_permission/src/dlp_sandbox_callback_info_parcel.cpp",
125    "${dlp_root_dir}/frameworks/dlp_permission/src/open_dlp_file_callback_info_parcel.cpp",
126    "adapt/account_adapt.cpp",
127    "adapt/app_state_observer.cpp",
128    "adapt/app_uninstall_observer.cpp",
129    "adapt/file_operator.cpp",
130    "adapt/retention_file_manager.cpp",
131    "adapt/sandbox_json_manager.cpp",
132    "adapt/visit_record_file_manager.cpp",
133    "adapt/visit_record_json_manager.cpp",
134    "callback/dlp_sandbox_change_callback/dlp_sandbox_change_callback_death_recipient.cpp",
135    "callback/dlp_sandbox_change_callback/dlp_sandbox_change_callback_manager.cpp",
136    "callback/dlp_sandbox_change_callback/dlp_sandbox_change_callback_proxy.cpp",
137    "callback/open_dlp_file_callback/open_dlp_file_callback_death_recipient.cpp",
138    "callback/open_dlp_file_callback/open_dlp_file_callback_manager.cpp",
139    "callback/open_dlp_file_callback/open_dlp_file_callback_proxy.cpp",
140    "sa_common/bundle_manager_adapter.cpp",
141    "sa_main/dlp_credential.cpp",
142    "sa_main/dlp_permission_async_proxy.cpp",
143    "sa_main/dlp_permission_service.cpp",
144    "sa_main/dlp_permission_stub.cpp",
145    "storage/src/dlp_kv_data_storage.cpp",
146    "storage/src/sandbox_config_kv_data_storage.cpp",
147  ]
148
149  cflags_cc = [ "-DHILOG_ENABLE" ]
150  cflags = [ "-DHILOG_ENABLE" ]
151
152  if (build_variant == "user") {
153    cflags_cc += [ "-DDLP_DEBUG_ENABLE=0" ]
154    cflags += [ "-DDLP_DEBUG_ENABLE=0" ]
155  } else if (build_variant == "root") {
156    cflags_cc += [ "-DDLP_DEBUG_ENABLE=1" ]
157    cflags += [ "-DDLP_DEBUG_ENABLE=1" ]
158  } else {
159    cflags_cc += [ "-DDLP_DEBUG_ENABLE=1" ]
160    cflags += [ "-DDLP_DEBUG_ENABLE=1" ]
161  }
162
163  if (dlp_permission_service_gathering_policy) {
164    cflags_cc += [ "-DDLP_GATHERING_SANDBOX" ]
165    cflags += [ "-DDLP_GATHERING_SANDBOX" ]
166  }
167
168  deps = [
169    ":dlp_hex_string_static",
170    ":dlp_permission_serializer_static",
171    ":dlp_permission_service.rc",
172  ]
173
174  deps += [ "etc:param_files" ]
175
176  configs = [ "${dlp_root_dir}/config:coverage_flags" ]
177
178  external_deps = [
179    "ability_base:want",
180    "ability_runtime:app_manager",
181    "access_token:libaccesstoken_sdk",
182    "bundle_framework:appexecfwk_base",
183    "bundle_framework:appexecfwk_core",
184    "c_utils:utils",
185    "common_event_service:cesfwk_core",
186    "common_event_service:cesfwk_innerkits",
187    "config_policy:configpolicy_util",
188    "hilog:libhilog",
189    "hisysevent:libhisysevent",
190    "init:libbegetutil",
191    "ipc:ipc_core",
192    "json:nlohmann_json_static",
193    "kv_store:distributeddata_inner",
194    "os_account:libaccountkits",
195    "os_account:os_account_innerkits",
196    "safwk:system_ability_fwk",
197    "samgr:samgr_proxy",
198  ]
199
200  if (dlp_credential_enable == true) {
201    cflags_cc += [ "-DSUPPORT_DLP_CREDENTIAL" ]
202    external_deps += [ "dlp_credential_service:dlp_credential_sdk" ]
203  } else {
204    include_dirs += [ "mock" ]
205    sources += [
206      "mock/dlp_credential_service.c",
207      "mock/mock_utils.cpp",
208    ]
209  }
210}
211