diff options
| author | InKryption <[email protected]> | 2022-10-20 18:33:12 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-10-20 18:33:12 +0200 |
| commit | 40cf84e7e527aab27ae01861c887a0498949a328 (patch) | |
| tree | 6e92fcfd015fde477364205bdeb83ae32d0c25de /src | |
| parent | b8e14a4f9987b7930c04d72f3f7c4be705edf5f8 (diff) | |
| download | raylib-40cf84e7e527aab27ae01861c887a0498949a328.tar.gz raylib-40cf84e7e527aab27ae01861c887a0498949a328.zip | |
build.zig: let user decide how to set build mode + fix linker warning (#2763)
* build.zig: let user decide how to set build mode
This should delegate the responsibility of calling `standardReleaseOptions` and setting the build mode of the `*LibExeObjStep` step to the caller, especially since this might not be the process by which one wants to determine the build mode.
Also changes hides `getSrcDir` to enforce usage of `srcdir`, and asserts that the file is in fact inside a directory.
* build.zig: set root_src param to `null`
Supplying the header file as the root source here appears to cause a linker warning of the form:
```
LLD Link... warning(link): unexpected LLD stderr:
ld.lld: warning: {build_root}/zig-cache/o/{hash}/libraylib.a: archive member '{build_root}/zig-cache/o/{hash}/raylib.o' is neither ET_REL nor LLVM bitcode
```
Passing `null` instead fixes it.
Diffstat (limited to 'src')
| -rw-r--r-- | src/build.zig | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/src/build.zig b/src/build.zig index 8194e1e3..6a4c07e7 100644 --- a/src/build.zig +++ b/src/build.zig @@ -1,10 +1,6 @@ const std = @import("std"); pub fn addRaylib(b: *std.build.Builder, target: std.zig.CrossTarget) *std.build.LibExeObjStep { - // Standard release options allow the person running `zig build` to select - // between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall. - const mode = b.standardReleaseOptions(); - const raylib_flags = &[_][]const u8{ "-std=gnu99", "-DPLATFORM_DESKTOP", @@ -13,9 +9,8 @@ pub fn addRaylib(b: *std.build.Builder, target: std.zig.CrossTarget) *std.build. "-fno-sanitize=undefined", // https://github.com/raysan5/raylib/issues/1891 }; - const raylib = b.addStaticLibrary("raylib", srcdir ++ "/raylib.h"); + const raylib = b.addStaticLibrary("raylib", null); raylib.setTarget(target); - raylib.setBuildMode(mode); raylib.linkLibC(); raylib.addIncludePath(srcdir ++ "/external/glfw/include"); @@ -90,8 +85,8 @@ pub fn build(b: *std.build.Builder) void { lib.install(); } -const srcdir = getSrcDir(); - -fn getSrcDir() []const u8 { - return std.fs.path.dirname(@src().file) orelse "."; -} +const srcdir = struct{ + fn getSrcDir() []const u8 { + return std.fs.path.dirname(@src().file).?; + } +}.getSrcDir(); |
