import("//clang-tools-extra/clangd/test/clangd_lit_site_cfg_files.gni") import("//clang-tools-extra/pseudo/test/clang_pseudo_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("//lldb/test/lldb_lit_site_cfg_files.gni") import("//llvm/test/llvm_lit_site_cfg_files.gni") import("//llvm/utils/gn/build/write_cmake_config.gni") import("//llvm/utils/llvm-lit/lit_path_function.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" ] deps += [ "//clang-tools-extra/clangd/test:lit_site_cfg", "//clang-tools-extra/clangd/test:lit_unit_site_cfg", "//clang-tools-extra/pseudo/test:lit_site_cfg", "//clang-tools-extra/pseudo/test:lit_unit_site_cfg", "//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", "//lldb/test:lit_api_site_cfg", "//lldb/test:lit_shell_site_cfg", "//lldb/test:lit_site_cfg", "//lldb/test:lit_unit_site_cfg", "//llvm/test:lit_site_cfg", "//llvm/test:lit_unit_site_cfg", ] entries = [ [ "//clang-tools-extra/test/lit.cfg.py", clang_tools_extra_lit_site_cfg_file, ], [ "//clang-tools-extra/test/Unit/lit.cfg.py", clang_tools_extra_lit_unit_site_cfg_file, ], [ "//clang-tools-extra/clangd/test/lit.cfg.py", clangd_lit_site_cfg_file, ], [ "//clang-tools-extra/clangd/unittests/lit.cfg.py", clangd_lit_unit_site_cfg_file, ], [ "//clang-tools-extra/pseudo/test/lit.cfg.py", clang_pseudo_lit_site_cfg_file, ], [ "//clang-tools-extra/pseudo/test/Unit/lit.cfg.py", clang_pseudo_lit_unit_site_cfg_file, ], [ "//clang/test/lit.cfg.py", clang_lit_site_cfg_file, ], [ "//clang/test/Unit/lit.cfg.py", clang_lit_unit_site_cfg_file, ], [ "//lld/test/lit.cfg.py", lld_lit_site_cfg_file, ], [ "//lld/test/Unit/lit.cfg.py", lld_lit_unit_site_cfg_file, ], [ "//lldb/test/lit.cfg.py", lldb_lit_site_cfg_file, ], [ "//lldb/test/API/lit.cfg.py", lldb_lit_api_site_cfg_file, ], [ "//lldb/test/Shell/lit.cfg.py", lldb_lit_shell_site_cfg_file, ], [ "//lldb/test/Unit/lit.cfg.py", lldb_lit_unit_site_cfg_file, ], [ "//llvm/test/lit.cfg.py", llvm_lit_site_cfg_file, ], [ "//llvm/test/Unit/lit.cfg.py", llvm_lit_unit_site_cfg_file, ], ] # 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. # Note: \n is converted to a newline by write_cmake_config.py, not by gn. config_map = lit_path_function + "\n" dir = get_path_info(output, "dir") foreach(entry, entries) { config_map += "\nmap_config(\n path(r'" + rebase_path(entry[0], dir) + "'),\n path(r'" + rebase_path(entry[1], dir) + "'))" } values = [ "LLVM_SOURCE_DIR=" + rebase_path("//llvm", dir), "Python3_EXECUTABLE=/usr/bin/env $python_path", "BUILD_MODE=.", "LLVM_LIT_CONFIG_MAP=" + config_map, ] }