Skip to content

Commit b6d2aaf

Browse files
alexrpdotnet-bot
andauthored
Some MoltenVK packaging improvements. (#2177)
* Native/MoltenVK: Strip and re-sign the macOS universal binary. * Native/MoltenVK: Build and package tvOS binaries. * New binaries for MoltenVK on Darwin 22.6.0 Darwin Kernel Version 22.6.0: Mon Feb 19 19:42:47 PST 2024; root:xnu-8796.141.3.704.6~1/RELEASE_ARM64_VMAPPLE --------- Co-authored-by: The Silk.NET Automaton <[email protected]>
1 parent 52f15a7 commit b6d2aaf

File tree

6 files changed

+16
-3
lines changed

6 files changed

+16
-3
lines changed

build/nuke/Native/MoltenVK.cs

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,29 @@ partial class Build {
2222
{
2323
var runtimes = RootDirectory / "src" / "Native" / "Silk.NET.MoltenVK.Native" / "runtimes";
2424

25-
InheritedShell($"./fetchDependencies --ios --iossim --maccat --macos", MoltenVKPath).AssertZeroExitCode();
26-
InheritedShell($"make ios iossim maccat macos", MoltenVKPath).AssertZeroExitCode();
25+
InheritedShell($"./fetchDependencies --all", MoltenVKPath).AssertZeroExitCode();
26+
InheritedShell($"make", MoltenVKPath).AssertZeroExitCode();
2727

2828
var xcFrameworkDir = MoltenVKPath / "Package" / "Release" / "MoltenVK" / "static" / "MoltenVK.xcframework";
2929

3030
CopyFile(xcFrameworkDir / "ios-arm64" / "libMoltenVK.a", runtimes / "ios" / "native" / "libMoltenVK.a", FileExistsPolicy.Overwrite);
3131
CopyFile(xcFrameworkDir / "ios-arm64_x86_64-simulator" / "libMoltenVK.a", runtimes / "iossimulator" / "native" / "libMoltenVK.a", FileExistsPolicy.Overwrite);
3232
CopyFile(xcFrameworkDir / "ios-arm64_x86_64-maccatalyst" / "libMoltenVK.a", runtimes / "maccatalyst" / "native" / "libMoltenVK.a", FileExistsPolicy.Overwrite);
33-
CopyFile(MoltenVKPath / "Package" / "Release" / "MoltenVK" / "dynamic" / "dylib" / "macOS" / "libMoltenVK.dylib", runtimes / "osx" / "native" / "libMoltenVK.dylib", FileExistsPolicy.Overwrite);
33+
CopyFile(xcFrameworkDir / "tvos-arm64_arm64e" / "libMoltenVK.a", runtimes / "tvos" / "native" / "libMoltenVK.a", FileExistsPolicy.Overwrite);
34+
CopyFile(xcFrameworkDir / "tvos-arm64_x86_64-simulator" / "libMoltenVK.a", runtimes / "tvossimulator" / "native" / "libMoltenVK.a", FileExistsPolicy.Overwrite);
35+
36+
var macOsDylib = runtimes / "osx" / "native" / "libMoltenVK.dylib";
37+
38+
CopyFile(MoltenVKPath / "Package" / "Release" / "MoltenVK" / "dynamic" / "dylib" / "macOS" / "libMoltenVK.dylib", macOsDylib, FileExistsPolicy.Overwrite);
3439
CopyFile(MoltenVKPath / "Package" / "Release" / "MoltenVK" / "dynamic" / "dylib" / "macOS" / "MoltenVK_icd.json", runtimes / "osx" / "native" / "MoltenVK_icd.json", FileExistsPolicy.Overwrite);
40+
41+
// Only strip the macOS binary since stripping static libraries is too involved, and
42+
// the final AOT'd binary can be stripped anyway.
43+
InheritedShell($"strip -Sx -no_code_signature_warning {macOsDylib}").AssertZeroExitCode();
44+
45+
// Re-sign, as stripping a universal binary invalidates the signature.
46+
InheritedShell($"codesign --remove-signature {macOsDylib}").AssertZeroExitCode();
47+
InheritedShell($"codesign --sign - {macOsDylib}").AssertZeroExitCode();
3548
}
3649

3750
PrUpdatedNativeBinary("MoltenVK");
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)