From 0376fd09bc9f29ceeb83760e32532923e4fe7f98 Mon Sep 17 00:00:00 2001 From: Jakub Konka Date: Sat, 19 Mar 2022 16:54:11 +0100 Subject: macho: extend CodeSignature to accept entitlements With this change, we can now bake in entitlements into the binary. Additionally, I see this as the first step towards full code signature support which includes baking in Apple issued certificates for redistribution, etc. --- src/Compilation.zig | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/Compilation.zig') diff --git a/src/Compilation.zig b/src/Compilation.zig index f6fe452951..64848659a7 100644 --- a/src/Compilation.zig +++ b/src/Compilation.zig @@ -815,6 +815,8 @@ pub const InitOptions = struct { native_darwin_sdk: ?std.zig.system.darwin.DarwinSDK = null, /// (Darwin) Install name of the dylib install_name: ?[]const u8 = null, + /// (Darwin) Path to entitlements file + entitlements: ?[]const u8 = null, }; fn addPackageTableToCacheHash( @@ -1624,6 +1626,7 @@ pub fn create(gpa: Allocator, options: InitOptions) !*Compilation { .enable_link_snapshots = options.enable_link_snapshots, .native_darwin_sdk = options.native_darwin_sdk, .install_name = options.install_name, + .entitlements = options.entitlements, }); errdefer bin_file.destroy(); comp.* = .{ @@ -2351,6 +2354,7 @@ fn addNonIncrementalStuffToCacheManifest(comp: *Compilation, man: *Cache.Manifes // Mach-O specific stuff man.hash.addListOfBytes(comp.bin_file.options.framework_dirs); man.hash.addListOfBytes(comp.bin_file.options.frameworks); + try man.addOptionalFile(comp.bin_file.options.entitlements); // COFF specific stuff man.hash.addOptional(comp.bin_file.options.subsystem); -- cgit v1.2.3