brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.7 KiB · 97e4fdf Raw
89 lines · plain
1import("//compiler-rt/lib/builtins/sources.gni")2import("//compiler-rt/target.gni")3import("//compiler-rt/test/test.gni")4import("//llvm/lib/Target/targets.gni")5import("//llvm/utils/gn/build/toolchain/compiler.gni")6import("//llvm/utils/gn/build/write_cmake_config.gni")7import("//llvm/version.gni")8 9write_cmake_config("builtins_mode_cfg") {10  input = "Unit/lit.site.cfg.py.in"11  output =12      "$target_gen_dir/${crt_current_target_arch}BuiltinsConfig/lit.site.cfg.py"13  values = [14    "BUILTINS_TEST_CONFIG_SUFFIX=$crt_current_target_suffix",15    "BUILTINS_LIT_SOURCE_DIR=" + rebase_path("."),16    "BUILTINS_TEST_TARGET_ARCH=$crt_current_target_arch",17    "SANITIZER_TEST_CXX_LIBNAME=libc++",18    "COMPILER_RT_BUILD_CRT_PYBOOL=False",19    "MSVC_PYBOOL=False",20    "BUILTINS_IS_MSVC_PYBOOL=False",21 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 26  features = ""27  foreach(source, builtins_sources) {28    if (features != "") {29      features += ";"30    }31    features += "librt_has_" + get_path_info(source, "name")32  }33  values += [ "BUILTINS_LIT_SOURCE_FEATURES=$features" ]34 35  cflags = ""36  foreach(define, builtins_defines) {37    cflags += " -D$define"38  }39  values += [ "BUILTINS_TEST_TARGET_CFLAGS=$cflags" ]40}41 42if (current_toolchain != host_toolchain) {43  group("builtins_toolchain") {44    deps = [45      ":builtins_mode_cfg",46      "//compiler-rt/include($host_toolchain)",47      "//compiler-rt/lib/builtins",48      "//compiler-rt/test:lit_common_configured",49      "//llvm/utils/not($host_toolchain)",50    ]51  }52}53 54supported_toolchains = []55if (host_os == "linux") {56  supported_toolchains += [ "//llvm/utils/gn/build/toolchain:stage2_unix" ]57}58 59group("builtins") {60  deps = []61  foreach(toolchain, supported_toolchains) {62    deps += [ ":builtins_toolchain($toolchain)" ]63  }64}65 66if (supported_toolchains != []) {67  action("check-builtins") {68    script = "$root_build_dir/bin/llvm-lit"69    args = [ "-sv" ]70    foreach(toolchain, supported_toolchains) {71      test_dir = rebase_path(72              get_label_info(":lit_site_cfg($toolchain)", "target_gen_dir"),73              root_build_dir)74      args += [ test_dir + "/${crt_current_target_arch}BuiltinsConfig" ]75    }76    outputs = [ "$target_gen_dir/run-lit" ]  # Non-existing, so that ninja runs77                                             # it each time.78 79    # Since check-builtins is always dirty, //:default doesn't depend on it so80    # that it's not part of the default ninja target.  Hence, check-builtins81    # shouldn't have any deps except :builtins. so that the default target is82    # sure to build all the deps.83    deps = [ ":builtins" ]84    testonly = true85 86    pool = "//:console"87  }88}89