1# Copyright (c) 2022 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6#     http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14import("//build/ohos.gni")
15import("//build/ohos_var.gni")
16
17group("tests") {
18  deps = [
19    ":cxx_test_host_and_target",
20    "test_cdylib_crate:test_cdylib_crate(${host_toolchain})",
21    "test_proc_macro_crate:test_proc_macro_crate(${host_toolchain})",
22  ]
23  deps += [
24    "//build/rust/tests/test_cdylib_crate",
25    "//build/rust/tests/test_staticlib_crate",
26  ]
27  deps += [ ":cargo_crate_test" ]
28  if (is_system_component) {
29    deps += [ "//build/rust/tests/test_idl" ]
30  }
31  deps += [ ":original_libstd.so" ]
32  if (!use_clang_coverage) {
33    deps += [
34      "test_bin_crate:test_bin_crate(${host_toolchain})",
35      "test_dylib_crate:test_dylib_crate(${host_toolchain})",
36      "test_static_link:test_static_link(${host_toolchain})",
37      "//build/rust/tests/test_bin_crate",
38      "//build/rust/tests/test_dylib_crate",
39      "//build/rust/tests/test_rlib_crate",
40      "//build/rust/tests/test_static_link",
41    ]
42  }
43}
44
45group("ohos_rust_xxxtest_tests") {
46  testonly = true
47  deps = [
48    "test_rust_st:test_rust_st(${host_toolchain})",
49    "test_rust_ut:test_rust_ut(${host_toolchain})",
50    "//build/rust/tests/test_proc_macro_crate/test_derive_macro:test_derive_macro(${host_toolchain})",
51    "//build/rust/tests/test_rust_st",
52    "//build/rust/tests/test_rust_ut",
53  ]
54}
55
56group("cargo_crate_test") {
57  deps = [ "test_proc_macro_cargo_crate:test_proc_macro_cargo_crate(${host_toolchain})" ]
58  if (!use_clang_coverage) {
59    deps += [
60      "test_bin_cargo_crate:test_bin_cargo_crate",
61      "test_rlib_cargo_crate:test_rlib_crate_associated_bin",
62    ]
63  }
64}
65
66group("cxx_test_host_and_target") {
67  deps = [
68    "//build/rust/tests/test_cxx:test_cxx_exe",
69    "//build/rust/tests/test_cxx:test_cxx_exe(${host_toolchain})",
70  ]
71  if (!use_clang_coverage && !use_libfuzzer) {
72    deps += [
73      "//build/rust/tests/test_bindgen_test/test_for_extern_c:test_extern_c",
74      "//build/rust/tests/test_bindgen_test/test_for_extern_c:test_extern_c(${host_toolchain})",
75      "//build/rust/tests/test_bindgen_test/test_for_h:bindgen_test_for_h",
76      "//build/rust/tests/test_bindgen_test/test_for_h:bindgen_test_for_h(${host_toolchain})",
77      "//build/rust/tests/test_bindgen_test/test_for_hello_world:bindgen_test",
78      "//build/rust/tests/test_bindgen_test/test_for_hello_world:bindgen_test(${host_toolchain})",
79      "//build/rust/tests/test_bindgen_test/test_for_hpp:bindgen_test_hpp",
80      "//build/rust/tests/test_bindgen_test/test_for_hpp:bindgen_test_hpp(${host_toolchain})",
81      "//build/rust/tests/test_cxx_rust:test_cxx_rust",
82      "//build/rust/tests/test_cxx_rust:test_cxx_rust(${host_toolchain})",
83    ]
84  }
85}
86
87ohos_prebuilt_shared_library("original_libstd.so") {
88  if (current_cpu == "arm64") {
89    source = "//prebuilts/rustc/linux-x86_64/current/lib/rustlib/aarch64-unknown-linux-ohos/lib/libstd.dylib.so"
90    output = "libstd.dylib.so"
91  } else if (current_cpu == "arm") {
92    source = "//prebuilts/rustc/linux-x86_64/current/lib/rustlib/armv7-unknown-linux-ohos/lib/libstd.dylib.so"
93    output = "libstd.dylib.so"
94  } else if ((current_cpu == "x86_64" || current_cpu == "x64") &&
95             current_os == "ohos") {
96    source = "//prebuilts/rustc/linux-x86_64/current/lib/rustlib/x86_64-unknown-linux-ohos/lib/libstd.dylib.so"
97    output = "libstd.dylib.so"
98  } else if (current_cpu == "x86_64" || current_cpu == "x64") {
99    source =
100        "//prebuilts/rustc/linux-x86_64/current/lib/libstd-ae85deb1fb5d0029.so"
101    output = "libstd-ae85deb1fb5d0029.so"
102  }
103  enable_strip = true
104  install_images = [
105    "system",
106    "updater",
107  ]
108  subsystem_name = "build"
109  part_name = "build_framework"
110}
111