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/clang/clang.gni") 155f9996aaSopenharmony_ciimport("//build/ohos.gni") 165f9996aaSopenharmony_ci 175f9996aaSopenharmony_ciohos_prebuilt_shared_library("libclang_rt.asan.so") { 185f9996aaSopenharmony_ci enable_strip = true 195f9996aaSopenharmony_ci mini_debug = true 205f9996aaSopenharmony_ci if (target_cpu == "arm") { 215f9996aaSopenharmony_ci source = "${clang_base_path}/lib/clang/$clang_version/lib/arm-linux-ohos/libclang_rt.asan.so" 225f9996aaSopenharmony_ci } else if (target_cpu == "arm64") { 235f9996aaSopenharmony_ci source = "${clang_base_path}/lib/clang/$clang_version/lib/aarch64-linux-ohos/libclang_rt.asan.so" 245f9996aaSopenharmony_ci } else if (target_cpu == "x86_64") { 255f9996aaSopenharmony_ci source = "${clang_base_path}/lib/clang/$clang_version/lib/x86_64-linux-ohos/libclang_rt.asan.so" 265f9996aaSopenharmony_ci } else if (target_cpu == "riscv64") { 275f9996aaSopenharmony_ci source = "${clang_base_path}/lib/clang/$clang_version/lib/riscv64-linux-ohos/libclang_rt.asan.so" 285f9996aaSopenharmony_ci } else if (target_cpu == "loongarch64") { 295f9996aaSopenharmony_ci source = "${clang_base_path}/lib/clang/$clang_version/lib/loongarch64-linux-ohos/libclang_rt.asan.so" 305f9996aaSopenharmony_ci } else { 315f9996aaSopenharmony_ci source = "" 325f9996aaSopenharmony_ci } 335f9996aaSopenharmony_ci deps = [ ":asan_unstripped_copy" ] 345f9996aaSopenharmony_ci install_images = [ 355f9996aaSopenharmony_ci "system", 365f9996aaSopenharmony_ci "ramdisk", 375f9996aaSopenharmony_ci "updater", 385f9996aaSopenharmony_ci ] 395f9996aaSopenharmony_ci subsystem_name = "build" 405f9996aaSopenharmony_ci part_name = "build_framework" 415f9996aaSopenharmony_ci} 425f9996aaSopenharmony_ci 435f9996aaSopenharmony_ciohos_prebuilt_shared_library("libclang_rt.hwasan.so") { 445f9996aaSopenharmony_ci enable_strip = true 455f9996aaSopenharmony_ci mini_debug = true 465f9996aaSopenharmony_ci source = "${clang_base_path}/lib/clang/$clang_version/lib/aarch64-linux-ohos/libclang_rt.hwasan.so" 475f9996aaSopenharmony_ci install_images = [ 485f9996aaSopenharmony_ci "system", 495f9996aaSopenharmony_ci "ramdisk", 505f9996aaSopenharmony_ci "updater", 515f9996aaSopenharmony_ci ] 525f9996aaSopenharmony_ci subsystem_name = "build" 535f9996aaSopenharmony_ci part_name = "build_framework" 545f9996aaSopenharmony_ci} 555f9996aaSopenharmony_ci 565f9996aaSopenharmony_ciohos_prebuilt_shared_library("libclang_rt.tsan.so") { 575f9996aaSopenharmony_ci enable_strip = true 585f9996aaSopenharmony_ci mini_debug = true 595f9996aaSopenharmony_ci source = "${clang_base_path}/lib/clang/$clang_version/lib/aarch64-linux-ohos/libclang_rt.tsan.so" 605f9996aaSopenharmony_ci if (is_tsan) { 615f9996aaSopenharmony_ci deps = [ ":tsan_unstripped_copy" ] 625f9996aaSopenharmony_ci } 635f9996aaSopenharmony_ci 645f9996aaSopenharmony_ci install_images = [ 655f9996aaSopenharmony_ci "system", 665f9996aaSopenharmony_ci "ramdisk", 675f9996aaSopenharmony_ci "updater", 685f9996aaSopenharmony_ci ] 695f9996aaSopenharmony_ci subsystem_name = "build" 705f9996aaSopenharmony_ci part_name = "build_framework" 715f9996aaSopenharmony_ci} 725f9996aaSopenharmony_ci 735f9996aaSopenharmony_ciohos_prebuilt_etc("asan.options") { 745f9996aaSopenharmony_ci source = "asan.options" 755f9996aaSopenharmony_ci subsystem_name = "build" 765f9996aaSopenharmony_ci part_name = "build_framework" 775f9996aaSopenharmony_ci} 785f9996aaSopenharmony_ci 795f9996aaSopenharmony_ciohos_prebuilt_etc("asan.cfg") { 805f9996aaSopenharmony_ci source = "asan.cfg" 815f9996aaSopenharmony_ci module_install_dir = "etc/init/" 825f9996aaSopenharmony_ci subsystem_name = "build" 835f9996aaSopenharmony_ci part_name = "build_framework" 845f9996aaSopenharmony_ci} 855f9996aaSopenharmony_ci 865f9996aaSopenharmony_cicopy("asan_unstripped_copy") { 875f9996aaSopenharmony_ci if (target_cpu == "arm") { 885f9996aaSopenharmony_ci sources = [ "${clang_base_path}/lib/clang/$clang_version/lib/arm-linux-ohos/libclang_rt.asan.so" ] 895f9996aaSopenharmony_ci } else if (target_cpu == "arm64") { 905f9996aaSopenharmony_ci sources = [ "${clang_base_path}/lib/clang/$clang_version/lib/aarch64-linux-ohos/libclang_rt.asan.so" ] 915f9996aaSopenharmony_ci } else if (target_cpu == "x86_64") { 925f9996aaSopenharmony_ci sources = [ "${clang_base_path}/lib/clang/$clang_version/lib/x86_64-linux-ohos/libclang_rt.asan.so" ] 935f9996aaSopenharmony_ci } else if (target_cpu == "riscv64") { 945f9996aaSopenharmony_ci sources = [ "${clang_base_path}/lib/clang/$clang_version/lib/riscv64-linux-ohos/libclang_rt.asan.so" ] 955f9996aaSopenharmony_ci } else if (target_cpu == "loongarch64") { 965f9996aaSopenharmony_ci sources = [ "${clang_base_path}/lib/clang/$clang_version/lib/loongarch64-linux-ohos/libclang_rt.asan.so" ] 975f9996aaSopenharmony_ci } else { 985f9996aaSopenharmony_ci sources = [ "" ] 995f9996aaSopenharmony_ci } 1005f9996aaSopenharmony_ci outputs = [ root_out_dir + "/lib.unstripped/clang/{{source_file_part}}" ] 1015f9996aaSopenharmony_ci} 1025f9996aaSopenharmony_ci 1035f9996aaSopenharmony_cicopy("tsan_unstripped_copy") { 1045f9996aaSopenharmony_ci if (target_cpu == "arm") { 1055f9996aaSopenharmony_ci sources = [ "${clang_base_path}/lib/clang/$clang_version/lib/arm-linux-ohos/libclang_rt.tsan.so" ] 1065f9996aaSopenharmony_ci } else if (target_cpu == "arm64") { 1075f9996aaSopenharmony_ci sources = [ "${clang_base_path}/lib/clang/$clang_version/lib/aarch64-linux-ohos/libclang_rt.tsan.so" ] 1085f9996aaSopenharmony_ci } else if (target_cpu == "x86_64") { 1095f9996aaSopenharmony_ci sources = [ "${clang_base_path}/lib/clang/$clang_version/lib/x86_64-linux-ohos/libclang_rt.tsan.so" ] 1105f9996aaSopenharmony_ci } else { 1115f9996aaSopenharmony_ci sources = [ "" ] 1125f9996aaSopenharmony_ci } 1135f9996aaSopenharmony_ci outputs = [ root_out_dir + "/lib.unstripped/clang/{{source_file_part}}" ] 1145f9996aaSopenharmony_ci} 1155f9996aaSopenharmony_ci 1165f9996aaSopenharmony_ciohos_prebuilt_etc("tsan.options") { 1175f9996aaSopenharmony_ci source = "tsan.options" 1185f9996aaSopenharmony_ci subsystem_name = "build" 1195f9996aaSopenharmony_ci part_name = "build_framework" 1205f9996aaSopenharmony_ci} 121