summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorInKryption <[email protected]>2022-10-20 18:33:12 +0200
committerGitHub <[email protected]>2022-10-20 18:33:12 +0200
commit40cf84e7e527aab27ae01861c887a0498949a328 (patch)
tree6e92fcfd015fde477364205bdeb83ae32d0c25de /src
parentb8e14a4f9987b7930c04d72f3f7c4be705edf5f8 (diff)
downloadraylib-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.zig17
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();