xref: /build/ohos/packages/BUILD.gn (revision 5f9996aa)
15f9996aaSopenharmony_ci# Copyright (c) 2021 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/config/python.gni")
155f9996aaSopenharmony_ciimport("//build/ohos/sa_profile/sa_profile.gni")
165f9996aaSopenharmony_ci
175f9996aaSopenharmony_ciimport("//build/ohos.gni")
185f9996aaSopenharmony_ciimport("//build/ohos/build_var.gni")
195f9996aaSopenharmony_ciimport("//build/ohos_var.gni")
205f9996aaSopenharmony_ci
215f9996aaSopenharmony_ciimport("//build/ohos/hisysevent/hisysevent.gni")
225f9996aaSopenharmony_ci
235f9996aaSopenharmony_ci# import target_platform_list
245f9996aaSopenharmony_ciimport("${build_configs_path}/platforms_list.gni")
255f9996aaSopenharmony_ciyml_file = rebase_path(product_path) + "/fs.yml"
265f9996aaSopenharmony_ciis_exist_yml_file = exec_script(rebase_path("//build/ohos/file_exists.py"),
275f9996aaSopenharmony_ci                                [
285f9996aaSopenharmony_ci                                  "--filename",
295f9996aaSopenharmony_ci                                  yml_file,
305f9996aaSopenharmony_ci                                  "--type",
315f9996aaSopenharmony_ci                                  "file",
325f9996aaSopenharmony_ci                                ],
335f9996aaSopenharmony_ci                                "string")
345f9996aaSopenharmony_ci
355f9996aaSopenharmony_cigroup("make_packages") {
365f9996aaSopenharmony_ci  deps = []
375f9996aaSopenharmony_ci  foreach(_platform, target_platform_list) {
385f9996aaSopenharmony_ci    if (is_standard_system && !skip_gen_module_info) {
395f9996aaSopenharmony_ci      # Lite system uses different packaging scheme, which is called in hb.
405f9996aaSopenharmony_ci      # So skip install_modules for lite system since it's the packaging
415f9996aaSopenharmony_ci      # action of standard system.
425f9996aaSopenharmony_ci
435f9996aaSopenharmony_ci      deps += [ ":${_platform}_install_modules" ]
445f9996aaSopenharmony_ci    }
455f9996aaSopenharmony_ci    if (!skip_gen_module_info) {
465f9996aaSopenharmony_ci      deps += [ ":gen_required_modules_${_platform}" ]
475f9996aaSopenharmony_ci    }
485f9996aaSopenharmony_ci    deps += [ ":${_platform}_parts_list" ]
495f9996aaSopenharmony_ci    if (!is_standard_system) {
505f9996aaSopenharmony_ci      deps += [ ":merge_system_notice_file_${_platform}" ]
515f9996aaSopenharmony_ci    }
525f9996aaSopenharmony_ci  }
535f9996aaSopenharmony_ci  if (make_osp) {
545f9996aaSopenharmony_ci    deps += [ ":open_source_package" ]
555f9996aaSopenharmony_ci  }
565f9996aaSopenharmony_ci}
575f9996aaSopenharmony_ci
585f9996aaSopenharmony_ciaction("packer") {
595f9996aaSopenharmony_ci  script = rebase_path("//build/ohos/packages/fs_process.py")
605f9996aaSopenharmony_ci  if (is_exist_yml_file == "True") {
615f9996aaSopenharmony_ci    inputs = [ yml_file ]
625f9996aaSopenharmony_ci  }
635f9996aaSopenharmony_ci  outputs = [ "${root_build_dir}/result.txt" ]
645f9996aaSopenharmony_ci  deps = [ ":make_packages" ]
655f9996aaSopenharmony_ci  args = [
665f9996aaSopenharmony_ci    "--product",
675f9996aaSopenharmony_ci    product_name,
685f9996aaSopenharmony_ci    "--root-path",
695f9996aaSopenharmony_ci    rebase_path("//"),
705f9996aaSopenharmony_ci    "--out-path",
715f9996aaSopenharmony_ci    rebase_path(root_build_dir),
725f9996aaSopenharmony_ci    "--log-path",
735f9996aaSopenharmony_ci    rebase_path("${root_build_dir}/build.log"),
745f9996aaSopenharmony_ci    "--product-path",
755f9996aaSopenharmony_ci    rebase_path(product_path),
765f9996aaSopenharmony_ci  ]
775f9996aaSopenharmony_ci}
785f9996aaSopenharmony_ci
795f9996aaSopenharmony_ciall_parts_host_info_file = "${root_build_dir}/all_parts_host.json"
805f9996aaSopenharmony_ciall_host_symlink_file = "${root_build_dir}/all_host_symlink.json"
815f9996aaSopenharmony_ci
825f9996aaSopenharmony_ciaction("generate_host_symlink") {
835f9996aaSopenharmony_ci  script = "//build/ohos/packages/generate_host_symlink.py"
845f9996aaSopenharmony_ci  inputs = [ all_parts_host_info_file ]
855f9996aaSopenharmony_ci  outputs = [ all_host_symlink_file ]
865f9996aaSopenharmony_ci  deps = [ "//build/ohos/common:generate_host_info" ]
875f9996aaSopenharmony_ci  args = [
885f9996aaSopenharmony_ci    "--all-parts-host-info-file",
895f9996aaSopenharmony_ci    rebase_path(all_parts_host_info_file),
905f9996aaSopenharmony_ci    "--output-file",
915f9996aaSopenharmony_ci    rebase_path(all_host_symlink_file),
925f9996aaSopenharmony_ci    "--root-build-dir",
935f9996aaSopenharmony_ci    rebase_path(root_build_dir),
945f9996aaSopenharmony_ci  ]
955f9996aaSopenharmony_ci}
965f9996aaSopenharmony_ci
975f9996aaSopenharmony_ciall_parts_info_file = "${root_build_dir}/all_parts_info.json"
985f9996aaSopenharmony_ciall_platforms_parts =
995f9996aaSopenharmony_ci    "${root_build_dir}/build_configs/target_platforms_parts.json"
1005f9996aaSopenharmony_ci
1015f9996aaSopenharmony_ciforeach(_platform, target_platform_list) {
1025f9996aaSopenharmony_ci  current_platform = _platform
1035f9996aaSopenharmony_ci  current_platform_dir = "${product_output_dir}/$current_platform"
1045f9996aaSopenharmony_ci
1055f9996aaSopenharmony_ci  _system_install_info_file =
1065f9996aaSopenharmony_ci      "${current_platform_dir}/system_install_parts.json"
1075f9996aaSopenharmony_ci
1085f9996aaSopenharmony_ci  action_with_pydeps("${current_platform}_parts_list") {
1095f9996aaSopenharmony_ci    script = "//build/ohos/packages/parts_install_info.py"
1105f9996aaSopenharmony_ci    deps = [ "//build/ohos/common:merge_all_parts" ]
1115f9996aaSopenharmony_ci    inputs = [ all_parts_info_file ]
1125f9996aaSopenharmony_ci    outputs = [ _system_install_info_file ]
1135f9996aaSopenharmony_ci    depfile = "$target_gen_dir/$target_name.d"
1145f9996aaSopenharmony_ci    args = [
1155f9996aaSopenharmony_ci      "--depfile",
1165f9996aaSopenharmony_ci      rebase_path(depfile, root_build_dir),
1175f9996aaSopenharmony_ci      "--all-parts-info-file",
1185f9996aaSopenharmony_ci      rebase_path(all_parts_info_file, root_build_dir),
1195f9996aaSopenharmony_ci      "--platforms-parts-file",
1205f9996aaSopenharmony_ci      rebase_path(all_platforms_parts, root_build_dir),
1215f9996aaSopenharmony_ci      "--system-install-info-file",
1225f9996aaSopenharmony_ci      rebase_path(_system_install_info_file, root_build_dir),
1235f9996aaSopenharmony_ci      "--current-platform",
1245f9996aaSopenharmony_ci      current_platform,
1255f9996aaSopenharmony_ci      "--root-code-dir",
1265f9996aaSopenharmony_ci      rebase_path("//"),
1275f9996aaSopenharmony_ci      "--root-build-dir",
1285f9996aaSopenharmony_ci      root_build_dir,
1295f9996aaSopenharmony_ci    ]
1305f9996aaSopenharmony_ci  }
1315f9996aaSopenharmony_ci
1325f9996aaSopenharmony_ci  post_process_modules_list = []
1335f9996aaSopenharmony_ci
1345f9996aaSopenharmony_ci  # sa profile install
1355f9996aaSopenharmony_ci  sa_install_modules_info_file =
1365f9996aaSopenharmony_ci      "${current_platform_dir}/sa_profile/sa_install_info.json"
1375f9996aaSopenharmony_ci  _merged_sa_profile_zipfile =
1385f9996aaSopenharmony_ci      "${current_platform_dir}/sa_profile/merged_sa_profile.zip"
1395f9996aaSopenharmony_ci  _merged_sa_profile_dir = "${current_platform_dir}/sa_profile/merged_sa"
1405f9996aaSopenharmony_ci  ohos_sa_install_info("${current_platform}_sa_profile_install_info") {
1415f9996aaSopenharmony_ci    deps = [ ":${current_platform}_parts_list" ]
1425f9996aaSopenharmony_ci    _outputs = get_target_outputs(":${current_platform}_parts_list")
1435f9996aaSopenharmony_ci    system_install_info_file = _outputs[0]
1445f9996aaSopenharmony_ci    sa_install_info_file = sa_install_modules_info_file
1455f9996aaSopenharmony_ci    merged_sa_profile_zipfile = _merged_sa_profile_zipfile
1465f9996aaSopenharmony_ci    merged_sa_profile_dir = _merged_sa_profile_dir
1475f9996aaSopenharmony_ci  }
1485f9996aaSopenharmony_ci
1495f9996aaSopenharmony_ci  # all post process moudles info
1505f9996aaSopenharmony_ci  post_process_modules_list += [ sa_install_modules_info_file ]
1515f9996aaSopenharmony_ci
1525f9996aaSopenharmony_ci  hisysevent_install_info_file =
1535f9996aaSopenharmony_ci      "${current_platform_dir}/hisysevent/hisysevent_install_info.json"
1545f9996aaSopenharmony_ci  ohos_hisysevent_install_info("${current_platform}_hisysevent_install_info") {
1555f9996aaSopenharmony_ci    deps = [ ":${current_platform}_parts_list" ]
1565f9996aaSopenharmony_ci    _outputs = get_target_outputs(":${current_platform}_parts_list")
1575f9996aaSopenharmony_ci    system_install_info_file = _outputs[0]
1585f9996aaSopenharmony_ci  }
1595f9996aaSopenharmony_ci  post_process_modules_list += [ hisysevent_install_info_file ]
1605f9996aaSopenharmony_ci
1615f9996aaSopenharmony_ci  _notice_root_dir = "${current_platform_dir}/NOTICE_FILES"
1625f9996aaSopenharmony_ci  _collected_notice_zipfile = "${current_platform_dir}/system_notice_files.zip"
1635f9996aaSopenharmony_ci
1645f9996aaSopenharmony_ci  action_with_pydeps("collect_notice_files__${_platform}") {
1655f9996aaSopenharmony_ci    deps = [ ":${_platform}_parts_list" ]
1665f9996aaSopenharmony_ci    script = "//build/ohos/notice/collect_system_notice_files.py"
1675f9996aaSopenharmony_ci    depfile = "$target_gen_dir/$target_name.d"
1685f9996aaSopenharmony_ci    sources = [ _system_install_info_file ]
1695f9996aaSopenharmony_ci    outputs = [ _collected_notice_zipfile ]
1705f9996aaSopenharmony_ci    args = [
1715f9996aaSopenharmony_ci      "--install-info-file",
1725f9996aaSopenharmony_ci      rebase_path(_system_install_info_file, root_build_dir),
1735f9996aaSopenharmony_ci      "--output-file",
1745f9996aaSopenharmony_ci      rebase_path(_collected_notice_zipfile, root_build_dir),
1755f9996aaSopenharmony_ci      "--depfile",
1765f9996aaSopenharmony_ci      rebase_path(depfile, root_build_dir),
1775f9996aaSopenharmony_ci      "--notice-root-dir",
1785f9996aaSopenharmony_ci      rebase_path(_notice_root_dir, root_build_dir),
1795f9996aaSopenharmony_ci    ]
1805f9996aaSopenharmony_ci  }
1815f9996aaSopenharmony_ci
1825f9996aaSopenharmony_ci  _merged_notice_txt = "${current_platform_dir}/NOTICE.txt"
1835f9996aaSopenharmony_ci  _notice_module_info_file = "${current_platform_dir}/NOTICE_module_info.json"
1845f9996aaSopenharmony_ci  action_with_pydeps("merge_system_notice_file_${current_platform}") {
1855f9996aaSopenharmony_ci    deps = [ ":collect_notice_files__${current_platform}" ]
1865f9996aaSopenharmony_ci    script = "//build/ohos/notice/merge_notice_files.py"
1875f9996aaSopenharmony_ci    depfile = "$target_gen_dir/$target_name.d"
1885f9996aaSopenharmony_ci
1895f9996aaSopenharmony_ci    _merged_notice_gz = "${current_platform_dir}/NOTICE.xml.gz"
1905f9996aaSopenharmony_ci    inputs = [ _collected_notice_zipfile ]
1915f9996aaSopenharmony_ci    outputs = [
1925f9996aaSopenharmony_ci      _merged_notice_txt,
1935f9996aaSopenharmony_ci      _merged_notice_gz,
1945f9996aaSopenharmony_ci      _notice_module_info_file,
1955f9996aaSopenharmony_ci    ]
1965f9996aaSopenharmony_ci    args = [
1975f9996aaSopenharmony_ci      "--image-name",
1985f9996aaSopenharmony_ci      "system",
1995f9996aaSopenharmony_ci      "--notice-root-dir",
2005f9996aaSopenharmony_ci      rebase_path(_notice_root_dir, root_build_dir),
2015f9996aaSopenharmony_ci      "--output-notice-txt",
2025f9996aaSopenharmony_ci      rebase_path(_merged_notice_txt, root_out_dir),
2035f9996aaSopenharmony_ci      "--output-notice-gz",
2045f9996aaSopenharmony_ci      rebase_path(_merged_notice_gz, root_out_dir),
2055f9996aaSopenharmony_ci      "--notice-title",
2065f9996aaSopenharmony_ci      "Notices for files contained in the system filesystem image in this directory:",
2075f9996aaSopenharmony_ci      "--static-library-notice-dir",
2085f9996aaSopenharmony_ci      rebase_path(static_libraries_notice_dir, root_build_dir),
2095f9996aaSopenharmony_ci      "--target-cpu",
2105f9996aaSopenharmony_ci      target_cpu,
2115f9996aaSopenharmony_ci      "--depfile",
2125f9996aaSopenharmony_ci      rebase_path(depfile, root_build_dir),
2135f9996aaSopenharmony_ci      "--collected-notice-zipfile",
2145f9996aaSopenharmony_ci      rebase_path(_collected_notice_zipfile, root_build_dir),
2155f9996aaSopenharmony_ci      "--notice-module-info",
2165f9996aaSopenharmony_ci      rebase_path(_notice_module_info_file, root_build_dir),
2175f9996aaSopenharmony_ci      "--notice-install-dir",
2185f9996aaSopenharmony_ci    ]
2195f9996aaSopenharmony_ci    if (is_system_component) {
2205f9996aaSopenharmony_ci      args += [ "system/etc" ]
2215f9996aaSopenharmony_ci    } else {
2225f9996aaSopenharmony_ci      args += [ "vendor/etc" ]
2235f9996aaSopenharmony_ci    }
2245f9996aaSopenharmony_ci    if (!is_standard_system) {
2255f9996aaSopenharmony_ci      args += [
2265f9996aaSopenharmony_ci        "--lite-product",
2275f9996aaSopenharmony_ci        "true",
2285f9996aaSopenharmony_ci      ]
2295f9996aaSopenharmony_ci    }
2305f9996aaSopenharmony_ci  }
2315f9996aaSopenharmony_ci  post_process_modules_list += [ _notice_module_info_file ]
2325f9996aaSopenharmony_ci
2335f9996aaSopenharmony_ci  action("verify_notice_file_${current_platform}") {
2345f9996aaSopenharmony_ci    deps = [ ":merge_system_notice_file_${current_platform}" ]
2355f9996aaSopenharmony_ci    script = "//build/lite/run_shell_cmd.py"
2365f9996aaSopenharmony_ci    _verify_result = "${current_platform_dir}/notice_verify_result.out"
2375f9996aaSopenharmony_ci
2385f9996aaSopenharmony_ci    inputs = [ _merged_notice_txt ]
2395f9996aaSopenharmony_ci    outputs = [ _verify_result ]
2405f9996aaSopenharmony_ci
2415f9996aaSopenharmony_ci    args = [
2425f9996aaSopenharmony_ci      "/bin/bash",
2435f9996aaSopenharmony_ci      rebase_path("//build/core/build_scripts/verify_notice.sh",
2445f9996aaSopenharmony_ci                  root_build_dir),
2455f9996aaSopenharmony_ci      rebase_path(_merged_notice_txt, root_build_dir),
2465f9996aaSopenharmony_ci      rebase_path(_verify_result, root_build_dir),
2475f9996aaSopenharmony_ci      rebase_path(current_platform_dir, root_build_dir),
2485f9996aaSopenharmony_ci    ]
2495f9996aaSopenharmony_ci  }
2505f9996aaSopenharmony_ci
2515f9996aaSopenharmony_ci  system_install_modules = "${current_platform_dir}/system_install_modules.json"
2525f9996aaSopenharmony_ci  system_module_info_list = "${current_platform_dir}/system_module_info.json"
2535f9996aaSopenharmony_ci  system_modules_list = "${current_platform_dir}/system_modules_list.txt"
2545f9996aaSopenharmony_ci  _system_image_zipfile = "${current_platform_dir}/system.zip"
2555f9996aaSopenharmony_ci  _host_toolchain = "$host_toolchain"
2565f9996aaSopenharmony_ci
2575f9996aaSopenharmony_ci  action_with_pydeps("${_platform}_install_modules") {
2585f9996aaSopenharmony_ci    script = "//build/ohos/packages/modules_install.py"
2595f9996aaSopenharmony_ci    public_deps = [ ":${current_platform}_parts_list" ]
2605f9996aaSopenharmony_ci    depfile = "$target_gen_dir/$target_name.d"
2615f9996aaSopenharmony_ci    deps = [
2625f9996aaSopenharmony_ci      ":${current_platform}_hisysevent_install_info",
2635f9996aaSopenharmony_ci      ":${current_platform}_sa_profile_install_info",
2645f9996aaSopenharmony_ci      ":generate_host_symlink",
2655f9996aaSopenharmony_ci      ":merge_system_notice_file_${current_platform}",
2665f9996aaSopenharmony_ci      ":verify_notice_file_${current_platform}",
2675f9996aaSopenharmony_ci    ]
2685f9996aaSopenharmony_ci
2695f9996aaSopenharmony_ci    sources = [
2705f9996aaSopenharmony_ci      _merged_sa_profile_zipfile,
2715f9996aaSopenharmony_ci      _system_install_info_file,
2725f9996aaSopenharmony_ci    ]
2735f9996aaSopenharmony_ci
2745f9996aaSopenharmony_ci    outputs = [
2755f9996aaSopenharmony_ci      system_install_modules,
2765f9996aaSopenharmony_ci      system_module_info_list,
2775f9996aaSopenharmony_ci      system_modules_list,
2785f9996aaSopenharmony_ci      _system_image_zipfile,
2795f9996aaSopenharmony_ci    ]
2805f9996aaSopenharmony_ci
2815f9996aaSopenharmony_ci    args = [
2825f9996aaSopenharmony_ci      "--system-install-info-file",
2835f9996aaSopenharmony_ci      rebase_path(_system_install_info_file, root_build_dir),
2845f9996aaSopenharmony_ci      "--install-modules-info-file",
2855f9996aaSopenharmony_ci      rebase_path(system_install_modules, root_build_dir),
2865f9996aaSopenharmony_ci      "--modules-info-file",
2875f9996aaSopenharmony_ci      rebase_path(system_module_info_list, root_build_dir),
2885f9996aaSopenharmony_ci      "--modules-list-file",
2895f9996aaSopenharmony_ci      rebase_path(system_modules_list, root_build_dir),
2905f9996aaSopenharmony_ci      "--platform-installed-path",
2915f9996aaSopenharmony_ci      rebase_path(current_platform_dir, root_build_dir),
2925f9996aaSopenharmony_ci      "--depfile",
2935f9996aaSopenharmony_ci      rebase_path(depfile, root_build_dir),
2945f9996aaSopenharmony_ci      "--sa-profile-extract-dir",
2955f9996aaSopenharmony_ci      rebase_path(_merged_sa_profile_dir, root_build_dir),
2965f9996aaSopenharmony_ci      "--merged-sa-profile",
2975f9996aaSopenharmony_ci      rebase_path(_merged_sa_profile_zipfile, root_build_dir),
2985f9996aaSopenharmony_ci      "--system-dir",
2995f9996aaSopenharmony_ci      rebase_path("$current_platform_dir/system", root_build_dir),
3005f9996aaSopenharmony_ci      "--system-image-zipfile",
3015f9996aaSopenharmony_ci      rebase_path(_system_image_zipfile, root_build_dir),
3025f9996aaSopenharmony_ci      "--host-toolchain",
3035f9996aaSopenharmony_ci      _host_toolchain,
3045f9996aaSopenharmony_ci    ]
3055f9996aaSopenharmony_ci
3065f9996aaSopenharmony_ci    _additional_system_files = []
3075f9996aaSopenharmony_ci    foreach(tuple, _additional_system_files) {
3085f9996aaSopenharmony_ci      args += [
3095f9996aaSopenharmony_ci        "--additional-system-files",
3105f9996aaSopenharmony_ci        rebase_path(tuple[0], root_build_dir) + ":" + tuple[1],
3115f9996aaSopenharmony_ci      ]
3125f9996aaSopenharmony_ci    }
3135f9996aaSopenharmony_ci
3145f9996aaSopenharmony_ci    if (post_process_modules_list != []) {
3155f9996aaSopenharmony_ci      sources += post_process_modules_list
3165f9996aaSopenharmony_ci      args += [ "--post-process-modules-info-files" ]
3175f9996aaSopenharmony_ci      args += rebase_path(post_process_modules_list, root_build_dir)
3185f9996aaSopenharmony_ci    }
3195f9996aaSopenharmony_ci
3205f9996aaSopenharmony_ci    args += [ "--categorized-libraries" ]
3215f9996aaSopenharmony_ci    args +=
3225f9996aaSopenharmony_ci        [ rebase_path("//build/ohos/packages/rules/categorized-libraries.json",
3235f9996aaSopenharmony_ci                      root_build_dir) ]
3245f9996aaSopenharmony_ci  }
3255f9996aaSopenharmony_ci
3265f9996aaSopenharmony_ci  action("check_seccomp_filter_name") {
3275f9996aaSopenharmony_ci    script = "//build/ohos/packages/check_seccomp_library_name.py"
3285f9996aaSopenharmony_ci    deps = [ ":${_platform}_install_modules" ]
3295f9996aaSopenharmony_ci
3305f9996aaSopenharmony_ci    # result is not used in script
3315f9996aaSopenharmony_ci    process_validate_result =
3325f9996aaSopenharmony_ci        "${current_platform_dir}/check_seccomp_filter_name.txt"
3335f9996aaSopenharmony_ci    _system_cfg_folder = "${current_platform_dir}/system/etc/init"
3345f9996aaSopenharmony_ci    if (target_cpu == "arm" || target_cpu == "x86") {
3355f9996aaSopenharmony_ci      libdir = "lib"
3365f9996aaSopenharmony_ci    } else if (target_cpu == "arm64" || target_cpu == "x86_64") {
3375f9996aaSopenharmony_ci      libdir = "lib64"
3385f9996aaSopenharmony_ci    } else {
3395f9996aaSopenharmony_ci      libdir = "lib"
3405f9996aaSopenharmony_ci    }
3415f9996aaSopenharmony_ci    _system_seccomp_folder = "${current_platform_dir}/system/${libdir}/seccomp"
3425f9996aaSopenharmony_ci
3435f9996aaSopenharmony_ci    _vendor_cfg_folder = "${current_platform_dir}/vendor/etc/init"
3445f9996aaSopenharmony_ci    _vendor_seccomp_folder = "${current_platform_dir}/vendor/${libdir}/seccomp"
3455f9996aaSopenharmony_ci
3465f9996aaSopenharmony_ci    outputs = [ process_validate_result ]
3475f9996aaSopenharmony_ci
3485f9996aaSopenharmony_ci    args = [
3495f9996aaSopenharmony_ci      "--vendor-cfg-path",
3505f9996aaSopenharmony_ci      rebase_path(_vendor_cfg_folder, root_build_dir),
3515f9996aaSopenharmony_ci      "--vendor-seccomp-lib-path",
3525f9996aaSopenharmony_ci      rebase_path(_vendor_seccomp_folder, root_build_dir),
3535f9996aaSopenharmony_ci      "--system-cfg-path",
3545f9996aaSopenharmony_ci      rebase_path(_system_cfg_folder, root_build_dir),
3555f9996aaSopenharmony_ci      "--system-seccomp-lib-path",
3565f9996aaSopenharmony_ci      rebase_path(_system_seccomp_folder, root_build_dir),
3575f9996aaSopenharmony_ci    ]
3585f9996aaSopenharmony_ci  }
3595f9996aaSopenharmony_ci
3605f9996aaSopenharmony_ci  action("process_field_validate") {
3615f9996aaSopenharmony_ci    script = "//build/ohos/packages/process_field_validate.py"
3625f9996aaSopenharmony_ci
3635f9996aaSopenharmony_ci    deps = [ ":${_platform}_install_modules" ]
3645f9996aaSopenharmony_ci
3655f9996aaSopenharmony_ci    # result is not used in script
3665f9996aaSopenharmony_ci    process_validate_result = "${current_platform_dir}/cfg_validate_result.txt"
3675f9996aaSopenharmony_ci
3685f9996aaSopenharmony_ci    # ext_root_proc_conf_path defined in config.json in vendor warehouse
3695f9996aaSopenharmony_ci    if (ext_root_proc_conf_path != "") {
3705f9996aaSopenharmony_ci      _privilege_whitelist = ext_root_proc_conf_path
3715f9996aaSopenharmony_ci    } else {
3725f9996aaSopenharmony_ci      _privilege_whitelist = "//vendor/${product_company}/${product_name}/security_config/high_privilege_process_list.json"
3735f9996aaSopenharmony_ci    }
3745f9996aaSopenharmony_ci
3755f9996aaSopenharmony_ci    # ext_critical_proc_conf_path defined in config.json in vendor warehouse
3765f9996aaSopenharmony_ci    if (ext_critical_proc_conf_path != "") {
3775f9996aaSopenharmony_ci      _critical_whitelist = ext_critical_proc_conf_path
3785f9996aaSopenharmony_ci    } else {
3795f9996aaSopenharmony_ci      _critical_whitelist = "//vendor/${product_company}/${product_name}/security_config/critical_reboot_process_list.json"
3805f9996aaSopenharmony_ci    }
3815f9996aaSopenharmony_ci    _system_cfg_folder = "${current_platform_dir}/system/etc/init"
3825f9996aaSopenharmony_ci
3835f9996aaSopenharmony_ci    _vendor_cfg_folder = "${current_platform_dir}/vendor/etc/init"
3845f9996aaSopenharmony_ci
3855f9996aaSopenharmony_ci    outputs = [ process_validate_result ]
3865f9996aaSopenharmony_ci
3875f9996aaSopenharmony_ci    args = [
3885f9996aaSopenharmony_ci      "--sys-cfg-folder",
3895f9996aaSopenharmony_ci      rebase_path(_system_cfg_folder, root_build_dir),
3905f9996aaSopenharmony_ci      "--vendor-cfg-folder",
3915f9996aaSopenharmony_ci      rebase_path(_vendor_cfg_folder, root_build_dir),
3925f9996aaSopenharmony_ci      "--high-privilege-process-list-path",
3935f9996aaSopenharmony_ci      rebase_path(_privilege_whitelist, root_build_dir),
3945f9996aaSopenharmony_ci      "--critical-reboot-process-list-path",
3955f9996aaSopenharmony_ci      rebase_path(_critical_whitelist, root_build_dir),
3965f9996aaSopenharmony_ci    ]
3975f9996aaSopenharmony_ci  }
3985f9996aaSopenharmony_ci}
3995f9996aaSopenharmony_ci
4005f9996aaSopenharmony_ci# required_install_module_list.json
4015f9996aaSopenharmony_ciforeach(_platform, target_platform_list) {
4025f9996aaSopenharmony_ci  current_platform_dir = "${product_output_dir}/$_platform"
4035f9996aaSopenharmony_ci  _system_install_info_file =
4045f9996aaSopenharmony_ci      "${current_platform_dir}/system_install_parts.json"
4055f9996aaSopenharmony_ci  required_install_modules_file =
4065f9996aaSopenharmony_ci      "${current_platform_dir}/required_install_module_list.json"
4075f9996aaSopenharmony_ci  action_with_pydeps("gen_required_modules_${_platform}") {
4085f9996aaSopenharmony_ci    deps = [ ":${_platform}_parts_list" ]
4095f9996aaSopenharmony_ci    script = "//build/ohos/packages/gen_required_modules_list.py"
4105f9996aaSopenharmony_ci    inputs = [ _system_install_info_file ]
4115f9996aaSopenharmony_ci    outputs = [ required_install_modules_file ]
4125f9996aaSopenharmony_ci    depfile = "$target_gen_dir/$target_name.d"
4135f9996aaSopenharmony_ci    args = [
4145f9996aaSopenharmony_ci      "--system-installed-info-file",
4155f9996aaSopenharmony_ci      rebase_path(_system_install_info_file, root_out_dir),
4165f9996aaSopenharmony_ci      "--required-install-modules-file",
4175f9996aaSopenharmony_ci      rebase_path(required_install_modules_file, root_out_dir),
4185f9996aaSopenharmony_ci      "--depfile",
4195f9996aaSopenharmony_ci      rebase_path(depfile, root_build_dir),
4205f9996aaSopenharmony_ci    ]
4215f9996aaSopenharmony_ci  }
4225f9996aaSopenharmony_ci}
4235f9996aaSopenharmony_ci
4245f9996aaSopenharmony_ciif (is_asan || is_tsan) {
4255f9996aaSopenharmony_ci  foreach(_platform, target_platform_list) {
4265f9996aaSopenharmony_ci    action("restore_first_stage_artifact_${_platform}") {
4275f9996aaSopenharmony_ci      current_platform = _platform
4285f9996aaSopenharmony_ci      current_platform_dir = "${product_output_dir}/$current_platform"
4295f9996aaSopenharmony_ci      deps = [ ":${_platform}_install_modules" ]
4305f9996aaSopenharmony_ci      print("restore_first_stage_artifact_${_platform}")
4315f9996aaSopenharmony_ci
4325f9996aaSopenharmony_ci      if (current_cpu == "arm64" || current_cpu == "riscv64") {
4335f9996aaSopenharmony_ci        module_type = "lib64"
4345f9996aaSopenharmony_ci      } else if (current_cpu == "arm") {
4355f9996aaSopenharmony_ci        module_type = "lib"
4365f9996aaSopenharmony_ci      }
4375f9996aaSopenharmony_ci
4385f9996aaSopenharmony_ci      sources_dir = [
4395f9996aaSopenharmony_ci        "${root_build_dir}/backup/packages/${_platform}/system/$module_type",
4405f9996aaSopenharmony_ci        "${root_build_dir}/backup/packages/${_platform}/system/bin",
4415f9996aaSopenharmony_ci      ]
4425f9996aaSopenharmony_ci
4435f9996aaSopenharmony_ci      restore_dir = "${current_platform_dir}/${system_base_dir}/restore"
4445f9996aaSopenharmony_ci
4455f9996aaSopenharmony_ci      outputs = [ restore_dir ]
4465f9996aaSopenharmony_ci
4475f9996aaSopenharmony_ci      script = "//build/ohos/packages/backup_restore_artifact.py"
4485f9996aaSopenharmony_ci      args = [ "--source-dir" ]
4495f9996aaSopenharmony_ci      foreach(source_dir, sources_dir) {
4505f9996aaSopenharmony_ci        args += [ rebase_path(source_dir, root_out_dir) ]
4515f9996aaSopenharmony_ci      }
4525f9996aaSopenharmony_ci
4535f9996aaSopenharmony_ci      args += [
4545f9996aaSopenharmony_ci        "--output-dir",
4555f9996aaSopenharmony_ci        rebase_path(restore_dir, root_out_dir),
4565f9996aaSopenharmony_ci      ]
4575f9996aaSopenharmony_ci    }
4585f9996aaSopenharmony_ci
4595f9996aaSopenharmony_ci    action("restore_first_stage_symbols_${_platform}") {
4605f9996aaSopenharmony_ci      current_platform = _platform
4615f9996aaSopenharmony_ci      current_platform_dir = "${product_output_dir}/$current_platform"
4625f9996aaSopenharmony_ci      deps = [ ":package_libs_symbols_${_platform}" ]
4635f9996aaSopenharmony_ci      print("restore_first_stage_symbols_${_platform}")
4645f9996aaSopenharmony_ci
4655f9996aaSopenharmony_ci      sources_dir = [
4665f9996aaSopenharmony_ci        "${root_build_dir}/backup/packages/${_platform}/exe.unstripped",
4675f9996aaSopenharmony_ci        "${root_build_dir}/backup/packages/${_platform}/lib.unstripped",
4685f9996aaSopenharmony_ci      ]
4695f9996aaSopenharmony_ci
4705f9996aaSopenharmony_ci      restore_dir = "${current_platform_dir}/restore_symbols"
4715f9996aaSopenharmony_ci
4725f9996aaSopenharmony_ci      outputs = [ restore_dir ]
4735f9996aaSopenharmony_ci
4745f9996aaSopenharmony_ci      script = "//build/ohos/packages/backup_restore_artifact.py"
4755f9996aaSopenharmony_ci      args = [ "--source-dir" ]
4765f9996aaSopenharmony_ci      foreach(source_dir, sources_dir) {
4775f9996aaSopenharmony_ci        args += [ rebase_path(source_dir, root_out_dir) ]
4785f9996aaSopenharmony_ci      }
4795f9996aaSopenharmony_ci
4805f9996aaSopenharmony_ci      args += [
4815f9996aaSopenharmony_ci        "--output-dir",
4825f9996aaSopenharmony_ci        rebase_path(restore_dir, root_out_dir),
4835f9996aaSopenharmony_ci      ]
4845f9996aaSopenharmony_ci    }
4855f9996aaSopenharmony_ci  }
4865f9996aaSopenharmony_ci}
4875f9996aaSopenharmony_ci
4885f9996aaSopenharmony_ciforeach(_platform, target_platform_list) {
4895f9996aaSopenharmony_ci  current_platform_dir = "$product_output_dir/$_platform"
4905f9996aaSopenharmony_ci  _system_install_info_file =
4915f9996aaSopenharmony_ci      "${current_platform_dir}/system_install_parts.json"
4925f9996aaSopenharmony_ci
4935f9996aaSopenharmony_ci  action_with_pydeps("package_libs_symbols_${_platform}") {
4945f9996aaSopenharmony_ci    deps = [ ":${_platform}_parts_list" ]
4955f9996aaSopenharmony_ci    script = "//build/ohos/packages/resources_collect.py"
4965f9996aaSopenharmony_ci    inputs = [ _system_install_info_file ]
4975f9996aaSopenharmony_ci    output_file = "$target_out_dir/$target_name.out"
4985f9996aaSopenharmony_ci    outputs = [ output_file ]
4995f9996aaSopenharmony_ci
5005f9996aaSopenharmony_ci    args = [
5015f9996aaSopenharmony_ci      "--collect-type",
5025f9996aaSopenharmony_ci      "libs_symbols",
5035f9996aaSopenharmony_ci      "--system-install-info-file",
5045f9996aaSopenharmony_ci      rebase_path(_system_install_info_file, root_build_dir),
5055f9996aaSopenharmony_ci      "--resources-dir-list",
5065f9996aaSopenharmony_ci      "lib.unstripped",
5075f9996aaSopenharmony_ci      "exe.unstripped",
5085f9996aaSopenharmony_ci      "--package-output-base-dir",
5095f9996aaSopenharmony_ci      rebase_path("$current_platform_dir", root_build_dir),
5105f9996aaSopenharmony_ci      "--output-file",
5115f9996aaSopenharmony_ci      rebase_path(output_file, root_build_dir),
5125f9996aaSopenharmony_ci    ]
5135f9996aaSopenharmony_ci  }
5145f9996aaSopenharmony_ci}
5155f9996aaSopenharmony_ci
5165f9996aaSopenharmony_cigroup("package_libs_symbols") {
5175f9996aaSopenharmony_ci  deps = []
5185f9996aaSopenharmony_ci  foreach(_platform, target_platform_list) {
5195f9996aaSopenharmony_ci    deps += [ ":package_libs_symbols_${_platform}" ]
5205f9996aaSopenharmony_ci    if (is_asan || is_tsan) {
5215f9996aaSopenharmony_ci      deps += [ ":restore_first_stage_symbols_${_platform}" ]
5225f9996aaSopenharmony_ci    }
5235f9996aaSopenharmony_ci  }
5245f9996aaSopenharmony_ci}
5255f9996aaSopenharmony_ci
5265f9996aaSopenharmony_ciforeach(_platform, target_platform_list) {
5275f9996aaSopenharmony_ci  current_platform_dir = "${product_output_dir}/$_platform"
5285f9996aaSopenharmony_ci  _system_install_info_file =
5295f9996aaSopenharmony_ci      "${current_platform_dir}/system_install_parts.json"
5305f9996aaSopenharmony_ci
5315f9996aaSopenharmony_ci  action_with_pydeps("package_testcase_mlf_${_platform}") {
5325f9996aaSopenharmony_ci    testonly = true
5335f9996aaSopenharmony_ci    deps = [
5345f9996aaSopenharmony_ci      ":${_platform}_parts_list",
5355f9996aaSopenharmony_ci      ":build_all_test_pkg",
5365f9996aaSopenharmony_ci    ]
5375f9996aaSopenharmony_ci    script = "//build/ohos/packages/resources_collect.py"
5385f9996aaSopenharmony_ci    inputs = [ _system_install_info_file ]
5395f9996aaSopenharmony_ci    output_file = "$target_out_dir/$target_name.out"
5405f9996aaSopenharmony_ci    outputs = [ output_file ]
5415f9996aaSopenharmony_ci    args = [
5425f9996aaSopenharmony_ci      "--collect-type",
5435f9996aaSopenharmony_ci      "module_list_files",
5445f9996aaSopenharmony_ci      "--system-install-info-file",
5455f9996aaSopenharmony_ci      rebase_path(_system_install_info_file, root_build_dir),
5465f9996aaSopenharmony_ci      "--resources-dir-list",
5475f9996aaSopenharmony_ci      "module_list_files",
5485f9996aaSopenharmony_ci      "--package-output-base-dir",
5495f9996aaSopenharmony_ci      rebase_path("$current_platform_dir", root_build_dir),
5505f9996aaSopenharmony_ci      "--output-file",
5515f9996aaSopenharmony_ci      rebase_path(output_file, root_build_dir),
5525f9996aaSopenharmony_ci    ]
5535f9996aaSopenharmony_ci  }
5545f9996aaSopenharmony_ci}
5555f9996aaSopenharmony_ci
5565f9996aaSopenharmony_cigroup("package_testcase_mlf") {
5575f9996aaSopenharmony_ci  testonly = true
5585f9996aaSopenharmony_ci  deps = []
5595f9996aaSopenharmony_ci  foreach(_platform, target_platform_list) {
5605f9996aaSopenharmony_ci    deps += [ ":package_testcase_mlf_${_platform}" ]
5615f9996aaSopenharmony_ci  }
5625f9996aaSopenharmony_ci}
5635f9996aaSopenharmony_ci
5645f9996aaSopenharmony_ciforeach(_platform, target_platform_list) {
5655f9996aaSopenharmony_ci  current_platform_dir = "${product_output_dir}/$_platform"
5665f9996aaSopenharmony_ci
5675f9996aaSopenharmony_ci  _system_install_info_file =
5685f9996aaSopenharmony_ci      "${current_platform_dir}/system_install_parts.json"
5695f9996aaSopenharmony_ci
5705f9996aaSopenharmony_ci  action_with_pydeps("package_testcase_${_platform}") {
5715f9996aaSopenharmony_ci    testonly = true
5725f9996aaSopenharmony_ci    deps = [
5735f9996aaSopenharmony_ci      ":${_platform}_parts_list",
5745f9996aaSopenharmony_ci      ":build_all_test_pkg",
5755f9996aaSopenharmony_ci    ]
5765f9996aaSopenharmony_ci    script = "//build/ohos/packages/resources_collect.py"
5775f9996aaSopenharmony_ci    inputs = [ _system_install_info_file ]
5785f9996aaSopenharmony_ci    output_file = "$target_out_dir/$target_name.out"
5795f9996aaSopenharmony_ci    outputs = [ output_file ]
5805f9996aaSopenharmony_ci
5815f9996aaSopenharmony_ci    test_type_list = [
5825f9996aaSopenharmony_ci      "unittest",
5835f9996aaSopenharmony_ci      "moduletest",
5845f9996aaSopenharmony_ci      "systemtest",
5855f9996aaSopenharmony_ci      "performance",
5865f9996aaSopenharmony_ci      "security",
5875f9996aaSopenharmony_ci      "reliability",
5885f9996aaSopenharmony_ci      "distributedtest",
5895f9996aaSopenharmony_ci      "fuzztest",
5905f9996aaSopenharmony_ci    ]
5915f9996aaSopenharmony_ci
5925f9996aaSopenharmony_ci    resources_dir_list = []
5935f9996aaSopenharmony_ci    foreach(test_type, test_type_list) {
5945f9996aaSopenharmony_ci      resources_dir_list += [ "tests/" + test_type ]
5955f9996aaSopenharmony_ci    }
5965f9996aaSopenharmony_ci
5975f9996aaSopenharmony_ci    args = [
5985f9996aaSopenharmony_ci      "--collect-type",
5995f9996aaSopenharmony_ci      "testcase",
6005f9996aaSopenharmony_ci      "--system-install-info-file",
6015f9996aaSopenharmony_ci      rebase_path(_system_install_info_file, root_build_dir),
6025f9996aaSopenharmony_ci      "--package-output-base-dir",
6035f9996aaSopenharmony_ci      rebase_path("$current_platform_dir/tests", root_build_dir),
6045f9996aaSopenharmony_ci      "--output-file",
6055f9996aaSopenharmony_ci      rebase_path(output_file, root_build_dir),
6065f9996aaSopenharmony_ci      "--resources-dir-list",
6075f9996aaSopenharmony_ci    ]
6085f9996aaSopenharmony_ci    args += resources_dir_list
6095f9996aaSopenharmony_ci  }
6105f9996aaSopenharmony_ci}
6115f9996aaSopenharmony_ci
6125f9996aaSopenharmony_ciforeach(_platform, target_platform_list) {
6135f9996aaSopenharmony_ci  current_platform_dir = "${product_output_dir}/$_platform"
6145f9996aaSopenharmony_ci  required_files = []
6155f9996aaSopenharmony_ci  required_files += [
6165f9996aaSopenharmony_ci    "${build_configs_path}/target_platforms_parts.json",
6175f9996aaSopenharmony_ci    "${build_configs_path}/parts_info/parts_info.json",
6185f9996aaSopenharmony_ci    "${build_configs_path}/infos_for_testfwk.json",
6195f9996aaSopenharmony_ci  ]
6205f9996aaSopenharmony_ci  action_with_pydeps("copy_testfwk_required_files_${_platform}") {
6215f9996aaSopenharmony_ci    testonly = true
6225f9996aaSopenharmony_ci    deps = [ ":package_testcase_${_platform}" ]
6235f9996aaSopenharmony_ci    script = "//build/ohos/copy_files.py"
6245f9996aaSopenharmony_ci    depfile = "$target_gen_dir/$target_name.d"
6255f9996aaSopenharmony_ci    output_file = "$target_out_dir/$target_name.out"
6265f9996aaSopenharmony_ci    outputs = [ output_file ]
6275f9996aaSopenharmony_ci    args = [
6285f9996aaSopenharmony_ci      "--depfile",
6295f9996aaSopenharmony_ci      rebase_path(depfile, root_build_dir),
6305f9996aaSopenharmony_ci      "--copy-output-dir",
6315f9996aaSopenharmony_ci      rebase_path("$current_platform_dir/tests", root_build_dir),
6325f9996aaSopenharmony_ci      "--outfile",
6335f9996aaSopenharmony_ci      rebase_path(output_file, root_build_dir),
6345f9996aaSopenharmony_ci      "--source-files",
6355f9996aaSopenharmony_ci    ]
6365f9996aaSopenharmony_ci    args += rebase_path(required_files, root_build_dir)
6375f9996aaSopenharmony_ci  }
6385f9996aaSopenharmony_ci}
6395f9996aaSopenharmony_ci
6405f9996aaSopenharmony_ciaction_with_pydeps("open_source_package") {
6415f9996aaSopenharmony_ci  script = "//build/scripts/code_release.py"
6425f9996aaSopenharmony_ci  depfile = "$target_gen_dir/$target_name.d"
6435f9996aaSopenharmony_ci  if (osp_only_collect_file) {
6445f9996aaSopenharmony_ci    _output = "${root_build_dir}/packages/code_opensource/release_opensource/CodeOpensource.stamp"
6455f9996aaSopenharmony_ci  } else {
6465f9996aaSopenharmony_ci    _output = "${root_build_dir}/packages/code_opensource/CodeOpensource.tar.gz"
6475f9996aaSopenharmony_ci  }
6485f9996aaSopenharmony_ci  outputs = [ _output ]
6495f9996aaSopenharmony_ci  args = [
6505f9996aaSopenharmony_ci    "--depfile",
6515f9996aaSopenharmony_ci    rebase_path(depfile, root_build_dir),
6525f9996aaSopenharmony_ci    "--output",
6535f9996aaSopenharmony_ci    rebase_path(_output, root_build_dir),
6545f9996aaSopenharmony_ci    "--root-dir",
6555f9996aaSopenharmony_ci    rebase_path("//", root_build_dir),
6565f9996aaSopenharmony_ci    "--scan-dirs",
6575f9996aaSopenharmony_ci    osp_scan_dirs,
6585f9996aaSopenharmony_ci    "--scan-licenses",
6595f9996aaSopenharmony_ci    osp_scan_licenses,
6605f9996aaSopenharmony_ci  ]
6615f9996aaSopenharmony_ci
6625f9996aaSopenharmony_ci  # extend args
6635f9996aaSopenharmony_ci  if (osp_only_collect_file) {
6645f9996aaSopenharmony_ci    args += [ "--only-collect-file" ]
6655f9996aaSopenharmony_ci  }
6665f9996aaSopenharmony_ci}
6675f9996aaSopenharmony_ci
6685f9996aaSopenharmony_cigroup("package_testcase") {
6695f9996aaSopenharmony_ci  testonly = true
6705f9996aaSopenharmony_ci  deps = []
6715f9996aaSopenharmony_ci  foreach(_platform, target_platform_list) {
6725f9996aaSopenharmony_ci    deps += [
6735f9996aaSopenharmony_ci      ":copy_testfwk_required_files_${_platform}",
6745f9996aaSopenharmony_ci      ":package_testcase_${_platform}",
6755f9996aaSopenharmony_ci    ]
6765f9996aaSopenharmony_ci  }
6775f9996aaSopenharmony_ci}
6785f9996aaSopenharmony_ci
6795f9996aaSopenharmony_cigroup("test_example_template") {
6805f9996aaSopenharmony_ci  testonly = true
6815f9996aaSopenharmony_ci  if (device_name == "rk3568") {
6825f9996aaSopenharmony_ci    deps = [
6835f9996aaSopenharmony_ci      "//build/test/test_example_template/test_ohos_executable:test_ohos_executable",
6845f9996aaSopenharmony_ci      "//build/test/test_example_template/test_ohos_sa_profile:test_ohos_sa_profile",
6855f9996aaSopenharmony_ci      "//build/test/test_example_template/test_ohos_shared_library:test_ohos_shared_library",
6865f9996aaSopenharmony_ci      "//build/test/test_example_template/test_ohos_shared_library_module_install_dir:test_ohos_shared_library_module_install_dir",
6875f9996aaSopenharmony_ci      "//build/test/test_example_template/test_ohos_shared_library_output_name:test_ohos_shared_library_output_name",
6885f9996aaSopenharmony_ci      "//build/test/test_example_template/test_ohos_shared_library_relative_install_dir:test_ohos_shared_library_relative_install_dir",
6895f9996aaSopenharmony_ci      "//build/test/test_example_template/test_ohos_shared_library_testonly:test_ohos_shared_library_testonly",
6905f9996aaSopenharmony_ci      "//build/test/test_example_template/test_ohos_source_set:test_ohos_source_set",
6915f9996aaSopenharmony_ci      "//build/test/test_example_template/test_ohos_static_library:test_ohos_static_library",
6925f9996aaSopenharmony_ci    ]
6935f9996aaSopenharmony_ci  }
6945f9996aaSopenharmony_ci}
6955f9996aaSopenharmony_ci
6965f9996aaSopenharmony_cigroup("test_rust_template") {
6975f9996aaSopenharmony_ci  testonly = true
6985f9996aaSopenharmony_ci  if (device_name == "rk3568") {
6995f9996aaSopenharmony_ci    deps = [
7005f9996aaSopenharmony_ci      "//build/rust/tests/test_bin_cargo_crate:test_bin_cargo_crate",
7015f9996aaSopenharmony_ci      "//build/rust/tests/test_bin_crate:test_bin_crate",
7025f9996aaSopenharmony_ci      "//build/rust/tests/test_bindgen_test/test_for_extern_c:test_extern_c",
7035f9996aaSopenharmony_ci      "//build/rust/tests/test_bindgen_test/test_for_h:bindgen_test_for_h",
7045f9996aaSopenharmony_ci      "//build/rust/tests/test_bindgen_test/test_for_hello_world:bindgen_test",
7055f9996aaSopenharmony_ci      "//build/rust/tests/test_bindgen_test/test_for_hpp:bindgen_test_hpp",
7065f9996aaSopenharmony_ci      "//build/rust/tests/test_cdylib_crate:test_cdylib_crate",
7075f9996aaSopenharmony_ci      "//build/rust/tests/test_cxx:test_cxx_exe",
7085f9996aaSopenharmony_ci      "//build/rust/tests/test_cxx_rust:test_cxx_rust",
7095f9996aaSopenharmony_ci      "//build/rust/tests/test_dylib_crate:test_dylib_crate",
7105f9996aaSopenharmony_ci      "//build/rust/tests/test_idl:test_idl",
7115f9996aaSopenharmony_ci      "//build/rust/tests/test_proc_macro_cargo_crate:test_proc_macro_cargo_crate",
7125f9996aaSopenharmony_ci      "//build/rust/tests/test_proc_macro_crate/test_attribute_macro:test_attribute_macro",
7135f9996aaSopenharmony_ci      "//build/rust/tests/test_proc_macro_crate/test_derive_helper_macro:test_derive_helper_macro",
7145f9996aaSopenharmony_ci      "//build/rust/tests/test_proc_macro_crate/test_function_macro:test_function_macro",
7155f9996aaSopenharmony_ci      "//build/rust/tests/test_rlib_cargo_crate:test_rlib_crate_associated_bin",
7165f9996aaSopenharmony_ci      "//build/rust/tests/test_rlib_crate:test_rlib_crate",
7175f9996aaSopenharmony_ci      "//build/rust/tests/test_rust_st:test_rust_st",
7185f9996aaSopenharmony_ci      "//build/rust/tests/test_rust_ut:test_rust_ut",
7195f9996aaSopenharmony_ci      "//build/rust/tests/test_static_link:test_static_link",
7205f9996aaSopenharmony_ci      "//build/rust/tests/test_staticlib_crate:test_staticlib_crate",
7215f9996aaSopenharmony_ci    ]
7225f9996aaSopenharmony_ci  }
7235f9996aaSopenharmony_ci}
7245f9996aaSopenharmony_ci
7255f9996aaSopenharmony_cigroup("build_all_test_pkg") {
7265f9996aaSopenharmony_ci  testonly = true
7275f9996aaSopenharmony_ci  if (!is_llvm_build) {
7285f9996aaSopenharmony_ci    deps = [
7295f9996aaSopenharmony_ci      ":test_example_template",
7305f9996aaSopenharmony_ci      ":test_rust_template",
7315f9996aaSopenharmony_ci      "$root_build_dir/build_configs:parts_test",
7325f9996aaSopenharmony_ci      "//test/testfwk/developer_test:make_temp_test",
7335f9996aaSopenharmony_ci    ]
7345f9996aaSopenharmony_ci  }
7355f9996aaSopenharmony_ci}
736