aboutsummaryrefslogtreecommitdiff
path: root/lib/std/Build/Step/Compile.zig
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2024-02-02 14:05:51 +0100
committerJakub Konka <kubkon@jakubkonka.com>2024-02-02 22:00:16 +0100
commit92deebcd668750bd4042c5874bf35b447828cd8a (patch)
tree412ac01bd1ee8c20bf4fc55281626e885e8fd0e4 /lib/std/Build/Step/Compile.zig
parent9eda6ccefce370c76209ea50dd57fe65bfe25536 (diff)
downloadzig-92deebcd668750bd4042c5874bf35b447828cd8a.tar.gz
zig-92deebcd668750bd4042c5874bf35b447828cd8a.zip
cli+build: handle -ObjC flag and route it to MachO linker
Diffstat (limited to 'lib/std/Build/Step/Compile.zig')
-rw-r--r--lib/std/Build/Step/Compile.zig6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/std/Build/Step/Compile.zig b/lib/std/Build/Step/Compile.zig
index 72f9048485..68e68b28ad 100644
--- a/lib/std/Build/Step/Compile.zig
+++ b/lib/std/Build/Step/Compile.zig
@@ -149,6 +149,9 @@ headerpad_max_install_names: bool = false,
/// (Darwin) Remove dylibs that are unreachable by the entry point or exported symbols.
dead_strip_dylibs: bool = false,
+/// (Darwin) Force load all members of static archives that implement an Objective-C class or category
+force_load_objc: bool = false,
+
/// Position Independent Executable
pie: ?bool = null,
@@ -1433,6 +1436,9 @@ fn make(step: *Step, prog_node: *std.Progress.Node) !void {
if (self.dead_strip_dylibs) {
try zig_args.append("-dead_strip_dylibs");
}
+ if (self.force_load_objc) {
+ try zig_args.append("-ObjC");
+ }
try addFlag(&zig_args, "compiler-rt", self.bundle_compiler_rt);
try addFlag(&zig_args, "dll-export-fns", self.dll_export_fns);