Browse Source

[nob] Make cmd and procs local again

rexim 7 months ago
parent
commit
f9a39b1c01
1 changed files with 56 additions and 56 deletions
  1. 56 56
      nob.c

+ 56 - 56
nob.c

@@ -5,85 +5,82 @@
 
 
 #define COMMON_CFLAGS "-Wall", "-Wextra", "-pedantic", "-ggdb", "-I.", "-I./build/", "-I./dev-deps/"
 #define COMMON_CFLAGS "-Wall", "-Wextra", "-pedantic", "-ggdb", "-I.", "-I./build/", "-I./dev-deps/"
 
 
-Cmd cmd = {0};
-Procs procs = {0};
-
-bool build_tools(void)
+bool build_tools(Cmd *cmd)
 {
 {
     if (!mkdir_if_not_exists("build")) return false;
     if (!mkdir_if_not_exists("build")) return false;
     if (!mkdir_if_not_exists("build/tools")) return false;
     if (!mkdir_if_not_exists("build/tools")) return false;
 
 
-    cmd_append(&cmd, "clang", COMMON_CFLAGS, "-o", "./build/tools/png2c", "./tools/png2c.c", "-lm");
-    if (!cmd_run_sync_and_reset(&cmd)) return false;
+    cmd_append(cmd, "clang", COMMON_CFLAGS, "-o", "./build/tools/png2c", "./tools/png2c.c", "-lm");
+    if (!cmd_run_sync_and_reset(cmd)) return false;
 
 
-    cmd_append(&cmd, "clang", COMMON_CFLAGS, "-o", "./build/tools/obj2c", "./tools/obj2c.c", "-lm");
-    if (!cmd_run_sync_and_reset(&cmd)) return false;
+    cmd_append(cmd, "clang", COMMON_CFLAGS, "-o", "./build/tools/obj2c", "./tools/obj2c.c", "-lm");
+    if (!cmd_run_sync_and_reset(cmd)) return false;
 
 
     return true;
     return true;
 }
 }
 
 
-bool build_assets(void)
+bool build_assets(Cmd *cmd)
 {
 {
     if (!mkdir_if_not_exists("build")) return false;
     if (!mkdir_if_not_exists("build")) return false;
     if (!mkdir_if_not_exists("build/assets")) return false;
     if (!mkdir_if_not_exists("build/assets")) return false;
 
 
-    cmd_append(&cmd, "./build/tools/png2c", "-n", "tsodinPog", "-o", "./build/assets/tsodinPog.c", "./assets/tsodinPog.png");
-    if (!cmd_run_sync_and_reset(&cmd)) return false;
+    cmd_append(cmd, "./build/tools/png2c", "-n", "tsodinPog", "-o", "./build/assets/tsodinPog.c", "./assets/tsodinPog.png");
+    if (!cmd_run_sync_and_reset(cmd)) return false;
 
 
-    cmd_append(&cmd, "./build/tools/png2c", "-n", "tsodinCup", "-o", "./build/assets/tsodinCup.c", "./assets/tsodinCup.png");
-    if (!cmd_run_sync_and_reset(&cmd)) return false;
+    cmd_append(cmd, "./build/tools/png2c", "-n", "tsodinCup", "-o", "./build/assets/tsodinCup.c", "./assets/tsodinCup.png");
+    if (!cmd_run_sync_and_reset(cmd)) return false;
 
 
-    cmd_append(&cmd, "./build/tools/png2c", "-n", "oldstone", "-o", "./build/assets/oldstone.c", "./assets/oldstone.png");
-    if (!cmd_run_sync_and_reset(&cmd)) return false;
+    cmd_append(cmd, "./build/tools/png2c", "-n", "oldstone", "-o", "./build/assets/oldstone.c", "./assets/oldstone.png");
+    if (!cmd_run_sync_and_reset(cmd)) return false;
 
 
-    cmd_append(&cmd, "./build/tools/png2c", "-n", "lavastone", "-o", "./build/assets/lavastone.c", "./assets/lavastone.png");
-    if (!cmd_run_sync_and_reset(&cmd)) return false;
+    cmd_append(cmd, "./build/tools/png2c", "-n", "lavastone", "-o", "./build/assets/lavastone.c", "./assets/lavastone.png");
+    if (!cmd_run_sync_and_reset(cmd)) return false;
 
 
-    cmd_append(&cmd, "./build/tools/obj2c", "-o", "./build/assets/tsodinCupLowPoly.c", "./assets/tsodinCupLowPoly.obj");
-    if (!cmd_run_sync_and_reset(&cmd)) return false;
+    cmd_append(cmd, "./build/tools/obj2c", "-o", "./build/assets/tsodinCupLowPoly.c", "./assets/tsodinCupLowPoly.obj");
+    if (!cmd_run_sync_and_reset(cmd)) return false;
 
 
-    cmd_append(&cmd, "./build/tools/obj2c", "-s", "0.40", "-o", "./build/assets/utahTeapot.c", "./assets/utahTeapot.obj");
-    if (!cmd_run_sync_and_reset(&cmd)) return false;
+    cmd_append(cmd, "./build/tools/obj2c", "-s", "0.40", "-o", "./build/assets/utahTeapot.c", "./assets/utahTeapot.obj");
+    if (!cmd_run_sync_and_reset(cmd)) return false;
 
 
-    cmd_append(&cmd, "./build/tools/obj2c", "-s", "1.5", "-o", "./build/assets/penger.c", "./assets/penger_obj/penger.obj");
-    if (!cmd_run_sync_and_reset(&cmd)) return false;
+    cmd_append(cmd, "./build/tools/obj2c", "-s", "1.5", "-o", "./build/assets/penger.c", "./assets/penger_obj/penger.obj");
+    if (!cmd_run_sync_and_reset(cmd)) return false;
 
 
     return true;
     return true;
 }
 }
 
 
