Update project setup script

This commit is contained in:
Not-Nik 2023-08-05 20:22:53 +02:00
parent 79ee589441
commit ec45e33189
No known key found for this signature in database
GPG Key ID: 08BB71E672DB3BFD
2 changed files with 18 additions and 21 deletions

View File

@ -1,7 +1,6 @@
// raylib-zig (c) Nikolas Wipper 2020-2023 // raylib-zig (c) Nikolas Wipper 2020-2023
const std = @import("std"); const std = @import("std");
const Builder = std.build.Builder;
const rl = @This(); const rl = @This();
const Program = struct { const Program = struct {
@ -10,7 +9,7 @@ const Program = struct {
desc: []const u8, desc: []const u8,
}; };
pub fn linkRaylib(b: *std.Build, exe: *std.Build.Step.Compile, target: std.zig.CrossTarget, optimize: std.builtin.Mode) void { pub fn link(b: *std.Build, exe: *std.Build.Step.Compile, target: std.zig.CrossTarget, optimize: std.builtin.Mode) void {
const raylib = b.dependency("raylib", .{ const raylib = b.dependency("raylib", .{
.target = target, .target = target,
.optimize = optimize, .optimize = optimize,
@ -150,13 +149,13 @@ pub fn build(b: *std.Build) void {
const system_lib = b.option(bool, "system-raylib", "link to preinstalled raylib libraries") orelse false; const system_lib = b.option(bool, "system-raylib", "link to preinstalled raylib libraries") orelse false;
_ = system_lib; _ = system_lib;
var raylib = getModule(b); var raylib = rl.getModule(b);
var raylib_math = math.getModule(b); var raylib_math = rl.math.getModule(b);
for (examples) |ex| { for (examples) |ex| {
const exe = b.addExecutable(.{ .name = ex.name, .root_source_file = .{ .path = ex.path }, .optimize = optimize, .target = target }); const exe = b.addExecutable(.{ .name = ex.name, .root_source_file = .{ .path = ex.path }, .optimize = optimize, .target = target });
linkRaylib(b, exe, target, optimize); rl.link(b, exe, target, optimize);
exe.addModule("raylib", raylib); exe.addModule("raylib", raylib);
exe.addModule("raylib-math", raylib_math); exe.addModule("raylib-math", raylib_math);

View File

@ -10,33 +10,31 @@ mkdir "$PROJECT_NAME" && cd "$PROJECT_NAME" || exit
touch build.zig touch build.zig
echo "generating project files..." echo "generating project files..."
echo 'const std = @import("std"); echo 'const std = @import("std");
const Builder = std.build.Builder; const rl = @import("raylib-zig/build.zig");
const raylib = @import("raylib-zig/lib.zig"); //call .Pkg() with the folder raylib-zig is in relative to project build.zig
pub fn build(b: *std.Build) void {
pub fn build(b: *Builder) void {
const mode = b.standardReleaseOptions();
const target = b.standardTargetOptions(.{}); const target = b.standardTargetOptions(.{});
const optimize = b.standardOptimizeOption(.{});
const system_lib = b.option(bool, "system-raylib", "link to preinstalled raylib libraries") orelse false; var raylib = rl.getModule(b);
var raylib_math = rl.math.getModule(b);
const exe = b.addExecutable("'$PROJECT_NAME'", "src/main.zig"); const exe = b.addExecutable(.{ .name = "'$PROJECT_NAME'", .root_source_file = .{ .path = "src/main.zig" }, .optimize = optimize, .target = target });
exe.setBuildMode(mode);
exe.setTarget(target); rl.link(b, exe, target, optimize);
exe.addModule("raylib", raylib);
exe.addModule("raylib-math", raylib_math);
raylib.link(exe, system_lib); const run_cmd = b.addRunArtifact(exe);
raylib.addAsPackage("raylib", exe); const run_step = b.step("run", "Run '$PROJECT_NAME'");
raylib.math.addAsPackage("raylib-math", exe);
const run_cmd = exe.run();
const run_step = b.step("run", "run '$PROJECT_NAME'");
run_step.dependOn(&run_cmd.step); run_step.dependOn(&run_cmd.step);
exe.install(); b.installArtifact(exe);
} }
' >> build.zig ' >> build.zig
mkdir src mkdir src
cp ../examples/core/basic_window.zig src/main.zig cp ../examples/core/basic_window.zig src/main.zig
cp ../build.zig.zon .
echo "cloning raylib-zig inside of project..." echo "cloning raylib-zig inside of project..."
git clone ../ raylib-zig --recursive git clone ../ raylib-zig --recursive