40 lines
1.5 KiB
Diff
40 lines
1.5 KiB
Diff
From cf35b4622d31701d0c79e0441931518726f997f2 Mon Sep 17 00:00:00 2001
|
|
From: Nikita Popov <npopov@redhat.com>
|
|
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
|
|
|