mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-30 05:36:44 +00:00
6f2e92c10c
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
59 lines
1.2 KiB
CMake
59 lines
1.2 KiB
CMake
find_first_existing_vc_file("${LLVM_MAIN_SRC_DIR}" llvm_vc)
|
|
find_first_existing_vc_file("${LLD_SOURCE_DIR}" lld_vc)
|
|
|
|
set(version_inc "${CMAKE_CURRENT_BINARY_DIR}/VCSVersion.inc")
|
|
set(generate_vcs_version_script "${LLVM_CMAKE_DIR}/GenerateVersionFromVCS.cmake")
|
|
|
|
if(lld_vc AND LLVM_APPEND_VC_REV)
|
|
set(lld_source_dir ${LLD_SOURCE_DIR})
|
|
endif()
|
|
|
|
add_custom_command(OUTPUT "${version_inc}"
|
|
DEPENDS "${lld_vc}" "${generate_vcs_version_script}"
|
|
COMMAND ${CMAKE_COMMAND} "-DNAMES=LLD"
|
|
"-DLLD_SOURCE_DIR=${lld_source_dir}"
|
|
"-DHEADER_FILE=${version_inc}"
|
|
-P "${generate_vcs_version_script}")
|
|
|
|
# Mark the generated header as being generated.
|
|
set_source_files_properties("${version_inc}"
|
|
PROPERTIES GENERATED TRUE
|
|
HEADER_FILE_ONLY TRUE)
|
|
|
|
add_lld_library(lldCommon
|
|
Args.cpp
|
|
CommonLinkerContext.cpp
|
|
DriverDispatcher.cpp
|
|
DWARF.cpp
|
|
ErrorHandler.cpp
|
|
Filesystem.cpp
|
|
Memory.cpp
|
|
Reproduce.cpp
|
|
Strings.cpp
|
|
TargetOptionsCommandFlags.cpp
|
|
Timer.cpp
|
|
VCSVersion.inc
|
|
Version.cpp
|
|
|
|
ADDITIONAL_HEADER_DIRS
|
|
${LLD_INCLUDE_DIR}/lld/Common
|
|
|
|
LINK_COMPONENTS
|
|
Codegen
|
|
Core
|
|
DebugInfoDWARF
|
|
Demangle
|
|
MC
|
|
Option
|
|
Support
|
|
Target
|
|
TargetParser
|
|
|
|
LINK_LIBS
|
|
${LLVM_PTHREAD_LIB}
|
|
${LLVM_ATOMIC_LIB}
|
|
|
|
DEPENDS
|
|
intrinsics_gen
|
|
)
|