• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021-2025 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/config/components/idl_tool/idl.gni")
15import("//build/ohos.gni")
16import("//foundation/filemanagement/user_file_service/filemanagement_aafwk.gni")
17
18group("user_file_managers") {
19  deps = [
20    ":external_file_manager_hap",
21    ":file_access_service",
22    ":file_access_service.cfg",
23    ":file_access_service_profile",
24  ]
25}
26
27ohos_hap("external_file_manager_hap") {
28  hap_profile = "file_extension_hap/entry/src/main/module.json"
29  deps = [
30    ":external_file_manager_js_assets",
31    ":external_file_manager_resources",
32  ]
33  publicity_file = "../publicity.xml"
34  certificate_profile = "signature/fileextension.p7b"
35  hap_name = "external_file_manager"
36  subsystem_name = "filemanagement"
37  part_name = "user_file_service"
38  module_install_dir = "app/com.ohos.UserFile.ExternalFileManager"
39}
40
41ohos_js_assets("external_file_manager_js_assets") {
42  hap_profile = "file_extension_hap/entry/src/main/module.json"
43  ets2abc = true
44  source_dir = "file_extension_hap/entry/src/main/ets"
45}
46
47ohos_app_scope("external_file_manager_app_profile") {
48  app_profile = "file_extension_hap/AppScope/app.json"
49  sources = [ "file_extension_hap/AppScope/resources" ]
50}
51
52ohos_sa_profile("file_access_service_profile") {
53  sources = [ "5010.json" ]
54  part_name = "user_file_service"
55}
56
57ohos_prebuilt_etc("file_access_service.cfg") {
58  source = "file_access_service.cfg"
59  relative_install_dir = "init"
60  subsystem_name = "filemanagement"
61  part_name = "user_file_service"
62}
63
64config("ability_config") {
65  visibility = [ ":*" ]
66  include_dirs = [
67    "native/file_access_service/include",
68    "${user_file_service_path}/utils",
69    "${user_file_service_path}/interfaces/inner_api/file_access/include",
70    "${user_file_service_path}/frameworks/js/napi/file_access_module",
71  ]
72}
73
74config("ability_public_config") {
75  visibility = [ ":*" ]
76  include_dirs = [
77    "native/file_access_service/include",
78    "${user_file_service_path}/utils",
79    "${user_file_service_path}/interfaces/kits/js/src/common",
80  ]
81}
82
83ohos_resources("external_file_manager_resources") {
84  sources = [ "file_extension_hap/entry/src/main/resources" ]
85  deps = [ ":external_file_manager_app_profile" ]
86  hap_profile = "file_extension_hap/entry/src/main/module.json"
87}
88
89idl_gen_interface("IFile_Access_Service_Base") {
90  sources = [ "IFileAccessServiceBase.idl" ]
91  sources_callback = [ "IFileAccessObserver.idl" ]
92  sources_common = [ "NotifyType.idl" ]
93  hitrace = "HITRACE_TAG_FILEMANAGEMENT"
94  log_domainid = "0xD00430A"
95  log_tag = "filemanagement"
96}
97
98config("IFile_Access_Service_Base_config") {
99  visibility = [ ":*" ]
100  include_dirs = [
101    "native/file_access_service/include",
102    "${user_file_service_path}/interfaces/inner_api/file_access/include",
103    "${user_file_service_path}/utils",
104    "${user_file_service_path}/interfaces/kits/js/src/common",
105    "${target_gen_dir}",
106  ]
107}
108
109ohos_source_set("file_access_service_base_source") {
110  sanitize = {
111    cfi = true
112    cfi_cross_dso = true
113    debug = false
114  }
115  public_configs = [ ":IFile_Access_Service_Base_config" ]
116  output_values = get_target_outputs(":IFile_Access_Service_Base")
117  sources = filter_include(output_values, [ "*.cpp" ])
118  deps = [
119    ":IFile_Access_Service_Base",
120    "${user_file_service_path}/interfaces/inner_api/file_access:file_access_ext_base_include",
121  ]
122
123  external_deps = [
124    "ability_base:want",
125    "ability_base:zuri",
126    "ability_runtime:ability_connect_callback_stub",
127    "c_utils:utils",
128    "hilog:libhilog",
129    "hitrace:hitrace_meter",
130    "ipc:ipc_core",
131    "ipc:ipc_single",
132  ]
133
134  subsystem_name = "filemanagement"
135  part_name = "user_file_service"
136}
137
138ohos_source_set("file_access_service_base_include") {
139  sanitize = {
140    cfi = true
141    cfi_cross_dso = true
142    debug = false
143  }
144  public_configs = [ ":IFile_Access_Service_Base_config" ]
145  deps = [
146    ":IFile_Access_Service_Base",
147    "${user_file_service_path}/interfaces/inner_api/file_access:file_access_ext_base_include",
148  ]
149
150  external_deps = [
151    "ability_base:want",
152    "ability_base:zuri",
153    "ability_runtime:ability_connect_callback_stub",
154    "c_utils:utils",
155    "hilog:libhilog",
156    "hitrace:hitrace_meter",
157    "ipc:ipc_core",
158    "ipc:ipc_single",
159  ]
160
161  subsystem_name = "filemanagement"
162  part_name = "user_file_service"
163}
164
165ohos_shared_library("file_access_service") {
166  branch_protector_ret = "pac_ret"
167  sanitize = {
168    integer_overflow = true
169    ubsan = true
170    boundary_sanitize = true
171    cfi = true
172    cfi_cross_dso = true
173    debug = false
174  }
175
176  include_dirs = [
177    "${user_file_service_path}/services/native/file_access_service/include",
178    "${user_file_service_path}/interfaces/inner_api/file_access/include",
179  ]
180  shlib_type = "sa"
181  sources = [
182    "${user_file_service_path}/interfaces/inner_api/file_access/src/uri_ext.cpp",
183    "native/file_access_service/src/file_access_ext_connection.cpp",
184    "native/file_access_service/src/file_access_service.cpp",
185    "native/file_access_service/src/file_access_service_client.cpp",
186  ]
187  configs = [ ":ability_config" ]
188  version_script = "libfile_access_service.map"
189  public_configs = [ ":ability_public_config" ]
190
191  deps = [
192    ":file_access_service_base_source",
193    "${user_file_service_path}/interfaces/inner_api/file_access:file_access_ext_base_include",
194    "${user_file_service_path}/interfaces/inner_api/file_access:file_access_extension_ability_kit",
195  ]
196
197  external_deps = [
198    "ability_base:want",
199    "ability_base:zuri",
200    "ability_runtime:ability_connect_callback_stub",
201    "ability_runtime:ability_manager",
202    "ability_runtime:napi_common",
203    "access_token:libaccesstoken_sdk",
204    "access_token:libtokenid_sdk",
205    "bundle_framework:appexecfwk_core",
206    "c_utils:utils",
207    "hilog:libhilog",
208    "hitrace:hitrace_meter",
209    "ipc:ipc_core",
210    "safwk:system_ability_fwk",
211    "samgr:samgr_proxy",
212  ]
213
214  subsystem_name = "filemanagement"
215  part_name = "user_file_service"
216}
217