brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.1 KiB · e13f926 Raw
95 lines · plain
1import("//compiler-rt/target.gni")2import("//compiler-rt/test/test.gni")3import("//llvm/lib/Target/targets.gni")4import("//llvm/utils/gn/build/toolchain/compiler.gni")5import("//llvm/utils/gn/build/write_cmake_config.gni")6import("//llvm/version.gni")7 8write_cmake_config("lit_site_cfg") {9  input = "lit.site.cfg.py.in"10  output = "$target_gen_dir/lit.site.cfg.py"11 12  values = [13    "ASAN_LIT_SOURCE_DIR=" + rebase_path("."),14    "ASAN_TEST_CONFIG_SUFFIX=$crt_current_target_suffix",15    "ASAN_TEST_TARGET_CFLAGS=$target_flags_string",16    "ASAN_TEST_TARGET_CC=",17    "ASAN_TEST_BITS=64",18    "ASAN_TEST_APPLE_PLATFORM=",19    "ASAN_TEST_MIN_DEPLOYMENT_TARGET_FLAG=",20    "ASAN_TEST_TARGET_ARCH=$crt_current_target_arch",21    "COMPILER_RT_ARM_THUMB=",22    "COMPILER_RT_BINARY_DIR=" + rebase_path("$root_gen_dir/compiler-rt"),23    "LIT_SITE_CFG_IN_HEADER=## Autogenerated from $input, do not edit",24  ]25  if (host_os == "mac") {26    values += [ "ASAN_TEST_DYNAMIC=1" ]27  } else {28    values += [ "ASAN_TEST_DYNAMIC=0" ]29  }30}31 32if (current_toolchain != host_toolchain) {33  group("asan_toolchain") {34    deps = [35      ":lit_site_cfg",36      "//compiler-rt/include($host_toolchain)",37      "//compiler-rt/lib/asan",38      "//compiler-rt/lib/asan:ignorelist($host_toolchain)",39      "//compiler-rt/lib/profile",40      "//compiler-rt/test:lit_common_configured",41      "//llvm/tools/llvm-nm($host_toolchain)",42      "//llvm/tools/llvm-objdump($host_toolchain)",43      "//llvm/tools/llvm-readobj($host_toolchain)",44      "//llvm/tools/llvm-size($host_toolchain)",45      "//llvm/tools/llvm-symbolizer($host_toolchain)",46      "//llvm/tools/sancov($host_toolchain)",47      "//llvm/utils/FileCheck($host_toolchain)",48      "//llvm/utils/count($host_toolchain)",49      "//llvm/utils/llvm-lit($host_toolchain)",50      "//llvm/utils/not($host_toolchain)",51      "//llvm/utils/split-file($host_toolchain)",52    ]53  }54}55 56supported_toolchains = []57if (host_os == "linux" || host_os == "mac") {58  supported_toolchains += [ "//llvm/utils/gn/build/toolchain:stage2_unix" ]59} else if (host_os == "win") {60  supported_toolchains += [ "//llvm/utils/gn/build/toolchain:stage2_win_x64" ]61}62 63group("asan") {64  deps = []65  foreach(toolchain, supported_toolchains) {66    deps += [ ":asan_toolchain($toolchain)" ]67  }68}69 70if (supported_toolchains != []) {71  action("check-asan") {72    script = "$root_build_dir/bin/llvm-lit"73    if (host_os == "win") {74      script += ".py"75    }76    args = [ "-sv" ]77    foreach(toolchain, supported_toolchains) {78      args += [ rebase_path(79              get_label_info(":lit_site_cfg($toolchain)", "target_gen_dir"),80              root_build_dir) ]81    }82    outputs = [ "$target_gen_dir/run-lit" ]  # Non-existing, so that ninja runs83                                             # it each time.84 85    # Since check-asan is always dirty, //:default doesn't depend on it so86    # that it's not part of the default ninja target.  Hence, check-asan87    # shouldn't have any deps except :asan. so that the default target is88    # sure to build all the deps.89    deps = [ ":asan" ]90    testonly = true91 92    pool = "//:console"93  }94}95