15f9996aaSopenharmony_ci# Copyright (c) 2020 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_ciimport("//build/lite/lite_target_list.gni")
145f9996aaSopenharmony_ciimport("//build/lite/ndk/ndk.gni")
155f9996aaSopenharmony_ci
165f9996aaSopenharmony_ci# gn version >= 1714 required.
175f9996aaSopenharmony_ciassert(gn_version >= 1714, "GN version 1714 required, please upgrade!")
185f9996aaSopenharmony_ci
195f9996aaSopenharmony_ci# write version info.
205f9996aaSopenharmony_civersion_info = [
215f9996aaSopenharmony_ci  "VERSION=\"$ohos_version\"",
225f9996aaSopenharmony_ci  "BUILD_TIME=\"$ohos_build_datetime\"",
235f9996aaSopenharmony_ci]
245f9996aaSopenharmony_ciwrite_file("$root_build_dir/etc/version-info", version_info)
255f9996aaSopenharmony_ci
265f9996aaSopenharmony_cigroup("prebuilts") {
275f9996aaSopenharmony_ci  public_deps = [ "//third_party/musl:sysroot_lite" ]
285f9996aaSopenharmony_ci}
295f9996aaSopenharmony_ci
305f9996aaSopenharmony_cigroup("ohos") {
315f9996aaSopenharmony_ci  deps = []
325f9996aaSopenharmony_ci  if (ohos_build_target == "") {
335f9996aaSopenharmony_ci    remove_target_list = []
345f9996aaSopenharmony_ci    if (!ohos_build_userspace_only ||
355f9996aaSopenharmony_ci        (ohos_build_userspace_only && subsystem_name != "kernel" &&
365f9996aaSopenharmony_ci         subsystem_name != "vendor")) {
375f9996aaSopenharmony_ci      if (ohos_kernel_type == "liteos_m") {
385f9996aaSopenharmony_ci        remove_target_list = [ "${ohos_kernel_path}:build_kernel_image" ]
395f9996aaSopenharmony_ci      } else if (product_configed_component.component == "uniproton") {
405f9996aaSopenharmony_ci        remove_target_list = [ "//kernel/uniproton:build_kernel_image" ]
415f9996aaSopenharmony_ci      }
425f9996aaSopenharmony_ci    }
435f9996aaSopenharmony_ci    build_target_list = filter_exclude(lite_target_list, remove_target_list)
445f9996aaSopenharmony_ci    deps += build_target_list
455f9996aaSopenharmony_ci  } else {
465f9996aaSopenharmony_ci    deps += string_split(ohos_build_target, "&&")
475f9996aaSopenharmony_ci  }
485f9996aaSopenharmony_ci}
495f9996aaSopenharmony_ci
505f9996aaSopenharmony_cigroup("product") {
515f9996aaSopenharmony_ci  deps = []
525f9996aaSopenharmony_ci
535f9996aaSopenharmony_ci  # build product, skip build single component scenario.
545f9996aaSopenharmony_ci  if (ohos_build_target == "") {
555f9996aaSopenharmony_ci    deps += [ "${product_path}" ]
565f9996aaSopenharmony_ci  }
575f9996aaSopenharmony_ci}
585f9996aaSopenharmony_ci
595f9996aaSopenharmony_cigroup("ndk") {
605f9996aaSopenharmony_ci  # Add native API targets.
615f9996aaSopenharmony_ci  deps = []
625f9996aaSopenharmony_ci  if (ohos_build_ndk) {
635f9996aaSopenharmony_ci    deps += [ "//build/lite/ndk:ndk" ]
645f9996aaSopenharmony_ci  }
655f9996aaSopenharmony_ci}
665f9996aaSopenharmony_ci
675f9996aaSopenharmony_ciif (ohos_build_type == "debug" && product != "") {
685f9996aaSopenharmony_ci  action("gen_testfwk_info") {
695f9996aaSopenharmony_ci    outputs = [ "$root_out_dir/gen_testfwk_info.log" ]
705f9996aaSopenharmony_ci    script = "//build/lite/testfwk/gen_testfwk_info.py"
715f9996aaSopenharmony_ci    archive_dir_name = "test_info"
725f9996aaSopenharmony_ci    args = [
735f9996aaSopenharmony_ci      "--component-info-file",
745f9996aaSopenharmony_ci      rebase_path("${product_path}/config.json"),
755f9996aaSopenharmony_ci      "--output-json-fold",
765f9996aaSopenharmony_ci      rebase_path("${root_out_dir}/${archive_dir_name}/build_configs/"),
775f9996aaSopenharmony_ci      "--output-json-file-name",
785f9996aaSopenharmony_ci      "infos_for_testfwk.json",
795f9996aaSopenharmony_ci      "--output-module-list-files-fold",
805f9996aaSopenharmony_ci      rebase_path("${root_out_dir}/${archive_dir_name}/module_list_files/"),
815f9996aaSopenharmony_ci    ]
825f9996aaSopenharmony_ci  }
835f9996aaSopenharmony_ci}
84