xref: /build/templates/common/check_target.gni (revision 5f9996aa)
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