[clangd] Restore conventional names for lit configs, and .in/.py split. Fix build_mode indirection.

llvm-svn: 359763
This commit is contained in:
Sam McCall 2019-05-02 08:00:39 +00:00
parent cfc4519ef3
commit c9f5220af9
7 changed files with 76 additions and 40 deletions

View File

@ -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}

View File

@ -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')

View File

@ -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')

View File

@ -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")

View File

@ -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)

View File

@ -1,14 +1,11 @@
@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@"
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'.
# XXX: it seems every project has a copy of this logic. Move it somewhere.
# 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'
@ -21,3 +18,4 @@ config.environment[shlibpath_var] = os.path.pathsep.join((
config.environment.get(shlibpath_var,'')))

View File

@ -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")