From b719c905f1acea68f2be6209b95506619674f92c Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Tue, 28 Nov 2023 19:13:55 +0100 Subject: [PATCH] apple-libuuid: update installation directory (#40416) * apple-libuuid: update installation directory Copy design of Apple GL --- etc/spack/defaults/darwin/packages.yaml | 2 +- .../builtin/packages/apple-libuuid/package.py | 30 +++++-------------- 2 files changed, 9 insertions(+), 23 deletions(-) diff --git a/etc/spack/defaults/darwin/packages.yaml b/etc/spack/defaults/darwin/packages.yaml index 63f85bbbd9..9fd54f2e6e 100644 --- a/etc/spack/defaults/darwin/packages.yaml +++ b/etc/spack/defaults/darwin/packages.yaml @@ -50,4 +50,4 @@ packages: # Apple bundles libuuid in libsystem_c version 1353.100.2, # although the version number used here isn't critical - spec: apple-libuuid@1353.100.2 - prefix: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk + prefix: /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk diff --git a/var/spack/repos/builtin/packages/apple-libuuid/package.py b/var/spack/repos/builtin/packages/apple-libuuid/package.py index 4c7526d611..9028efc5ac 100644 --- a/var/spack/repos/builtin/packages/apple-libuuid/package.py +++ b/var/spack/repos/builtin/packages/apple-libuuid/package.py @@ -18,28 +18,14 @@ class AppleLibuuid(BundlePackage): # Only supported on 'platform=darwin' conflicts("platform=linux") conflicts("platform=cray") - - @property - def libs(self): - """Export the Apple libuuid library. - - According to https://bugs.freedesktop.org/show_bug.cgi?id=105366, - libuuid is provided as part of libsystem_c. The Apple libsystem_c - library cannot be linked to directly using an absolute path; doing so - will cause the linker to throw an error 'cannot link directly with - /usr/lib/system/libsystem_c.dylib' and the linker will suggest linking - with System.framework instead. Linking to this framework is equivalent - to linking with libSystem.dylib, which can be confirmed on a macOS - system by executing at a terminal the command `ls -l - /System/Library/Frameworks/System.Framework` -- the file "System" is a - symlink to `/usr/lib/libSystem.B.dylib`, and `/usr/lib/libSystem.dylib` - also symlinks to this file. Running `otool -L /usr/lib/libSystem.dylib` - confirms that it will link dynamically to - `/usr/lib/system/libsystem_c.dylib`.""" - - return LibraryList("/usr/lib/libSystem.dylib") + conflicts("platform=windows") @property def headers(self): - """Export the Apple libuuid header.""" - return HeaderList(self.prefix.include.uuid.join("uuid.h")) + return HeaderList( + join_path(self.prefix, "System/Library/Frameworks/Kernel.framework/Headers") + ) + + @property + def libs(self): + return LibraryList(join_path(self.prefix, "System/Library/Frameworks/Kernel.framework"))