From 751390fed3acfb505bcdac365797ec894dde862f Mon Sep 17 00:00:00 2001 From: Sam McCall Date: Thu, 2 May 2019 08:00:39 +0000 Subject: [clangd] Restore conventional names for lit configs, and .in/.py split. Fix build_mode indirection. git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@359763 91177308-0d34-0410-b5e6-96231b3b80d8 --- clangd/test/CMakeLists.txt | 14 ++++++++++++-- clangd/test/lit.cfg.in | 30 ------------------------------ clangd/test/lit.cfg.py | 19 +++++++++++++++++++ clangd/test/lit.site.cfg.py.in | 28 ++++++++++++++++++++++++++++ clangd/unittests/CMakeLists.txt | 4 ++-- clangd/unittests/lit.cfg.in | 23 ----------------------- clangd/unittests/lit.cfg.py | 21 +++++++++++++++++++++ clangd/unittests/lit.site.cfg.py.in | 11 +++++++++++ 8 files changed, 93 insertions(+), 57 deletions(-) delete mode 100644 clangd/test/lit.cfg.in create mode 100644 clangd/test/lit.cfg.py create mode 100644 clangd/test/lit.site.cfg.py.in delete mode 100644 clangd/unittests/lit.cfg.in create mode 100644 clangd/unittests/lit.cfg.py create mode 100644 clangd/unittests/lit.site.cfg.py.in diff --git a/clangd/test/CMakeLists.txt b/clangd/test/CMakeLists.txt index 139300f1..bbb582f1 100644 --- a/clangd/test/CMakeLists.txt +++ b/clangd/test/CMakeLists.txt @@ -1,3 +1,13 @@ +# Set CLANG_TOOLS_DIR to buildtree/bin, or buildtree/%(build_mode)s/bin if the +# location is dynamic. The latter must be interpolated by lit configs. +# FIXME: this is duplicated in many places. +if (CMAKE_CFG_INTDIR STREQUAL ".") + set(LLVM_BUILD_MODE ".") +else () + set(LLVM_BUILD_MODE "%(build_mode)s") +endif () +string(REPLACE ${CMAKE_CFG_INTDIR} ${LLVM_BUILD_MODE} CLANG_TOOLS_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR}) + set(CLANGD_TEST_DEPS clangd ClangdTests @@ -18,8 +28,8 @@ foreach(dep FileCheck count not) endforeach() configure_lit_site_cfg( - ${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.in - ${CMAKE_CURRENT_BINARY_DIR}/lit.cfg) + ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in + ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py) add_lit_testsuite(check-clangd "Running the Clangd regression tests" ${CMAKE_CURRENT_BINARY_DIR}/../unittests;${CMAKE_CURRENT_BINARY_DIR} diff --git a/clangd/test/lit.cfg.in b/clangd/test/lit.cfg.in deleted file mode 100644 index 9340b876..00000000 --- a/clangd/test/lit.cfg.in +++ /dev/null @@ -1,30 +0,0 @@ -@LIT_SITE_CFG_IN_HEADER@ - -import lit.llvm -import lit.formats - -# Reuse clang configuration (PATH setup, etc). -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@" -lit.llvm.initialize(lit_config, config) -lit.llvm.llvm_config.use_clang() - -config.name = 'Clangd' -config.suffixes = ['.test'] -config.excludes = ['Inputs'] -config.test_format = lit.formats.ShTest(not lit.llvm.llvm_config.use_lit_shell) -config.test_source_root = "@CMAKE_CURRENT_SOURCE_DIR@" -config.test_exec_root = "@CMAKE_CURRENT_BINARY_DIR@" - -# Clangd-specific lit environment. -config.substitutions.append(('%clangd-benchmark-dir', - "@CMAKE_CURRENT_BINARY_DIR@/../benchmarks")) - -if @CLANGD_BUILD_XPC@: - config.available_features.add('clangd-xpc-support') - diff --git a/clangd/test/lit.cfg.py b/clangd/test/lit.cfg.py new file mode 100644 index 00000000..5030ca35 --- /dev/null +++ b/clangd/test/lit.cfg.py @@ -0,0 +1,19 @@ +import lit.llvm + +lit.llvm.initialize(lit_config, config) +lit.llvm.llvm_config.use_clang() + +config.name = 'Clangd' +config.suffixes = ['.test'] +config.excludes = ['Inputs'] +config.test_format = lit.formats.ShTest(not lit.llvm.llvm_config.use_lit_shell) +config.test_source_root = config.clangd_source_dir + "/test" +config.test_exec_root = config.clangd_binary_dir + "/test" + +# Clangd-specific lit environment. +config.substitutions.append(('%clangd-benchmark-dir', + config.clangd_binary_dir + "/benchmarks")) + +if config.clangd_build_xpc: + config.available_features.add('clangd-xpc-support') + diff --git a/clangd/test/lit.site.cfg.py.in b/clangd/test/lit.site.cfg.py.in new file mode 100644 index 00000000..0a8301f3 --- /dev/null +++ b/clangd/test/lit.site.cfg.py.in @@ -0,0 +1,28 @@ +@LIT_SITE_CFG_IN_HEADER@ + +# 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@" + +# 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.clangd_source_dir = "@CMAKE_CURRENT_SOURCE_DIR@/.." +config.clangd_binary_dir = "@CMAKE_CURRENT_BINARY_DIR@/.." +config.clangd_build_xpc = @CLANGD_BUILD_XPC@ + +# Delegate logic to lit.cfg.py. +lit_config.load_config(config, "@CMAKE_CURRENT_SOURCE_DIR@/lit.cfg.py") diff --git a/clangd/unittests/CMakeLists.txt b/clangd/unittests/CMakeLists.txt index 0db99368..96b1d360 100644 --- a/clangd/unittests/CMakeLists.txt +++ b/clangd/unittests/CMakeLists.txt @@ -93,5 +93,5 @@ if (CLANGD_BUILD_XPC) endif () configure_lit_site_cfg( - ${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.in - ${CMAKE_CURRENT_BINARY_DIR}/lit.cfg) + ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in + ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py) diff --git a/clangd/unittests/lit.cfg.in b/clangd/unittests/lit.cfg.in deleted file mode 100644 index 14f365e2..00000000 --- a/clangd/unittests/lit.cfg.in +++ /dev/null @@ -1,23 +0,0 @@ -@LIT_SITE_CFG_IN_HEADER@ -# This is a shim to run the gtest unittests in ../unittests using lit. - -import lit.formats -config.name = "Clangd Unit Tests" -config.test_format = lit.formats.GoogleTest('.', 'Tests') -config.test_source_root = "@CMAKE_CURRENT_BINARY_DIR@" -config.test_exec_root = "@CMAKE_CURRENT_BINARY_DIR@" - -# Point the dynamic loader at dynamic libraries in 'lib'. -# XXX: it seems every project has a copy of this logic. Move it somewhere. -import platform -if platform.system() == 'Darwin': - shlibpath_var = 'DYLD_LIBRARY_PATH' -elif platform.system() == 'Windows': - shlibpath_var = 'PATH' -else: - shlibpath_var = 'LD_LIBRARY_PATH' -config.environment[shlibpath_var] = os.path.pathsep.join(( - "@SHLIBDIR@", "@LLVM_LIBS_DIR@", - config.environment.get(shlibpath_var,''))) - - diff --git a/clangd/unittests/lit.cfg.py b/clangd/unittests/lit.cfg.py new file mode 100644 index 00000000..754835e6 --- /dev/null +++ b/clangd/unittests/lit.cfg.py @@ -0,0 +1,21 @@ +import lit.formats +config.name = "Clangd Unit Tests" +config.test_format = lit.formats.GoogleTest('.', 'Tests') +config.test_source_root = config.clangd_binary_dir + "/unittests" +config.test_exec_root = config.clangd_binary_dir + "/unittests" + +# Point the dynamic loader at dynamic libraries in 'lib'. +# FIXME: it seems every project has a copy of this logic. Move it somewhere. +import platform +if platform.system() == 'Darwin': + shlibpath_var = 'DYLD_LIBRARY_PATH' +elif platform.system() == 'Windows': + shlibpath_var = 'PATH' +else: + shlibpath_var = 'LD_LIBRARY_PATH' +config.environment[shlibpath_var] = os.path.pathsep.join(( + "@SHLIBDIR@", "@LLVM_LIBS_DIR@", + config.environment.get(shlibpath_var,''))) + + + diff --git a/clangd/unittests/lit.site.cfg.py.in b/clangd/unittests/lit.site.cfg.py.in new file mode 100644 index 00000000..3fdf084a --- /dev/null +++ b/clangd/unittests/lit.site.cfg.py.in @@ -0,0 +1,11 @@ +@LIT_SITE_CFG_IN_HEADER@ +# This is a shim to run the gtest unittests in ../unittests using lit. + +config.llvm_libs_dir = "@LLVM_LIBS_DIR@" +config.shlibdir = "@SHLIBDIR@" + +config.clangd_source_dir = "@CMAKE_CURRENT_SOURCE_DIR@/.." +config.clangd_binary_dir = "@CMAKE_CURRENT_BINARY_DIR@/.." + +# Delegate logic to lit.cfg.py. +lit_config.load_config(config, "@CMAKE_CURRENT_SOURCE_DIR@/lit.cfg.py") -- cgit v1.2.3