1# Copyright (c) 2021 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/config/clang/clang.gni")
15import("//build/ohos.gni")
16
17ohos_prebuilt_shared_library("libclang_rt.asan.so") {
18  enable_strip = true
19  mini_debug = true
20  if (target_cpu == "arm") {
21    source = "${clang_base_path}/lib/clang/$clang_version/lib/arm-linux-ohos/libclang_rt.asan.so"
22  } else if (target_cpu == "arm64") {
23    source = "${clang_base_path}/lib/clang/$clang_version/lib/aarch64-linux-ohos/libclang_rt.asan.so"
24  } else if (target_cpu == "x86_64") {
25    source = "${clang_base_path}/lib/clang/$clang_version/lib/x86_64-linux-ohos/libclang_rt.asan.so"
26  } else if (target_cpu == "riscv64") {
27    source = "${clang_base_path}/lib/clang/$clang_version/lib/riscv64-linux-ohos/libclang_rt.asan.so"
28  } else if (target_cpu == "loongarch64") {
29    source = "${clang_base_path}/lib/clang/$clang_version/lib/loongarch64-linux-ohos/libclang_rt.asan.so"
30  } else {
31    source = ""
32  }
33  deps = [ ":asan_unstripped_copy" ]
34  install_images = [
35    "system",
36    "ramdisk",
37    "updater",
38  ]
39  subsystem_name = "build"
40  part_name = "build_framework"
41}
42
43ohos_prebuilt_shared_library("libclang_rt.hwasan.so") {
44  enable_strip = true
45  mini_debug = true
46  source = "${clang_base_path}/lib/clang/$clang_version/lib/aarch64-linux-ohos/libclang_rt.hwasan.so"
47  install_images = [
48    "system",
49    "ramdisk",
50    "updater",
51  ]
52  subsystem_name = "build"
53  part_name = "build_framework"
54}
55
56ohos_prebuilt_shared_library("libclang_rt.tsan.so") {
57  enable_strip = true
58  mini_debug = true
59  source = "${clang_base_path}/lib/clang/$clang_version/lib/aarch64-linux-ohos/libclang_rt.tsan.so"
60  if (is_tsan) {
61    deps = [ ":tsan_unstripped_copy" ]
62  }
63
64  install_images = [
65    "system",
66    "ramdisk",
67    "updater",
68  ]
69  subsystem_name = "build"
70  part_name = "build_framework"
71}
72
73ohos_prebuilt_etc("asan.options") {
74  source = "asan.options"
75  subsystem_name = "build"
76  part_name = "build_framework"
77}
78
79ohos_prebuilt_etc("asan.cfg") {
80  source = "asan.cfg"
81  module_install_dir = "etc/init/"
82  subsystem_name = "build"
83  part_name = "build_framework"
84}
85
86copy("asan_unstripped_copy") {
87  if (target_cpu == "arm") {
88    sources = [ "${clang_base_path}/lib/clang/$clang_version/lib/arm-linux-ohos/libclang_rt.asan.so" ]
89  } else if (target_cpu == "arm64") {
90    sources = [ "${clang_base_path}/lib/clang/$clang_version/lib/aarch64-linux-ohos/libclang_rt.asan.so" ]
91  } else if (target_cpu == "x86_64") {
92    sources = [ "${clang_base_path}/lib/clang/$clang_version/lib/x86_64-linux-ohos/libclang_rt.asan.so" ]
93  } else if (target_cpu == "riscv64") {
94    sources = [ "${clang_base_path}/lib/clang/$clang_version/lib/riscv64-linux-ohos/libclang_rt.asan.so" ]
95  } else if (target_cpu == "loongarch64") {
96    sources = [ "${clang_base_path}/lib/clang/$clang_version/lib/loongarch64-linux-ohos/libclang_rt.asan.so" ]
97  } else {
98    sources = [ "" ]
99  }
100  outputs = [ root_out_dir + "/lib.unstripped/clang/{{source_file_part}}" ]
101}
102
103copy("tsan_unstripped_copy") {
104  if (target_cpu == "arm") {
105    sources = [ "${clang_base_path}/lib/clang/$clang_version/lib/arm-linux-ohos/libclang_rt.tsan.so" ]
106  } else if (target_cpu == "arm64") {
107    sources = [ "${clang_base_path}/lib/clang/$clang_version/lib/aarch64-linux-ohos/libclang_rt.tsan.so" ]
108  } else if (target_cpu == "x86_64") {
109    sources = [ "${clang_base_path}/lib/clang/$clang_version/lib/x86_64-linux-ohos/libclang_rt.tsan.so" ]
110  } else {
111    sources = [ "" ]
112  }
113  outputs = [ root_out_dir + "/lib.unstripped/clang/{{source_file_part}}" ]
114}
115
116ohos_prebuilt_etc("tsan.options") {
117  source = "tsan.options"
118  subsystem_name = "build"
119  part_name = "build_framework"
120}
121