18d05d8e7Sopenharmony_ci# Copyright (c) 2021-2024 Huawei Device Co., Ltd.
28d05d8e7Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
38d05d8e7Sopenharmony_ci# you may not use this file except in compliance with the License.
48d05d8e7Sopenharmony_ci# You may obtain a copy of the License at
58d05d8e7Sopenharmony_ci#
68d05d8e7Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
78d05d8e7Sopenharmony_ci#
88d05d8e7Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
98d05d8e7Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
108d05d8e7Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
118d05d8e7Sopenharmony_ci# See the License for the specific language governing permissions and
128d05d8e7Sopenharmony_ci# limitations under the License.
138d05d8e7Sopenharmony_ci
148d05d8e7Sopenharmony_ciimport("//build/ohos.gni")
158d05d8e7Sopenharmony_ciimport("//foundation/filemanagement/user_file_service/filemanagement_aafwk.gni")
168d05d8e7Sopenharmony_ci
178d05d8e7Sopenharmony_cigroup("user_file_managers") {
188d05d8e7Sopenharmony_ci  deps = [
198d05d8e7Sopenharmony_ci    ":external_file_manager_hap",
208d05d8e7Sopenharmony_ci    ":file_access_service",
218d05d8e7Sopenharmony_ci    ":file_access_service.cfg",
228d05d8e7Sopenharmony_ci    ":file_access_service_profile",
238d05d8e7Sopenharmony_ci  ]
248d05d8e7Sopenharmony_ci}
258d05d8e7Sopenharmony_ci
268d05d8e7Sopenharmony_ciohos_hap("external_file_manager_hap") {
278d05d8e7Sopenharmony_ci  hap_profile = "file_extension_hap/entry/src/main/module.json"
288d05d8e7Sopenharmony_ci  deps = [
298d05d8e7Sopenharmony_ci    ":external_file_manager_js_assets",
308d05d8e7Sopenharmony_ci    ":external_file_manager_resources",
318d05d8e7Sopenharmony_ci  ]
328d05d8e7Sopenharmony_ci  publicity_file = "../publicity.xml"
338d05d8e7Sopenharmony_ci  certificate_profile = "signature/fileextension.p7b"
348d05d8e7Sopenharmony_ci  hap_name = "external_file_manager"
358d05d8e7Sopenharmony_ci  subsystem_name = "filemanagement"
368d05d8e7Sopenharmony_ci  part_name = "user_file_service"
378d05d8e7Sopenharmony_ci  module_install_dir = "app/com.ohos.UserFile.ExternalFileManager"
388d05d8e7Sopenharmony_ci}
398d05d8e7Sopenharmony_ci
408d05d8e7Sopenharmony_ciohos_js_assets("external_file_manager_js_assets") {
418d05d8e7Sopenharmony_ci  hap_profile = "file_extension_hap/entry/src/main/module.json"
428d05d8e7Sopenharmony_ci  ets2abc = true
438d05d8e7Sopenharmony_ci  source_dir = "file_extension_hap/entry/src/main/ets"
448d05d8e7Sopenharmony_ci}
458d05d8e7Sopenharmony_ci
468d05d8e7Sopenharmony_ciohos_app_scope("external_file_manager_app_profile") {
478d05d8e7Sopenharmony_ci  app_profile = "file_extension_hap/AppScope/app.json"
488d05d8e7Sopenharmony_ci  sources = [ "file_extension_hap/AppScope/resources" ]
498d05d8e7Sopenharmony_ci}
508d05d8e7Sopenharmony_ci
518d05d8e7Sopenharmony_ciohos_sa_profile("file_access_service_profile") {
528d05d8e7Sopenharmony_ci  sources = [ "5010.json" ]
538d05d8e7Sopenharmony_ci  part_name = "user_file_service"
548d05d8e7Sopenharmony_ci}
558d05d8e7Sopenharmony_ci
568d05d8e7Sopenharmony_ciohos_prebuilt_etc("file_access_service.cfg") {
578d05d8e7Sopenharmony_ci  source = "file_access_service.cfg"
588d05d8e7Sopenharmony_ci  relative_install_dir = "init"
598d05d8e7Sopenharmony_ci  subsystem_name = "filemanagement"
608d05d8e7Sopenharmony_ci  part_name = "user_file_service"
618d05d8e7Sopenharmony_ci}
628d05d8e7Sopenharmony_ci
638d05d8e7Sopenharmony_ciconfig("ability_config") {
648d05d8e7Sopenharmony_ci  visibility = [ ":*" ]
658d05d8e7Sopenharmony_ci  include_dirs = [
668d05d8e7Sopenharmony_ci    "native/file_access_service/include",
678d05d8e7Sopenharmony_ci    "${user_file_service_path}/utils",
688d05d8e7Sopenharmony_ci    "${user_file_service_path}/interfaces/inner_api/file_access/include",
698d05d8e7Sopenharmony_ci    "${user_file_service_path}/frameworks/js/napi/file_access_module",
708d05d8e7Sopenharmony_ci  ]
718d05d8e7Sopenharmony_ci}
728d05d8e7Sopenharmony_ci
738d05d8e7Sopenharmony_ciconfig("ability_public_config") {
748d05d8e7Sopenharmony_ci  visibility = [ ":*" ]
758d05d8e7Sopenharmony_ci  include_dirs = [
768d05d8e7Sopenharmony_ci    "native/file_access_service/include",
778d05d8e7Sopenharmony_ci    "${user_file_service_path}/utils",
788d05d8e7Sopenharmony_ci    "${user_file_service_path}/interfaces/kits/js/src/common",
798d05d8e7Sopenharmony_ci  ]
808d05d8e7Sopenharmony_ci}
818d05d8e7Sopenharmony_ci
828d05d8e7Sopenharmony_ciohos_resources("external_file_manager_resources") {
838d05d8e7Sopenharmony_ci  sources = [ "file_extension_hap/entry/src/main/resources" ]
848d05d8e7Sopenharmony_ci  deps = [ ":external_file_manager_app_profile" ]
858d05d8e7Sopenharmony_ci  hap_profile = "file_extension_hap/entry/src/main/module.json"
868d05d8e7Sopenharmony_ci}
878d05d8e7Sopenharmony_ci
888d05d8e7Sopenharmony_ciohos_shared_library("file_access_service") {
898d05d8e7Sopenharmony_ci  branch_protector_ret = "pac_ret"
908d05d8e7Sopenharmony_ci  sanitize = {
918d05d8e7Sopenharmony_ci    integer_overflow = true
928d05d8e7Sopenharmony_ci    ubsan = true
938d05d8e7Sopenharmony_ci    boundary_sanitize = true
948d05d8e7Sopenharmony_ci    cfi = true
958d05d8e7Sopenharmony_ci    cfi_cross_dso = true
968d05d8e7Sopenharmony_ci    debug = false
978d05d8e7Sopenharmony_ci  }
988d05d8e7Sopenharmony_ci
998d05d8e7Sopenharmony_ci  include_dirs = [
1008d05d8e7Sopenharmony_ci    "${user_file_service_path}/services/native/file_access_service/include",
1018d05d8e7Sopenharmony_ci    "${user_file_service_path}/interfaces/inner_api/file_access/include",
1028d05d8e7Sopenharmony_ci  ]
1038d05d8e7Sopenharmony_ci  shlib_type = "sa"
1048d05d8e7Sopenharmony_ci  sources = [
1058d05d8e7Sopenharmony_ci    "native/file_access_service/src/file_access_ext_connection.cpp",
1068d05d8e7Sopenharmony_ci    "native/file_access_service/src/file_access_service.cpp",
1078d05d8e7Sopenharmony_ci    "native/file_access_service/src/file_access_service_proxy.cpp",
1088d05d8e7Sopenharmony_ci    "native/file_access_service/src/file_access_service_stub.cpp",
1098d05d8e7Sopenharmony_ci    "native/file_access_service/src/observer_callback_proxy.cpp",
1108d05d8e7Sopenharmony_ci    "native/file_access_service/src/observer_callback_stub.cpp",
1118d05d8e7Sopenharmony_ci  ]
1128d05d8e7Sopenharmony_ci  configs = [ ":ability_config" ]
1138d05d8e7Sopenharmony_ci  version_script = "libfile_access_service.map"
1148d05d8e7Sopenharmony_ci  public_configs = [ ":ability_public_config" ]
1158d05d8e7Sopenharmony_ci
1168d05d8e7Sopenharmony_ci  deps = [ "${user_file_service_path}/interfaces/inner_api/file_access:file_access_extension_ability_kit" ]
1178d05d8e7Sopenharmony_ci
1188d05d8e7Sopenharmony_ci  external_deps = [
1198d05d8e7Sopenharmony_ci    "ability_base:want",
1208d05d8e7Sopenharmony_ci    "ability_base:zuri",
1218d05d8e7Sopenharmony_ci    "ability_runtime:ability_connect_callback_stub",
1228d05d8e7Sopenharmony_ci    "ability_runtime:ability_manager",
1238d05d8e7Sopenharmony_ci    "ability_runtime:napi_common",
1248d05d8e7Sopenharmony_ci    "access_token:libaccesstoken_sdk",
1258d05d8e7Sopenharmony_ci    "access_token:libtokenid_sdk",
1268d05d8e7Sopenharmony_ci    "bundle_framework:appexecfwk_core",
1278d05d8e7Sopenharmony_ci    "c_utils:utils",
1288d05d8e7Sopenharmony_ci    "hilog:libhilog",
1298d05d8e7Sopenharmony_ci    "hitrace:hitrace_meter",
1308d05d8e7Sopenharmony_ci    "ipc:ipc_core",
1318d05d8e7Sopenharmony_ci    "safwk:system_ability_fwk",
1328d05d8e7Sopenharmony_ci    "samgr:samgr_proxy",
1338d05d8e7Sopenharmony_ci  ]
1348d05d8e7Sopenharmony_ci
1358d05d8e7Sopenharmony_ci  subsystem_name = "filemanagement"
1368d05d8e7Sopenharmony_ci  part_name = "user_file_service"
1378d05d8e7Sopenharmony_ci}
138