15f9996aaSopenharmony_ci# Copyright (c) 2024 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_ciimport("//build/ohos_var.gni")
155f9996aaSopenharmony_ci
165f9996aaSopenharmony_citemplate("collect_module_target") {
175f9996aaSopenharmony_ci  forward_variables_from(invoker,
185f9996aaSopenharmony_ci                         [
195f9996aaSopenharmony_ci                           "install_images",
205f9996aaSopenharmony_ci                           "module_label",
215f9996aaSopenharmony_ci                         ])
225f9996aaSopenharmony_ci
235f9996aaSopenharmony_ci  # do not collect build targets for host toolchains
245f9996aaSopenharmony_ci  if (current_toolchain == host_toolchain) {
255f9996aaSopenharmony_ci    group("${target_name}") {
265f9996aaSopenharmony_ci      not_needed([
275f9996aaSopenharmony_ci                   "module_label",
285f9996aaSopenharmony_ci                   "install_images",
295f9996aaSopenharmony_ci                 ])
305f9996aaSopenharmony_ci    }
315f9996aaSopenharmony_ci  } else {
325f9996aaSopenharmony_ci    if (defined(install_images)) {
335f9996aaSopenharmony_ci      module_install_images = []
345f9996aaSopenharmony_ci      module_install_images += install_images
355f9996aaSopenharmony_ci    } else {
365f9996aaSopenharmony_ci      module_install_images = [ "system" ]
375f9996aaSopenharmony_ci    }
385f9996aaSopenharmony_ci
395f9996aaSopenharmony_ci    group(target_name) {
405f9996aaSopenharmony_ci      metadata = {
415f9996aaSopenharmony_ci        collect_targets = []
425f9996aaSopenharmony_ci        foreach(image, module_install_images) {
435f9996aaSopenharmony_ci          # Add mapping between image name and target label
445f9996aaSopenharmony_ci          collect_targets += [ "${image}||${module_label}" ]
455f9996aaSopenharmony_ci        }
465f9996aaSopenharmony_ci      }
475f9996aaSopenharmony_ci    }
485f9996aaSopenharmony_ci  }
495f9996aaSopenharmony_ci}
50