From cade66d842a894075938bc5528475d9fcd8bd559 Mon Sep 17 00:00:00 2001 From: Chris Marsh Date: Thu, 29 Aug 2024 12:49:53 -0600 Subject: [PATCH] CMakePackage: Set policy CMP0042 NEW on macos (#46114) so linking to shared libraries works well at runtime on darwin for all packages with cmake_minimum_required < 3. --- lib/spack/spack/build_systems/cmake.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/spack/spack/build_systems/cmake.py b/lib/spack/spack/build_systems/cmake.py index a64904715e0..10949e79498 100644 --- a/lib/spack/spack/build_systems/cmake.py +++ b/lib/spack/spack/build_systems/cmake.py @@ -108,6 +108,11 @@ def _conditional_cmake_defaults(pkg: spack.package_base.PackageBase, args: List[ if _supports_compilation_databases(pkg): args.append(CMakeBuilder.define("CMAKE_EXPORT_COMPILE_COMMANDS", True)) + # Enable MACOSX_RPATH by default when cmake_minimum_required < 3 + # https://cmake.org/cmake/help/latest/policy/CMP0042.html + if pkg.spec.satisfies("platform=darwin") and cmake.satisfies("@3:"): + args.append(CMakeBuilder.define("CMAKE_POLICY_DEFAULT_CMP0042", "NEW")) + def generator(*names: str, default: Optional[str] = None): """The build system generator to use.