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