From cf35b4622d31701d0c79e0441931518726f997f2 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Fri, 30 Jun 2023 12:25:09 +0200 Subject: [PATCH] Add LLVM_UNITTEST_LINK_FLAGS option This allows specifying linker flags that should only be applied to unit tests, e.g. to disable LTO optimization for them. --- llvm/cmake/modules/AddLLVM.cmake | 2 ++ llvm/cmake/modules/HandleLLVMOptions.cmake | 3 +++ 2 files changed, 5 insertions(+) diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake index 94fc83db9344..7cf75223ce38 100644 --- a/llvm/cmake/modules/AddLLVM.cmake +++ b/llvm/cmake/modules/AddLLVM.cmake @@ -1592,6 +1592,8 @@ function(add_unittest test_suite test_name) endif() endif() + target_link_options(${test_name} PRIVATE "${LLVM_UNITTEST_LINK_FLAGS}") + set(outdir ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}) set_output_directory(${test_name} BINARY_DIR ${outdir} LIBRARY_DIR ${outdir}) # libpthreads overrides some standard library symbols, so main diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake index 6119ecdce0f4..eec98162c2d7 100644 --- a/llvm/cmake/modules/HandleLLVMOptions.cmake +++ b/llvm/cmake/modules/HandleLLVMOptions.cmake @@ -1274,3 +1274,6 @@ endif() set(LLVM_THIRD_PARTY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../third-party CACHE STRING "Directory containing third party software used by LLVM (e.g. googletest)") + +set(LLVM_UNITTEST_LINK_FLAGS "" CACHE STRING + "Additional linker flags for unit tests") -- 2.40.1