[llvm] c572c6a - [cmake] Add LLVM_THINLTO_CACHE_PATH
Tobias Hieta via llvm-commits
llvm-commits at lists.llvm.org
Sun Mar 13 23:47:42 PDT 2022
Author: Tobias Hieta
Date: 2022-03-14T07:47:36+01:00
New Revision: c572c6ae5627837084389894c5614aed8a889167
URL: https://github.com/llvm/llvm-project/commit/c572c6ae5627837084389894c5614aed8a889167
DIFF: https://github.com/llvm/llvm-project/commit/c572c6ae5627837084389894c5614aed8a889167.diff
LOG: [cmake] Add LLVM_THINLTO_CACHE_PATH
This allows you to set a custom path to the ThinLTO cache so that
it can be shared when building in several different build directories.
Reviewed By: phosek
Differential Revision: https://reviews.llvm.org/D121215
Added:
Modified:
llvm/cmake/modules/HandleLLVMOptions.cmake
Removed:
################################################################################
diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake
index fcaa8f20bf941..a8907a3bc0423 100644
--- a/llvm/cmake/modules/HandleLLVMOptions.cmake
+++ b/llvm/cmake/modules/HandleLLVMOptions.cmake
@@ -1082,6 +1082,8 @@ if (LLVM_BUILD_INSTRUMENTED AND LLVM_BUILD_INSTRUMENTED_COVERAGE)
message(FATAL_ERROR "LLVM_BUILD_INSTRUMENTED and LLVM_BUILD_INSTRUMENTED_COVERAGE cannot both be specified")
endif()
+set(LLVM_THINLTO_CACHE_PATH "${PROJECT_BINARY_DIR}/lto.cache" CACHE STRING "Set ThinLTO cache path. This can be used when building LLVM from several
diff erent directiories.")
+
if(LLVM_ENABLE_LTO AND LLVM_ON_WIN32 AND NOT LINKER_IS_LLD_LINK AND NOT MINGW)
message(FATAL_ERROR "When compiling for Windows, LLVM_ENABLE_LTO requires using lld as the linker (point CMAKE_LINKER at lld-link.exe)")
endif()
@@ -1095,16 +1097,16 @@ if(uppercase_LLVM_ENABLE_LTO STREQUAL "THIN")
# improves incremental build time.
# FIXME: We should move all this logic into the clang driver.
if(APPLE)
- append("-Wl,-cache_path_lto,${PROJECT_BINARY_DIR}/lto.cache"
+ append("-Wl,-cache_path_lto,${LLVM_THINLTO_CACHE_PATH}"
CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS)
elseif((UNIX OR MINGW) AND LLVM_USE_LINKER STREQUAL "lld")
- append("-Wl,--thinlto-cache-dir=${PROJECT_BINARY_DIR}/lto.cache"
+ append("-Wl,--thinlto-cache-dir=${LLVM_THINLTO_CACHE_PATH}"
CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS)
elseif(LLVM_USE_LINKER STREQUAL "gold")
- append("-Wl,--plugin-opt,cache-dir=${PROJECT_BINARY_DIR}/lto.cache"
+ append("-Wl,--plugin-opt,cache-dir=${LLVM_THINLTO_CACHE_PATH}"
CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS)
elseif(LINKER_IS_LLD_LINK)
- append("/lldltocache:${PROJECT_BINARY_DIR}/lto.cache"
+ append("/lldltocache:${LLVM_THINLTO_CACHE_PATH}"
CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS)
endif()
elseif(uppercase_LLVM_ENABLE_LTO STREQUAL "FULL")
More information about the llvm-commits
mailing list