-bool build_tests(void)
+bool build_tests(Cmd *cmd)
 {
 {
-    cmd_append(&cmd, "clang", COMMON_CFLAGS, "-fsanitize=memory", "-o", "./build/test", "test.c", "-lm");
-    if (!cmd_run_sync_and_reset(&cmd)) return false;
+    cmd_append(cmd, "clang", COMMON_CFLAGS, "-fsanitize=memory", "-o", "./build/test", "test.c", "-lm");
+    if (!cmd_run_sync_and_reset(cmd)) return false;
     return true;
     return true;
 }
 }
 
 
-void build_wasm_demo(const char *name)
+void build_wasm_demo(Cmd *cmd, Procs *procs, const char *name)
 {
 {
-    cmd_append(&cmd, "clang", COMMON_CFLAGS, "-O2", "-fno-builtin", "--target=wasm32", "--no-standard-libraries", "-Wl,--no-entry", "-Wl,--export=vc_render", "-Wl,--export=__heap_base", "-Wl,--allow-undefined", "-o", temp_sprintf("./build/demos/%s.wasm", name), "-DVC_PLATFORM=VC_WASM_PLATFORM", temp_sprintf("./demos/%s.c", name));
-    da_append(&procs, cmd_run_async_and_reset(&cmd));
+    cmd_append(cmd, "clang", COMMON_CFLAGS, "-O2", "-fno-builtin", "--target=wasm32", "--no-standard-libraries", "-Wl,--no-entry", "-Wl,--export=vc_render", "-Wl,--export=__heap_base", "-Wl,--allow-undefined", "-o", temp_sprintf("./build/demos/%s.wasm", name), "-DVC_PLATFORM=VC_WASM_PLATFORM", temp_sprintf("./demos/%s.c", name));
+    da_append(procs, cmd_run_async_and_reset(cmd));
 }
 }
 
 
-void build_term_demo(const char *name)
+void build_term_demo(Cmd *cmd, Procs *procs, const char *name)
 {
 {
-    cmd_append(&cmd, "clang", COMMON_CFLAGS, "-O2", "-o", temp_sprintf("./build/demos/%s.term", name), "-DVC_PLATFORM=VC_TERM_PLATFORM", "-D_XOPEN_SOURCE=600", temp_sprintf("./demos/%s.c", name), "-lm");
-    da_append(&procs, cmd_run_async_and_reset(&cmd));
+    cmd_append(cmd, "clang", COMMON_CFLAGS, "-O2", "-o", temp_sprintf("./build/demos/%s.term", name), "-DVC_PLATFORM=VC_TERM_PLATFORM", "-D_XOPEN_SOURCE=600", temp_sprintf("./demos/%s.c", name), "-lm");
+    da_append(procs, cmd_run_async_and_reset(cmd));
 }
 }
 
 
