15f9996aaSopenharmony_ci# Copyright (c) 2023 Huawei Device Co., Ltd. 25f9996aaSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 35f9996aaSopenharmony_ci# you may not use this file except in compliance with the License. 45f9996aaSopenharmony_ci# You may obtain a copy of the License at 55f9996aaSopenharmony_ci# 65f9996aaSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 75f9996aaSopenharmony_ci# 85f9996aaSopenharmony_ci# Unless required by applicable law or agreed to in writing, software 95f9996aaSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 105f9996aaSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 115f9996aaSopenharmony_ci# See the License for the specific language governing permissions and 125f9996aaSopenharmony_ci# limitations under the License. 135f9996aaSopenharmony_ci 145f9996aaSopenharmony_citemplate("check_target") { 155f9996aaSopenharmony_ci forward_variables_from(invoker, 165f9996aaSopenharmony_ci [ 175f9996aaSopenharmony_ci "part_name", 185f9996aaSopenharmony_ci "subsystem_name", 195f9996aaSopenharmony_ci "target_path", 205f9996aaSopenharmony_ci ]) 215f9996aaSopenharmony_ci 225f9996aaSopenharmony_ci action(target_name) { 235f9996aaSopenharmony_ci script = "//build/templates/common/check_build_target.py" 245f9996aaSopenharmony_ci depfile = "${target_gen_dir}/$target_name.d" 255f9996aaSopenharmony_ci outputs = [ "${target_out_dir}/${target_name}.txt" ] 265f9996aaSopenharmony_ci _compile_standard_allow_file = 275f9996aaSopenharmony_ci "$preloader_output_dir/compile_standard_whitelist.json" 285f9996aaSopenharmony_ci args = [ 295f9996aaSopenharmony_ci "--part-name", 305f9996aaSopenharmony_ci part_name, 315f9996aaSopenharmony_ci "--subsystem-name", 325f9996aaSopenharmony_ci subsystem_name, 335f9996aaSopenharmony_ci "--source-root-dir", 345f9996aaSopenharmony_ci rebase_path("//", root_build_dir), 355f9996aaSopenharmony_ci "--target-path", 365f9996aaSopenharmony_ci target_path, 375f9996aaSopenharmony_ci "--depfile", 385f9996aaSopenharmony_ci rebase_path(depfile, root_build_dir), 395f9996aaSopenharmony_ci "--output", 405f9996aaSopenharmony_ci rebase_path(outputs[0], root_build_dir), 415f9996aaSopenharmony_ci "--compile-standard-allow-file", 425f9996aaSopenharmony_ci rebase_path(_compile_standard_allow_file, root_build_dir), 435f9996aaSopenharmony_ci ] 445f9996aaSopenharmony_ci 455f9996aaSopenharmony_ci if (defined(invoker.skip_check_subsystem) && 465f9996aaSopenharmony_ci invoker.skip_check_subsystem == true) { 475f9996aaSopenharmony_ci args += [ "--skip-check-subsystem" ] 485f9996aaSopenharmony_ci } 495f9996aaSopenharmony_ci 505f9996aaSopenharmony_ci if (defined(invoker.module_deps)) { 515f9996aaSopenharmony_ci dep_labels = [] 525f9996aaSopenharmony_ci foreach(label, invoker.module_deps) { 535f9996aaSopenharmony_ci dep_labels += [ get_label_info(label, "label_no_toolchain") ] 545f9996aaSopenharmony_ci } 555f9996aaSopenharmony_ci args += [ "--deps" ] 565f9996aaSopenharmony_ci args += dep_labels 575f9996aaSopenharmony_ci } 585f9996aaSopenharmony_ci 595f9996aaSopenharmony_ci if (defined(invoker.module_ex_deps)) { 605f9996aaSopenharmony_ci args += [ "--external-deps" ] 615f9996aaSopenharmony_ci args += invoker.module_ex_deps 625f9996aaSopenharmony_ci } 635f9996aaSopenharmony_ci } 645f9996aaSopenharmony_ci} 65