Skip to content

Commit 60f83b0

Browse files
committed
fix(build): 显式添加 macOS SDK 框架搜索路径
linkFramework 在 CI 环境下无法自动定位 macOS SDK, 通过 std.zig.system.darwin.getSdk 获取 SDK 路径后 手动调用 addFrameworkPath/addSystemIncludePath/addLibraryPath。
1 parent ea82b9a commit 60f83b0

1 file changed

Lines changed: 11 additions & 3 deletions

File tree

build.zig

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ fn configureModule(
135135
) void {
136136
mod.addImport("miniaudio", miniaudio_mod);
137137
addMiniaudioCSources(b, mod);
138-
linkPlatformLibs(mod, target);
138+
linkPlatformLibs(b, mod, target);
139139
}
140140

141141
/// 创建并注册模块级测试。
@@ -163,7 +163,7 @@ fn addModuleTest(
163163
for (imports) |imp| {
164164
t.root_module.addImport(imp[0], imp[1]);
165165
}
166-
linkPlatformLibs(t.root_module, target);
166+
linkPlatformLibs(b, t.root_module, target);
167167
test_step.dependOn(&b.addRunArtifact(t).step);
168168
}
169169

@@ -197,7 +197,7 @@ fn addMiniaudioCSources(b: *std.Build, mod: *std.Build.Module) void {
197197
/// - CoreAudio:核心音频服务
198198
/// - AudioToolbox:高级音频工具箱(编解码、格式转换等)
199199
/// - CoreFoundation:基础框架,提供数据类型和运行时支持
200-
fn linkPlatformLibs(mod: *std.Build.Module, target: std.Build.ResolvedTarget) void {
200+
fn linkPlatformLibs(b: *std.Build, mod: *std.Build.Module, target: std.Build.ResolvedTarget) void {
201201
switch (target.result.os.tag) {
202202
.linux => {
203203
mod.linkSystemLibrary("pthread", .{});
@@ -210,6 +210,14 @@ fn linkPlatformLibs(mod: *std.Build.Module, target: std.Build.ResolvedTarget) vo
210210
mod.linkSystemLibrary("uuid", .{});
211211
},
212212
.macos => {
213+
// 显式添加 macOS SDK 框架搜索路径。
214+
// Zig 的 linkFramework 在某些环境(如 CI)下无法自动定位 SDK,
215+
// 需要通过 getSdk 获取路径后手动添加搜索路径。
216+
if (std.zig.system.darwin.getSdk(b.allocator, b.graph.io, &target.result)) |sdk| {
217+
mod.addFrameworkPath(.{ .cwd_relative = b.pathJoin(&.{ sdk, "System/Library/Frameworks" }) });
218+
mod.addSystemIncludePath(.{ .cwd_relative = b.pathJoin(&.{ sdk, "usr/include" }) });
219+
mod.addLibraryPath(.{ .cwd_relative = b.pathJoin(&.{ sdk, "usr/lib" }) });
220+
}
213221
mod.linkFramework("CoreAudio", .{});
214222
mod.linkFramework("AudioToolbox", .{});
215223
mod.linkFramework("CoreFoundation", .{});

0 commit comments

Comments
 (0)