mirror of
https://github.com/raylib-zig/raylib-zig.git
synced 2025-12-06 06:13:08 +00:00
Update project setup script
This commit is contained in:
parent
79ee589441
commit
ec45e33189
@ -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);
|
||||||
|
|
||||||
|
|||||||
@ -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);
|
|
||||||
|
|
||||||
raylib.link(exe, system_lib);
|
rl.link(b, exe, target, optimize);
|
||||||
raylib.addAsPackage("raylib", exe);
|
exe.addModule("raylib", raylib);
|
||||||
raylib.math.addAsPackage("raylib-math", exe);
|
exe.addModule("raylib-math", raylib_math);
|
||||||
|
|
||||||
const run_cmd = exe.run();
|
const run_cmd = b.addRunArtifact(exe);
|
||||||
const run_step = b.step("run", "run '$PROJECT_NAME'");
|
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
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user