From 4d8adb14c1f9086f63d12694f10e1fdef2e790ad Mon Sep 17 00:00:00 2001 From: speedy-lex <78314533+speedy-lex@users.noreply.github.com> Date: Wed, 1 Oct 2025 17:22:46 +0200 Subject: [PATCH] Revert "raylib submodule -> zig dependency" This reverts commit e96e932ca2e6934da76592ebc3fb96657765ab43. --- .gitmodules | 3 +++ build.zig | 50 ++++++++++++++++++++++++++++++++------------------ build.zig.zon | 13 ------------- foreign/raylib | 1 + 4 files changed, 36 insertions(+), 31 deletions(-) delete mode 100644 build.zig.zon create mode 160000 foreign/raylib diff --git a/.gitmodules b/.gitmodules index 4b7cc6b..6af15de 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,3 +10,6 @@ path = foreign/lua54 url = https://github.com/lua/lua branch = v5.4 +[submodule "foreign/raylib"] + path = foreign/raylib + url = https://github.com/raysan5/raylib diff --git a/build.zig b/build.zig index cad21df..8101f06 100644 --- a/build.zig +++ b/build.zig @@ -13,8 +13,8 @@ fn addEngineSources(b: *std.Build, opts: LibBuildOpts) *std.Build.Module { .root_source_file = b.path("src/data.zig"), .target = opts.target, .optimize = opts.optimize, - .strip = if(opts.optimize == .Debug) false else true, - .unwind_tables = if(opts.optimize == .Debug) null else .none, + .strip = if (opts.optimize == .Debug) false else true, + .unwind_tables = if (opts.optimize == .Debug) null else .none, .pic = true, }); @@ -49,17 +49,17 @@ fn addEngineSources(b: *std.Build, opts: LibBuildOpts) *std.Build.Module { "src/components/externalComputer.c", }, .flags = &.{ - if(opts.baremetal) "-DNN_BAREMETAL" else "", - if(opts.bit32) "-DNN_BIT32" else "", - if(strict) "-Wall" else "", - if(strict) "-Werror" else "", + if (opts.baremetal) "-DNN_BAREMETAL" else "", + if (opts.bit32) "-DNN_BIT32" else "", + if (strict) "-Wall" else "", + if (strict) "-Werror" else "", "-std=gnu23", "-Wno-keyword-macro", // cuz bools "-fPIE", }, }); - if(!opts.baremetal) { + if (!opts.baremetal) { dataMod.link_libc = true; // we need a libc dataMod.addCSourceFiles(.{ .files = &.{ @@ -82,6 +82,22 @@ const LuaVersion = enum { lua54, }; +fn compileRaylib(b: *std.Build, os: std.Target.Os.Tag, c: *std.Build.Step.Compile) void { + // TODO: find out how to send our target to this build cmd + const raylib = b.addSystemCommand(&.{ "zig", "build" }); + raylib.setCwd(b.path("foreign/raylib/")); + raylib.stdio = .inherit; + + c.step.dependOn(&raylib.step); + c.addIncludePath(b.path("foreign/raylib/zig-out/include/")); + c.addLibraryPath(b.path("foreign/raylib/zig-out/lib/")); + c.linkSystemLibrary("raylib"); + if (os == .windows) { + c.linkSystemLibrary("WinMM"); + c.linkSystemLibrary("GDI32"); + } +} + // For the test architecture, we specify the target Lua version we so desire. // This can be checked for with Lua's _VERSION @@ -106,7 +122,7 @@ fn compileTheRightLua(b: *std.Build, target: std.Build.ResolvedTarget, version: var files = try std.ArrayList([]const u8).initCapacity(b.allocator, 0); errdefer files.deinit(b.allocator); - var dir = try std.fs.cwd().openDir(rootPath, std.fs.Dir.OpenOptions { .iterate = true }); + var dir = try std.fs.cwd().openDir(rootPath, std.fs.Dir.OpenOptions{ .iterate = true }); defer dir.close(); var iter = dir.iterate(); @@ -142,7 +158,7 @@ pub fn build(b: *std.Build) !void { const optimize = b.standardOptimizeOption(.{}); - const opts = LibBuildOpts { + const opts = LibBuildOpts{ .target = target, .optimize = optimize, .baremetal = b.option(bool, "baremetal", "Compiles without libc integration") orelse false, @@ -152,7 +168,7 @@ pub fn build(b: *std.Build) !void { const noEmu = b.option(bool, "noEmu", "Disable compiling the emulator (fixes some build system quirks)") orelse false; const includeFiles = b.addInstallHeaderFile(b.path("src/neonucleus.h"), "neonucleus.h"); - + const engineMod = addEngineSources(b, opts); const engineStatic = b.addLibrary(.{ @@ -160,9 +176,9 @@ pub fn build(b: *std.Build) !void { .root_module = engineMod, .linkage = .static, }); - + const engineShared = b.addLibrary(.{ - .name = if(os == .windows) "neonucleusdll" else "neonucleus", + .name = if (os == .windows) "neonucleusdll" else "neonucleus", .root_module = engineMod, .linkage = .dynamic, }); @@ -177,7 +193,7 @@ pub fn build(b: *std.Build) !void { sharedStep.dependOn(&includeFiles.step); sharedStep.dependOn(&b.addInstallArtifact(engineShared, .{}).step); - if(!noEmu) { + if (!noEmu) { const emulator = b.addExecutable(.{ .name = "neonucleus", .root_module = b.addModule("emulator", .{ @@ -191,9 +207,7 @@ pub fn build(b: *std.Build) !void { if (sysraylib_flag) { emulator.linkSystemLibrary("raylib"); } else { - const raylib = b.dependency("raylib", .{ .target = target, .optimize = optimize }); - emulator.addIncludePath(raylib.path(raylib.builder.h_dir)); - emulator.linkLibrary(raylib.artifact("raylib")); + compileRaylib(b, os, emulator); } const luaVer = b.option(LuaVersion, "lua", "The version of Lua to use.") orelse LuaVersion.lua53; @@ -203,8 +217,8 @@ pub fn build(b: *std.Build) !void { "src/emulator.c", }, .flags = &.{ - if(opts.baremetal) "-DNN_BAREMETAL" else "", - if(opts.bit32) "-DNN_BIT32" else "", + if (opts.baremetal) "-DNN_BAREMETAL" else "", + if (opts.bit32) "-DNN_BIT32" else "", }, }); const l = try compileTheRightLua(b, target, luaVer); diff --git a/build.zig.zon b/build.zig.zon deleted file mode 100644 index 856781d..0000000 --- a/build.zig.zon +++ /dev/null @@ -1,13 +0,0 @@ -.{ - .name = .neonucleus, - .fingerprint = 0xc9c7605b6b82f1a7, - .version = "0.0.1", - .paths = .{ "data", "build.zig", "build.zig.zon", "src" }, - - .dependencies = .{ - .raylib = .{ - .url = "https://github.com/raysan5/raylib/archive/46f01e315d07d0b1fedd1a3c388d1acaa9f6ccd6.tar.gz", - .hash = "raylib-5.5.0-whq8uO5uNgRDK_yuN0AGftGhWSVyctgPQNALENrZHt3k", - }, - }, -} diff --git a/foreign/raylib b/foreign/raylib new file mode 160000 index 0000000..6f10777 --- /dev/null +++ b/foreign/raylib @@ -0,0 +1 @@ +Subproject commit 6f1077737e48d447380cf5573adf1394dfe3aac6