169570cc8Sopenharmony_ci# Copyright (c) 2023 Huawei Device Co., Ltd. 269570cc8Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 369570cc8Sopenharmony_ci# you may not use this file except in compliance with the License. 469570cc8Sopenharmony_ci# You may obtain a copy of the License at 569570cc8Sopenharmony_ci# 669570cc8Sopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 769570cc8Sopenharmony_ci# 869570cc8Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software 969570cc8Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 1069570cc8Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1169570cc8Sopenharmony_ci# See the License for the specific language governing permissions and 1269570cc8Sopenharmony_ci# limitations under the License. 1369570cc8Sopenharmony_ci 1469570cc8Sopenharmony_ciimport("//build/config/python.gni") 1569570cc8Sopenharmony_ciimport("//build/templates/common/copy.gni") 1669570cc8Sopenharmony_ci 1769570cc8Sopenharmony_citemplate("ohos_prebuilt_appdata_sandbox") { 1869570cc8Sopenharmony_ci assert(defined(invoker.source), "source must be defined for ${target_name}.") 1969570cc8Sopenharmony_ci 2069570cc8Sopenharmony_ci _fixed_sandbox_target = "${target_name}_sandbox_fixed" 2169570cc8Sopenharmony_ci _fixed_sandbox_file = target_gen_dir + "/${target_name}.fixed/" + 2269570cc8Sopenharmony_ci get_path_info(invoker.source, "file") 2369570cc8Sopenharmony_ci _output_para_file = get_path_info(invoker.source, "file") 2469570cc8Sopenharmony_ci 2569570cc8Sopenharmony_ci action_with_pydeps(_fixed_sandbox_target) { 2669570cc8Sopenharmony_ci deps = [] 2769570cc8Sopenharmony_ci script = "//base/startup/appspawn/etc/sandbox/appdata_sandbox_fixer.py" 2869570cc8Sopenharmony_ci depfile = "${target_gen_dir}/${target_name}.d" 2969570cc8Sopenharmony_ci args = [ 3069570cc8Sopenharmony_ci "--output", 3169570cc8Sopenharmony_ci rebase_path(_fixed_sandbox_file, root_build_dir), 3269570cc8Sopenharmony_ci "--source-file", 3369570cc8Sopenharmony_ci rebase_path(invoker.source, root_build_dir), 3469570cc8Sopenharmony_ci "--depfile", 3569570cc8Sopenharmony_ci rebase_path(depfile, root_build_dir), 3669570cc8Sopenharmony_ci ] 3769570cc8Sopenharmony_ci if (defined(invoker.extra_sandbox_cfgs)) { 3869570cc8Sopenharmony_ci foreach(extra, invoker.extra_sandbox_cfgs) { 3969570cc8Sopenharmony_ci args += [ 4069570cc8Sopenharmony_ci "--extra_sandbox_cfg", 4169570cc8Sopenharmony_ci rebase_path(extra, root_build_dir), 4269570cc8Sopenharmony_ci ] 4369570cc8Sopenharmony_ci } 4469570cc8Sopenharmony_ci } 4569570cc8Sopenharmony_ci if (defined(invoker.patterns)) { 4669570cc8Sopenharmony_ci foreach(pattern, invoker.patterns) { 4769570cc8Sopenharmony_ci args += [ 4869570cc8Sopenharmony_ci "--patterns", 4969570cc8Sopenharmony_ci pattern, 5069570cc8Sopenharmony_ci ] 5169570cc8Sopenharmony_ci } 5269570cc8Sopenharmony_ci } 5369570cc8Sopenharmony_ci inputs = [ invoker.source ] 5469570cc8Sopenharmony_ci outputs = [ _fixed_sandbox_file ] 5569570cc8Sopenharmony_ci } 5669570cc8Sopenharmony_ci 5769570cc8Sopenharmony_ci ohos_copy(target_name) { 5869570cc8Sopenharmony_ci deps = [ ":$_fixed_sandbox_target" ] 5969570cc8Sopenharmony_ci forward_variables_from(invoker, 6069570cc8Sopenharmony_ci [ 6169570cc8Sopenharmony_ci "testonly", 6269570cc8Sopenharmony_ci "visibility", 6369570cc8Sopenharmony_ci 6469570cc8Sopenharmony_ci "deps", 6569570cc8Sopenharmony_ci "public_configs", 6669570cc8Sopenharmony_ci "subsystem_name", 6769570cc8Sopenharmony_ci "part_name", 6869570cc8Sopenharmony_ci 6969570cc8Sopenharmony_ci # For generate_module_info 7069570cc8Sopenharmony_ci "install_images", 7169570cc8Sopenharmony_ci "module_install_dir", 7269570cc8Sopenharmony_ci "relative_install_dir", 7369570cc8Sopenharmony_ci "symlink_target_name", 7469570cc8Sopenharmony_ci 7569570cc8Sopenharmony_ci # Open source license related 7669570cc8Sopenharmony_ci "license_file", 7769570cc8Sopenharmony_ci "license_as_sources", 7869570cc8Sopenharmony_ci ]) 7969570cc8Sopenharmony_ci sources = [ _fixed_sandbox_file ] 8069570cc8Sopenharmony_ci outputs = [ "${target_out_dir}/${target_name}/${_output_para_file}" ] 8169570cc8Sopenharmony_ci module_type = "etc" 8269570cc8Sopenharmony_ci install_enable = true 8369570cc8Sopenharmony_ci module_source_dir = "${target_out_dir}/${target_name}" 8469570cc8Sopenharmony_ci module_install_name = _output_para_file 8569570cc8Sopenharmony_ci if (defined(invoker.install_enable)) { 8669570cc8Sopenharmony_ci install_enable = invoker.install_enable 8769570cc8Sopenharmony_ci } 8869570cc8Sopenharmony_ci } 8969570cc8Sopenharmony_ci} 90