-void build_sdl_demo(const char *name)
+void build_sdl_demo(Cmd *cmd, Procs *procs, const char *name)
 {
 {
-    cmd_append(&cmd, "clang", COMMON_CFLAGS, "-O2", "-o", temp_sprintf("./build/demos/%s.sdl", name), "-DVC_PLATFORM=VC_SDL_PLATFORM", temp_sprintf("./demos/%s.c", name), "-lm", "-lSDL2", NULL);
-    da_append(&procs, cmd_run_async_and_reset(&cmd));
+    cmd_append(cmd, "clang", COMMON_CFLAGS, "-O2", "-o", temp_sprintf("./build/demos/%s.sdl", name), "-DVC_PLATFORM=VC_SDL_PLATFORM", temp_sprintf("./demos/%s.c", name), "-lm", "-lSDL2", NULL);
+    da_append(procs, cmd_run_async_and_reset(cmd));
 }
 }
 
 
-void build_vc_demo(const char *name)
+void build_vc_demo(Cmd *cmd, Procs *procs, const char *name)
 {
 {
-    build_wasm_demo(name);
-    build_term_demo(name);
-    build_sdl_demo(name);
+    build_wasm_demo(cmd, procs, name);
+    build_term_demo(cmd, procs, name);
+    build_sdl_demo(cmd, procs, name);
 }
 }
 
 
