reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45
   46
   47
   48
   49
   50
   51
   52
   53
   54
   55
   56
   57
   58
   59
   60
   61
   62
   63
   64
   65
   66
   67
   68
   69
   70
   71
   72
import("//clang-tools-extra/clangd/test/clangd_lit_site_cfg_files.gni")
import("//clang-tools-extra/test/clang_tools_extra_lit_site_cfg_files.gni")
import("//clang/test/clang_lit_site_cfg_files.gni")
import("//lld/test/lld_lit_site_cfg_files.gni")
import("//llvm/test/llvm_lit_site_cfg_files.gni")
import("//llvm/utils/gn/build/write_cmake_config.gni")

write_cmake_config("llvm-lit") {
  input = "llvm-lit.in"
  output = "$root_out_dir/bin/llvm-lit"

  if (host_os == "win") {
    # llvm-lit needs suffix.py for multiprocess to find a main module.
    output = "${output}.py"
  }

  # lit's lit/llvm/config.py shells out to llvm-config.
  deps = [
    "//llvm/tools/llvm-config",
  ]

  # Generate LLVM_LIT_CONFIG_MAP parameter.
  # llvm-lit contains a mapping from each lit.cfg.py file to the corresponding
  # generated llvm.site.cfg.py file, so llvm-lit depends on all the targets to
  # generate the site.cfg.py file.
  config_map = ""

  deps += [
    "//clang-tools-extra/test:lit_site_cfg",
    "//clang-tools-extra/test:lit_unit_site_cfg",
    "//clang/test:lit_site_cfg",
    "//clang/test:lit_unit_site_cfg",
    "//lld/test:lit_site_cfg",
    "//lld/test:lit_unit_site_cfg",
    "//llvm/test:lit_site_cfg",
    "//llvm/test:lit_unit_site_cfg",
  ]

  # Note: \n is converted into a newline by write_cmake_config.py, not by gn.
  config_map +=
      "map_config('" + rebase_path("//clang-tools-extra/test/lit.cfg.py") +
      "', '" + rebase_path(clang_tools_extra_lit_site_cfg_file) + "')\n"
  config_map +=
      "map_config('" + rebase_path("//clang-tools-extra/test/Unit/lit.cfg.py") +
      "', '" + rebase_path(clang_tools_extra_lit_unit_site_cfg_file) + "')\n"
  config_map += "map_config('" +
                rebase_path("//clang-tools-extra/clangd/test/lit.cfg.py") +
                "', '" + rebase_path(clangd_lit_site_cfg_file) + "')\n"
  config_map += "map_config('" +
                rebase_path("//clang-tools-extra/clang/unittests/lit.cfg.py") +
                "', '" + rebase_path(clangd_lit_unit_site_cfg_file) + "')\n"
  config_map += "map_config('" + rebase_path("//clang/test/lit.cfg.py") +
                "', '" + rebase_path(clang_lit_site_cfg_file) + "')\n"
  config_map += "map_config('" + rebase_path("//clang/test/Unit/lit.cfg.py") +
                "', '" + rebase_path(clang_lit_unit_site_cfg_file) + "')\n"
  config_map += "map_config('" + rebase_path("//lld/test/lit.cfg.py") + "', '" +
                rebase_path(lld_lit_site_cfg_file) + "')\n"
  config_map += "map_config('" + rebase_path("//lld/test/Unit/lit.cfg.py") +
                "', '" + rebase_path(lld_lit_unit_site_cfg_file) + "')\n"
  config_map += "map_config('" + rebase_path("//llvm/test/lit.cfg.py") +
                "', '" + rebase_path(llvm_lit_site_cfg_file) + "')\n"
  config_map += "map_config('" + rebase_path("//llvm/test/Unit/lit.cfg.py") +
                "', '" + rebase_path(llvm_lit_unit_site_cfg_file) + "')\n"

  values = [
    "LLVM_SOURCE_DIR=" + rebase_path("//llvm"),
    "LLVM_BINARY_DIR=" +
        rebase_path(get_label_info("//llvm", "target_out_dir")),
    "BUILD_MODE=.",
    "LLVM_LIT_CONFIG_MAP=" + config_map,
  ]
}