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" },
|
.source_file = .{ .path = "src/main.zig" },
|
||||||
});
|
});
|
||||||
|
|
||||||
const lib = b.addStaticLibrary(.{
|
// TODO: uncomment this once hexops/mach#902 is fixed
|
||||||
.name = "mach-glfw",
|
// we cannot call b.dependency inside pub fn build if we want to use this package via the Zig
|
||||||
.root_source_file = .{ .path = "stub.c" },
|
// package manager.
|
||||||
.target = target,
|
_ = target;
|
||||||
.optimize = 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);
|
|
||||||
|
|
||||||
const test_step = b.step("test", "Run library tests");
|
// const lib = b.addStaticLibrary(.{
|
||||||
const main_tests = b.addTest(.{
|
// .name = "mach-glfw",
|
||||||
.name = "glfw-tests",
|
// .root_source_file = .{ .path = "stub.c" },
|
||||||
.root_source_file = .{ .path = "src/main.zig" },
|
// .target = target,
|
||||||
.target = target,
|
// .optimize = optimize,
|
||||||
.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);
|
// const test_step = b.step("test", "Run library tests");
|
||||||
try link(b, main_tests);
|
// const main_tests = b.addTest(.{
|
||||||
b.installArtifact(main_tests);
|
// .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 {
|
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);
|
@import("glfw").addPaths(step);
|
||||||
if (step.target.toTarget().isDarwin()) @import("xcode_frameworks").addPaths(b, step);
|
if (step.target.toTarget().isDarwin()) @import("xcode_frameworks").addPaths(b, step);
|
||||||
step.linkLibrary(b.dependency("vulkan_headers", .{
|
step.linkLibrary(b.dependency("vulkan_headers", .{
|
||||||
|
|
Loading…
Add table
Reference in a new issue