-bool build_all_vc_demos(void)
+bool build_all_vc_demos(Cmd *cmd, Procs *procs)
 {
 {
     if (!mkdir_if_not_exists("build")) return false;
     if (!mkdir_if_not_exists("build")) return false;
     if (!mkdir_if_not_exists("build/demos")) return false;
     if (!mkdir_if_not_exists("build/demos")) return false;
@@ -102,12 +99,12 @@ bool build_all_vc_demos(void)
     size_t thread_count = 6;
     size_t thread_count = 6;
 
 
     for (size_t i = 0; i < ARRAY_LEN(names); ++i) {
     for (size_t i = 0; i < ARRAY_LEN(names); ++i) {
-        build_vc_demo(names[i]);
-        if (procs.count >= thread_count) {
-            if (!nob_procs_wait_and_reset(&procs)) return false;
+        build_vc_demo(cmd, procs, names[i]);
+        if (procs->count >= thread_count) {
+            if (!nob_procs_wait_and_reset(procs)) return false;
         }
         }
     }
     }
-    if (!nob_procs_wait_and_reset(&procs)) return false;
+    if (!nob_procs_wait_and_reset(procs)) return false;
 
 
     for (size_t i = 0; i < ARRAY_LEN(names); ++i) {
     for (size_t i = 0; i < ARRAY_LEN(names); ++i) {
         const char *src_path = temp_sprintf("./build/demos/%s.wasm", names[i]);
         const char *src_path = temp_sprintf("./build/demos/%s.wasm", names[i]);
@@ -143,16 +140,19 @@ int main(int argc, char **argv)
 {
 {
     NOB_GO_REBUILD_URSELF(argc, argv);
     NOB_GO_REBUILD_URSELF(argc, argv);
 
 
+    Cmd cmd = {0};
+    Procs procs = {0};
+
     const char *program = shift_args(&argc, &argv);
     const char *program = shift_args(&argc, &argv);
 
 
     if (argc > 0) {
     if (argc > 0) {
         const char *subcmd = shift_args(&argc, &argv);
         const char *subcmd = shift_args(&argc, &argv);
         if (strcmp(subcmd, "tools") == 0) {
         if (strcmp(subcmd, "tools") == 0) {
-            if (!build_tools()) return 1;
+            if (!build_tools(&cmd)) return 1;
         } else if (strcmp(subcmd, "assets") == 0) {
         } else if (strcmp(subcmd, "assets") == 0) {
-            if (!build_assets()) return 1;
+            if (!build_assets(&cmd)) return 1;
         } else if (strcmp(subcmd, "tests") == 0 || strcmp(subcmd, "test") == 0) {
         } else if (strcmp(subcmd, "tests") == 0 || strcmp(subcmd, "test") == 0) {
-            if (!build_tests()) return 1;
+            if (!build_tests(&cmd)) return 1;
             if (argc > 0) {
             if (argc > 0) {
                 cmd_append(&cmd, "./build/test");
                 cmd_append(&cmd, "./build/test");
                 da_append_many(&cmd, argv, argc);
                 da_append_many(&cmd, argv, argc);
@@ -160,13 +160,13 @@ int main(int argc, char **argv)
             }
             }
         } else if (strcmp(subcmd, "demos") == 0) {
         } else if (strcmp(subcmd, "demos") == 0) {
             if (argc <= 0) {
             if (argc <= 0) {
-                if (!build_all_vc_demos()) return 1;
+                if (!build_all_vc_demos(&cmd, &procs)) return 1;
                 return 0;
                 return 0;
             }
             }
 
 
             const char *name = shift(argv, argc);
             const char *name = shift(argv, argc);
             if (argc <= 0) {
             if (argc <= 0) {
-                build_vc_demo(name);
+                build_vc_demo(&cmd, &procs, name);
                 if (!procs_wait_and_reset(&procs)) return 1;
                 if (!procs_wait_and_reset(&procs)) return 1;
                 const char *src_path = temp_sprintf("./build/demos/%s.wasm", name);
                 const char *src_path = temp_sprintf("./build/demos/%s.wasm", name);
                 const char *dst_path = temp_sprintf("./wasm/%s.wasm", name);
                 const char *dst_path = temp_sprintf("./wasm/%s.wasm", name);
@@ -176,7 +176,7 @@ int main(int argc, char **argv)
 
 
             const char *platform = shift(argv, argc);
             const char *platform = shift(argv, argc);
             if (strcmp(platform, "sdl") == 0) {
             if (strcmp(platform, "sdl") == 0) {
-                build_sdl_demo(name);
+                build_sdl_demo(&cmd, &procs, name);
                 if (!procs_wait_and_reset(&procs)) return 1;
                 if (!procs_wait_and_reset(&procs)) return 1;
                 if (argc <= 0) return 0;
                 if (argc <= 0) return 0;
                 const char *run = shift(argv, argc);
                 const char *run = shift(argv, argc);
@@ -189,7 +189,7 @@ int main(int argc, char **argv)
                 if (!cmd_run_sync_and_reset(&cmd)) return 1;
                 if (!cmd_run_sync_and_reset(&cmd)) return 1;
                 return 0;
                 return 0;
             } else if (strcmp(platform, "term") == 0) {
             } else if (strcmp(platform, "term") == 0) {
-                build_term_demo(name);
+                build_term_demo(&cmd, &procs, name);
                 if (!procs_wait_and_reset(&procs)) return 1;
                 if (!procs_wait_and_reset(&procs)) return 1;
                 if (argc <= 0) return 0;
                 if (argc <= 0) return 0;
                 const char *run = shift(argv, argc);
                 const char *run = shift(argv, argc);
@@ -202,7 +202,7 @@ int main(int argc, char **argv)
                 if (!cmd_run_sync_and_reset(&cmd)) return 1;
                 if (!cmd_run_sync_and_reset(&cmd)) return 1;
                 return 0;
                 return 0;
             } else if (strcmp(platform, "wasm") == 0) {
             } else if (strcmp(platform, "wasm") == 0) {
-                build_wasm_demo(name);
+                build_wasm_demo(&cmd, &procs, name);
                 if (!procs_wait_and_reset(&procs)) return 1;
                 if (!procs_wait_and_reset(&procs)) return 1;
                 const char *src_path = temp_sprintf("./build/demos/%s.wasm", name);
                 const char *src_path = temp_sprintf("./build/demos/%s.wasm", name);
                 const char *dst_path = temp_sprintf("./wasm/%s.wasm", name);
                 const char *dst_path = temp_sprintf("./wasm/%s.wasm", name);
@@ -220,10 +220,10 @@ int main(int argc, char **argv)
             return 1;
             return 1;
         }
         }
     } else {
     } else {
-        if (!build_tools()) return 1;
-        if (!build_assets()) return 1;
-        if (!build_tests()) return 1;
-        if (!build_all_vc_demos()) return 1;
+        if (!build_tools(&cmd)) return 1;
+        if (!build_assets(&cmd)) return 1;
+        if (!build_tests(&cmd)) return 1;
+        if (!build_all_vc_demos(&cmd, &procs)) return 1;
     }
     }
 
 
     return 0;
     return 0;