summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorEvan Wilde <ewilde@apple.com>2024-11-06 10:34:48 -0800
committerGitHub <noreply@github.com>2024-11-06 10:34:48 -0800
commitcb90d5b3ef463f0a471f9c6d39978c3764021dea (patch)
treeee36c1d1af2c7f3d1c912e66e56e1fb2428d82e0 /cmake
parentaae5a38e4e5121e340541794404eb62f26e66bf0 (diff)
[CMake] Enable CMP0156 if available (#115046)
Some linkers do not require that libraries are repeated on the command line. The Apple linker emits warnings when duplicate libraries are specified, resulting in a wall of warnings. CMP0156 deduplicates libraries on the command line when the linker doesn't require them. This patch enables CMP0156 to quiet the warnings when using a version of CMake that recognizes it (CMake 3.29 and newer).
Diffstat (limited to 'cmake')
-rw-r--r--cmake/Modules/CMakePolicy.cmake8
1 files changed, 8 insertions, 0 deletions
diff --git a/cmake/Modules/CMakePolicy.cmake b/cmake/Modules/CMakePolicy.cmake
index f19dfd716571..d561556b2830 100644
--- a/cmake/Modules/CMakePolicy.cmake
+++ b/cmake/Modules/CMakePolicy.cmake
@@ -30,3 +30,11 @@ endif()
if(POLICY CMP0147)
cmake_policy(SET CMP0147 NEW)
endif()
+
+# CMP0156: De-duplicate libraries on link lines based on linker capabilities.
+# New in CMake 3.29: https://cmake.org/cmake/help/latest/policy/CMP0156.html
+# Avoids the deluge of 'ld: warning: ignoring duplicate libraries' warnings when
+# building with the Apple linker.
+if(POLICY CMP0156)
+ cmake_policy(SET CMP0156 NEW)
+endif()