diff --git a/clang-tools-extra/clangd/test/lit.site.cfg.py.in b/clang-tools-extra/clangd/test/lit.site.cfg.py.in --- a/clang-tools-extra/clangd/test/lit.site.cfg.py.in +++ b/clang-tools-extra/clangd/test/lit.site.cfg.py.in @@ -2,24 +2,15 @@ # Variables needed for common clang config. config.lit_tools_dir = "@LLVM_LIT_TOOLS_DIR@" -config.clang_tools_dir = "@CLANG_TOOLS_DIR@" -config.llvm_tools_dir = "@LLVM_TOOLS_DIR@" config.clang_libs_dir = "@CLANG_LIBS_DIR@" -config.llvm_libs_dir = "@LLVM_LIBS_DIR@" config.target_triple = "@TARGET_TRIPLE@" config.host_triple = "@LLVM_HOST_TRIPLE@" config.python_executable = "@Python3_EXECUTABLE@" - # Support substitution of the tools and libs dirs with user parameters. This is # used when we can't determine the tool dir at configuration time. -try: - config.clang_tools_dir = config.clang_tools_dir % lit_config.params - config.llvm_tools_dir = config.llvm_tools_dir % lit_config.params - config.llvm_libs_dir = config.llvm_libs_dir % lit_config.params -except KeyError: - e = sys.exc_info()[1] - key, = e.args - lit_config.fatal("unable to find %r parameter, use '--param=%s=VALUE'" % (key,key)) +config.clang_tools_dir = lit_config.substitute("@CLANG_TOOLS_DIR@") +config.llvm_tools_dir = lit_config.substitute("@LLVM_TOOLS_DIR@") +config.llvm_libs_dir = lit_config.substitute("@LLVM_LIBS_DIR@") config.clangd_source_dir = "@CMAKE_CURRENT_SOURCE_DIR@/.." config.clangd_binary_dir = "@CMAKE_CURRENT_BINARY_DIR@/.." diff --git a/clang-tools-extra/test/lit.site.cfg.py.in b/clang-tools-extra/test/lit.site.cfg.py.in --- a/clang-tools-extra/test/lit.site.cfg.py.in +++ b/clang-tools-extra/test/lit.site.cfg.py.in @@ -2,28 +2,19 @@ import sys -config.llvm_tools_dir = "@LLVM_TOOLS_DIR@" -config.llvm_libs_dir = "@LLVM_LIBS_DIR@" config.llvm_plugin_ext = "@LLVM_PLUGIN_EXT@" config.lit_tools_dir = "@LLVM_LIT_TOOLS_DIR@" config.clang_tools_binary_dir = "@CLANG_TOOLS_BINARY_DIR@" -config.clang_tools_dir = "@CLANG_TOOLS_DIR@" config.clang_libs_dir = "@SHLIBDIR@" config.python_executable = "@Python3_EXECUTABLE@" config.target_triple = "@TARGET_TRIPLE@" config.clang_tidy_staticanalyzer = @CLANG_TIDY_ENABLE_STATIC_ANALYZER@ config.has_plugins = @CLANG_PLUGIN_SUPPORT@ & ~@LLVM_INSTALL_TOOLCHAIN_ONLY@ - # Support substitution of the tools and libs dirs with user parameters. This is # used when we can't determine the tool dir at configuration time. -try: - config.clang_tools_dir = config.clang_tools_dir % lit_config.params - config.llvm_tools_dir = config.llvm_tools_dir % lit_config.params - config.llvm_libs_dir = config.llvm_libs_dir % lit_config.params -except KeyError: - e = sys.exc_info()[1] - key, = e.args - lit_config.fatal("unable to find %r parameter, use '--param=%s=VALUE'" % (key,key)) +config.llvm_tools_dir = lit_config.substitute("@LLVM_TOOLS_DIR@") +config.llvm_libs_dir = lit_config.substitute("@LLVM_LIBS_DIR@") +config.clang_tools_dir = lit_config.substitute("@CLANG_TOOLS_DIR@") import lit.llvm lit.llvm.initialize(lit_config, config) diff --git a/llvm/utils/lit/lit/LitConfig.py b/llvm/utils/lit/lit/LitConfig.py --- a/llvm/utils/lit/lit/LitConfig.py +++ b/llvm/utils/lit/lit/LitConfig.py @@ -175,6 +175,15 @@ # output. sys.stderr.flush() + def substitute(self, string): + """substitute - Interpolate params into a string""" + try: + return string % self.params + except KeyError as e: + key, = e.args + self.fatal("unable to find %r parameter, use '--param=%s=VALUE'" % ( + key,key)) + def note(self, message): if not self.quiet: self._write_message('note', message)