
This reverts commit aa495214b39d475bab24b468de7a7c676ce9e366. As discussed in https://github.com/llvm/llvm-project/issues/53475 this patch allows for using LLD-as-a-lib. It also lets clients link only the drivers that they want (see unit tests). This also adds the unit test infra as in the other LLVM projects. Among the test coverage, I've added the original issue from @krzysz00, see: https://github.com/ROCmSoftwarePlatform/D108850-lld-bug-reproduction Important note: this doesn't allow (yet) linking in parallel. This will come a bit later hopefully, in subsequent patches, for COFF at least. Differential revision: https://reviews.llvm.org/D119049
87 lines
1.8 KiB
CMake
87 lines
1.8 KiB
CMake
llvm_canonicalize_cmake_booleans(
|
|
ENABLE_BACKTRACES
|
|
LLVM_ENABLE_ZLIB
|
|
LLVM_ENABLE_ZSTD
|
|
LLVM_ENABLE_LIBXML2
|
|
LLD_DEFAULT_LD_LLD_IS_MINGW
|
|
LLVM_BUILD_EXAMPLES
|
|
LLVM_ENABLE_PLUGINS
|
|
LLVM_BYE_LINK_INTO_TOOLS
|
|
)
|
|
|
|
configure_lit_site_cfg(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
|
|
${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py
|
|
MAIN_CONFIG
|
|
${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py
|
|
)
|
|
configure_lit_site_cfg(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
|
|
${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg.py
|
|
MAIN_CONFIG
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.cfg.py
|
|
PATHS
|
|
"SHLIBDIR"
|
|
"LLD_BINARY_DIR"
|
|
"LLD_SOURCE_DIR"
|
|
)
|
|
|
|
set(LLD_TEST_DEPS lld)
|
|
if (NOT LLD_BUILT_STANDALONE)
|
|
list(APPEND LLD_TEST_DEPS
|
|
FileCheck
|
|
LLDUnitTests
|
|
count
|
|
dsymutil
|
|
llc
|
|
llvm-ar
|
|
llvm-as
|
|
llvm-bcanalyzer
|
|
llvm-config
|
|
llvm-cvtres
|
|
llvm-dis
|
|
llvm-dwarfdump
|
|
llvm-lib
|
|
llvm-lipo
|
|
llvm-mc
|
|
llvm-nm
|
|
llvm-objcopy
|
|
llvm-objdump
|
|
llvm-otool
|
|
llvm-pdbutil
|
|
llvm-profdata
|
|
llvm-readelf
|
|
llvm-readobj
|
|
llvm-strip
|
|
llvm-symbolizer
|
|
not
|
|
obj2yaml
|
|
opt
|
|
split-file
|
|
yaml2obj
|
|
)
|
|
if (NOT WIN32 AND LLVM_BUILD_EXAMPLES)
|
|
list(APPEND LLD_TEST_DEPS
|
|
Bye
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
add_lit_testsuite(check-lld "Running lld test suite"
|
|
${CMAKE_CURRENT_BINARY_DIR}
|
|
DEPENDS ${LLD_TEST_DEPS}
|
|
)
|
|
set_target_properties(check-lld PROPERTIES FOLDER "lld tests")
|
|
|
|
add_custom_target(lld-test-depends DEPENDS ${LLD_TEST_DEPS})
|
|
set_target_properties(lld-test-depends PROPERTIES FOLDER "lld tests")
|
|
|
|
add_lit_testsuites(LLD ${CMAKE_CURRENT_SOURCE_DIR}
|
|
DEPENDS ${LLD_TEST_DEPS}
|
|
)
|
|
|
|
# Add a legacy target spelling: lld-test
|
|
add_custom_target(lld-test)
|
|
add_dependencies(lld-test check-lld)
|
|
set_target_properties(lld-test PROPERTIES FOLDER "lld tests")
|