2011-03-13 00:48:49 +08:00
|
|
|
set(LLVM_LINK_COMPONENTS
|
2019-05-24 07:02:56 +08:00
|
|
|
AllTargetsAsmParsers
|
|
|
|
AllTargetsCodeGens
|
|
|
|
AllTargetsDescs
|
|
|
|
AllTargetsDisassemblers
|
|
|
|
AllTargetsInfos
|
2016-07-12 11:01:22 +08:00
|
|
|
BitReader
|
2014-12-20 09:51:02 +08:00
|
|
|
Core
|
2020-03-04 07:47:43 +08:00
|
|
|
CodeGen
|
2013-12-10 19:13:32 +08:00
|
|
|
LTO
|
|
|
|
MC
|
2014-02-01 01:57:50 +08:00
|
|
|
MCDisassembler
|
2013-12-10 19:13:32 +08:00
|
|
|
Support
|
2015-06-04 03:07:51 +08:00
|
|
|
Target
|
2013-12-10 19:13:32 +08:00
|
|
|
)
|
2011-03-11 23:44:24 +08:00
|
|
|
|
2011-03-13 01:32:30 +08:00
|
|
|
set(SOURCES
|
2012-11-25 00:59:10 +08:00
|
|
|
LTODisassembler.cpp
|
2011-03-11 23:44:24 +08:00
|
|
|
lto.cpp
|
|
|
|
)
|
|
|
|
|
2013-12-29 07:31:44 +08:00
|
|
|
set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/lto.exports)
|
2013-10-08 23:07:00 +08:00
|
|
|
|
2021-06-10 23:15:04 +08:00
|
|
|
if(CMAKE_SYSTEM_NAME STREQUAL AIX)
|
|
|
|
set(LTO_LIBRARY_TYPE MODULE)
|
|
|
|
set(LTO_LIBRARY_NAME libLTO)
|
|
|
|
else()
|
|
|
|
set(LTO_LIBRARY_TYPE SHARED)
|
|
|
|
set(LTO_LIBRARY_NAME LTO)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
add_llvm_library(${LTO_LIBRARY_NAME} ${LTO_LIBRARY_TYPE} INSTALL_WITH_TOOLCHAIN
|
|
|
|
${SOURCES} DEPENDS intrinsics_gen)
|
2013-08-27 00:54:12 +08:00
|
|
|
|
2014-02-21 22:57:09 +08:00
|
|
|
install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h
|
Use `GNUInstallDirs` to support custom installation dirs. -- LLVM
This is a new draft of D28234. I previously did the unorthodox thing of
pushing to it when I wasn't the original author, but since this version
- Uses `GNUInstallDirs`, rather than mimics it, as the original author
was hesitant to do but others requested.
- Is much broader, effecting many more projects than LLVM itself.
I figured it was time to make a new revision.
I am using this patch (and many back-ports) as the basis of
https://github.com/NixOS/nixpkgs/pull/111487 for my distro (NixOS). It
looked like people were generally on board in D28234, but I make note of
this here in case extra motivation is useful.
---
As pointed out in the original issue, a central tension is that LLVM
already has some partial support for these sorts of things. For example
`LLVM_LIBDIR_SUFFIX`, or `COMPILER_RT_INSTALL_PATH`. Because it's not
quite clear yet what to do about those, we are holding off on changing
libdirs and `compiler-rt`. for this initial PR.
---
On the advice of @lebedev.ri, I am splitting this up a bit per
subproject, starting with LLVM. To allow it to be more easily reviewed. This and the subsequent patch must be landed together, as this will not build alone. But the rest can be landed on their own.
Reviewed By: compnerd
Differential Revision: https://reviews.llvm.org/D100810
2021-04-05 01:02:18 +08:00
|
|
|
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/llvm-c"
|
2016-02-27 05:07:02 +08:00
|
|
|
COMPONENT LTO)
|
2015-10-14 06:54:29 +08:00
|
|
|
|
|
|
|
if (APPLE)
|
|
|
|
set(LTO_VERSION ${LLVM_VERSION_MAJOR})
|
|
|
|
if(LLVM_LTO_VERSION_OFFSET)
|
|
|
|
math(EXPR LTO_VERSION "${LLVM_VERSION_MAJOR} + ${LLVM_LTO_VERSION_OFFSET}")
|
|
|
|
endif()
|
|
|
|
set_property(TARGET LTO APPEND_STRING PROPERTY
|
|
|
|
LINK_FLAGS
|
2015-10-14 15:50:21 +08:00
|
|
|
" -compatibility_version 1 -current_version ${LTO_VERSION}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}")
|
2015-10-14 06:54:29 +08:00
|
|
|
endif()
|