Commit: f54cae8038b025c3118e5c7d1b2700567b7da962
Parent: 54a26e8d185ba2aebeb05532c9f359619cda8ab5
Author: Randy Palamar
Date: Mon, 5 May 2025 21:12:21 -0600
build/ci: fix building on w32
also build --debug in ci
Diffstat:
2 files changed, 34 insertions(+), 25 deletions(-)
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
@@ -19,7 +19,7 @@ jobs:
sudo apt update
sudo apt install libxkbcommon-dev xorg-dev
- name: Build
- run: ${{matrix.cc}} -march=native -O3 build.c -Iexternal/include -o build && ./build
+ run: ${{matrix.cc}} -march=native -O3 build.c -Iexternal/include -o build && ./build && ./build --debug
windows:
runs-on: windows-latest
@@ -43,4 +43,4 @@ jobs:
install: git mingw-w64-${{matrix.env}}-${{matrix.cc}}
- name: Build
- run: ${{matrix.cc}} -march=native -O3 build.c -Iexternal/include -o build && ./build
+ run: ${{matrix.cc}} -march=native -O3 build.c -Iexternal/include -o build && ./build && ./build --debug
diff --git a/build.c b/build.c
@@ -502,6 +502,23 @@ check_build_raylib(Arena a, CommandList cc, b32 shared)
os_copy_file("external/raylib/src/rlgl.h", "external/include/rlgl.h");
}
+ if (rebuild_glfw) {
+ cc.count = cc_count_start;
+ if (is_unix) cmd_append(&a, &cc, "-D_GLFW_X11");
+ char *srcs[] = {"external/raylib/src/rglfw.c"};
+ char *outs[] = {OUTPUT("rglfw.o")};
+
+ b32 success;
+ if (shared) {
+ cmd_pdb(&a, &cc);
+ if (is_w32) cmd_append(&a, &cc, "-lgdi32", "-lwinmm");
+ success = build_shared_library(a, cc, libglfw[shared], srcs, countof(srcs));
+ } else {
+ success = build_static_library(a, cc, libglfw[shared], srcs, outs, countof(srcs));
+ }
+ if (!success) die("failed to build libary: %s\n", libglfw[shared]);
+ }
+
if (rebuild_raylib) {
cc.count = cc_count_start;
cmd_append(&a, &cc, "-Wno-unused-but-set-variable");
@@ -522,32 +539,15 @@ check_build_raylib(Arena a, CommandList cc, b32 shared)
b32 success;
if (shared) {
- cmd_pdb(&a, &cc);
cmd_append(&a, &cc, "-DBUILD_LIBTYPE_SHARED");
+ cmd_pdb(&a, &cc);
+ if (is_w32) cmd_append(&a, &cc, "-L.", "-lglfw", "-lgdi32", "-lwinmm");
success = build_shared_library(a, cc, libraylib[shared], srcs, countof(srcs));
- cc.count--;
} else {
success = build_static_library(a, cc, libraylib[shared], srcs, outs, countof(srcs));
}
if (!success) die("failed to build libary: %s\n", libraylib[shared]);
}
-
- if (rebuild_glfw) {
- cc.count = cc_count_start;
- if (is_unix) cmd_append(&a, &cc, "-D_GLFW_X11");
- char *srcs[] = {"external/raylib/src/rglfw.c"};
- char *outs[] = {OUTPUT("rglfw.o")};
-
- b32 success;
- if (shared) {
- cmd_pdb(&a, &cc);
- if (is_w32) cmd_append(&a, &cc, "-lgdi32", "-lwinmm");
- success = build_shared_library(a, cc, libglfw[shared], srcs, countof(srcs));
- } else {
- success = build_static_library(a, cc, libglfw[shared], srcs, outs, countof(srcs));
- }
- if (!success) die("failed to build libary: %s\n", libglfw[shared]);
- }
}
/* NOTE(rnp): gcc requires these to appear at the end for no reason at all */
@@ -614,12 +614,21 @@ main(i32 argc, char *argv[])
build_helper_library(&arena, &c);
- if (options.debug && !build_shared_library(arena, c, OS_SHARED_LIB("beamformer"),
- (char *[]){"beamformer.c"}, 1))
- {
- die("failed to build: " OS_SHARED_LIB("beamfomer") "\n");
+ /////////////////////////
+ // hot reloadable portion
+ if (options.debug) {
+ iz c_count = c.count;
+ if (is_w32) cmd_append_ldflags(&arena, &c, 1);
+ if (!build_shared_library(arena, c, OS_SHARED_LIB("beamformer"),
+ (char *[]){"beamformer.c"}, 1))
+ {
+ die("failed to build: " OS_SHARED_LIB("beamfomer") "\n");
+ }
+ c.count = c_count;
}
+ //////////////////
+ // static portion
cmd_append(&arena, &c, "-o", "ogl", OS_MAIN);
if (!options.debug) cmd_append(&arena, &c, OUTPUT("libglfw.a"), OUTPUT("libraylib.a"));
cmd_append_ldflags(&arena, &c, options.debug);