workaround transitive dependency issue
Helps hexops/mach#902 Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
parent
7d88e72be5
commit
89d697c4eb
1 changed files with 39 additions and 29 deletions
68
build.zig
68
build.zig
|
@ -10,41 +10,51 @@ pub fn build(b: *Build) !void {
|
|||
.source_file = .{ .path = "src/main.zig" },
|
||||
});
|
||||
|
||||
const lib = b.addStaticLibrary(.{
|
||||
.name = "mach-glfw",
|
||||
.root_source_file = .{ .path = "stub.c" },
|
||||
.target = target,
|
||||
.optimize = optimize,
|
||||
});
|
||||
lib.linkLibrary(b.dependency("glfw", .{
|
||||
.target = lib.target,
|
||||
.optimize = lib.optimize,
|
||||
}).artifact("glfw"));
|
||||
lib.linkLibrary(b.dependency("vulkan_headers", .{
|
||||
.target = lib.target,
|
||||
.optimize = lib.optimize,
|
||||
}).artifact("vulkan-headers"));
|
||||
if (lib.target_info.target.os.tag == .macos) {
|
||||
@import("xcode_frameworks").addPaths(b, lib);
|
||||
}
|
||||
b.installArtifact(lib);
|
||||
// TODO: uncomment this once hexops/mach#902 is fixed
|
||||
// we cannot call b.dependency inside pub fn build if we want to use this package via the Zig
|
||||
// package manager.
|
||||
_ = target;
|
||||
_ = optimize;
|
||||
|
||||
const test_step = b.step("test", "Run library tests");
|
||||
const main_tests = b.addTest(.{
|
||||
.name = "glfw-tests",
|
||||
.root_source_file = .{ .path = "src/main.zig" },
|
||||
.target = target,
|
||||
.optimize = optimize,
|
||||
});
|
||||
// const lib = b.addStaticLibrary(.{
|
||||
// .name = "mach-glfw",
|
||||
// .root_source_file = .{ .path = "stub.c" },
|
||||
// .target = target,
|
||||
// .optimize = optimize,
|
||||
// });
|
||||
// lib.linkLibrary(b.dependency("glfw", .{
|
||||
// .target = lib.target,
|
||||
// .optimize = lib.optimize,
|
||||
// }).artifact("glfw"));
|
||||
// lib.linkLibrary(b.dependency("vulkan_headers", .{
|
||||
// .target = lib.target,
|
||||
// .optimize = lib.optimize,
|
||||
// }).artifact("vulkan-headers"));
|
||||
// if (lib.target_info.target.os.tag == .macos) {
|
||||
// @import("xcode_frameworks").addPaths(b, lib);
|
||||
// }
|
||||
// b.installArtifact(lib);
|
||||
|
||||
main_tests.linkLibrary(lib);
|
||||
try link(b, main_tests);
|
||||
b.installArtifact(main_tests);
|
||||
// const test_step = b.step("test", "Run library tests");
|
||||
// const main_tests = b.addTest(.{
|
||||
// .name = "glfw-tests",
|
||||
// .root_source_file = .{ .path = "src/main.zig" },
|
||||
// .target = target,
|
||||
// .optimize = optimize,
|
||||
// });
|
||||
|
||||
test_step.dependOn(&b.addRunArtifact(main_tests).step);
|
||||
// main_tests.linkLibrary(lib);
|
||||
// try link(b, main_tests);
|
||||
// b.installArtifact(main_tests);
|
||||
|
||||
// test_step.dependOn(&b.addRunArtifact(main_tests).step);
|
||||
}
|
||||
|
||||
pub fn link(b: *std.Build, step: *std.build.CompileStep) !void {
|
||||
step.linkLibrary(b.dependency("glfw", .{
|
||||
.target = step.target,
|
||||
.optimize = step.optimize,
|
||||
}).artifact("glfw"));
|
||||
@import("glfw").addPaths(step);
|
||||
if (step.target.toTarget().isDarwin()) @import("xcode_frameworks").addPaths(b, step);
|
||||
step.linkLibrary(b.dependency("vulkan_headers", .{
|
||||
|
|
Loading…
Add table
Reference in a new issue