build system revision
authorhgn <hgodden00@gmail.com>
Thu, 22 Feb 2024 08:41:24 +0000 (08:41 +0000)
committerhgn <hgodden00@gmail.com>
Thu, 22 Feb 2024 08:41:24 +0000 (08:41 +0000)
build.c
build.sh
dist/steam_cache/depot_build_1218141.vdf
dist/steam_cache/depot_build_1218142.vdf
fishladder_vg1.c
input.h
marblecomp.c
marblecomp_settings.h

diff --git a/build.c b/build.c
index de7e45b04787f409a9e1176cbe1326e00f28d9b6..73806d3e16193e4c7cafb293f744ffa2197603f9 100644 (file)
--- a/build.c
+++ b/build.c
@@ -1,4 +1,3 @@
-#include "vg/vg.h"
 #include "vg/vg_platform.h"
 #include "vg/vg_log.h"
 #include "vg/vg_opt.h"
@@ -12,18 +11,19 @@ u32 optimize_test_compile = 0;
  * Compilation specifications
  * -------------------------------------------------------------------------- */
 
-void build_game_content(void){
-   const char *project_name = vg_build.project_name.buffer;
-   vg_low( "Building game content structure\n" );
-   vg_symlink( "textures_qoi", "textures" );
-   vg_symlink( "maps", "maps" );
-   vg_symlink( "sound", "sound" );
-   vg_syscall( "mkdir -p bin/%s/cfg", project_name );
-   vg_syscall( "mkdir -p bin/%s/sav", project_name );
+void build_game_content( struct vg_project *proj )
+{
+   vg_project_new_target( proj, "Content files", k_obj_type_none );
+   vg_symlink( proj, "textures_qoi", "textures" );
+   vg_symlink( proj, "maps", "maps" );
+   vg_symlink( proj, "sound", "sound" );
+   vg_syscall( "mkdir -p bin/%s/cfg", proj->uid.buffer );
+   vg_syscall( "mkdir -p bin/%s/sav", proj->uid.buffer );
 }
 
 void build_shaders(void);
-void compile_game( int binaries, int content ){
+void build_game_bin( struct vg_project *proj )
+{
    static int meta = 0;
    if( !meta ){
       meta = 1;
@@ -31,17 +31,19 @@ void compile_game( int binaries, int content ){
       vg_low( "\n\n" );
    }
 
-   vg_build_new( "marblecomp" );
-
-   if( binaries ){
-      vg_add_source( "marblecomp.c" );
-      vg_add_graphics();
-      vg_add_game_stuff();
-      vg_compile( "fishladder" );
-   }
-
-   if( content )
-      build_game_content();
+   vg_project_new_target( proj, "fishladder", k_obj_type_exe );
+   vg_add_engine( proj, &(struct vg_engine_config)
+         {
+            .fixed_update_hz = 60,
+            .legacy_support_vg_msg1 = 0,
+            .log_source_info = 1,
+            .steam_api = 1,
+            .use_3d = 0,
+            .custom_game_settings = 1
+         });
+
+   vg_add_source( proj, "marblecomp.c" );
+   vg_compile_project( proj );
 }
 
 /*
@@ -51,48 +53,32 @@ void compile_game( int binaries, int content ){
 void s_release_all(void){
    vg_info( "running script: s_release_all(void)\n" );
 
-   vg_build.optimization = 3;
-   vg_build.fresh = 1;
-   vg_build.arch = k_architecture_x86_64;
-   vg_build.compiler = k_compiler_zigcc;
-   vg_build.libc = k_libc_version_2_23;
-
-   /* binaries for windows and linux */
-   vg_build.platform = k_platform_windows;
-   compile_game( 1, 1 );
-   vg_tarball_last_project(); 
-   vg_success( "Completed 1/2\n" );
-
-   vg_build.platform = k_platform_linux;
-   compile_game( 1, 1 );
-   vg_tarball_last_project(); 
-   vg_success( "Completed 2/2\n" );
-
-#if 0
-   /* content files for any platform */
-   vg_build.platform = k_platform_anyplatform;
-   vg_build.compiler = k_compiler_blob;
-   vg_build.arch = k_architecture_anyarch;
-   vg_build.libc = k_libc_version_native;
-   compile_game( 0, 1 );
-   vg_tarball_last_project(); 
-   vg_success( "Completed 3/3\n" );
-#endif
+   struct vg_project linux_proj, windows_proj;
+
+   struct vg_env env = vg_release_env;
+   env.platform = k_platform_linux;
+   vg_project_init( &linux_proj, &env, "marblecomp" );
+   build_game_content( &linux_proj );
+   build_game_bin( &linux_proj );
+
+   env = vg_release_env;
+   env.platform = k_platform_windows;
+   vg_project_init( &windows_proj, &env, "marblecomp" );
+   build_game_content( &windows_proj );
+   build_game_bin( &windows_proj );
+
+   vg_tarball_project( &linux_proj );
+   vg_tarball_project( &windows_proj );
 }
 
 void s_testing_build(void){
    vg_info( "running script: s_testing_build(void)\n" );
 
-   vg_build.optimization = optimize_test_compile;
-   vg_build.fresh = 0;
-   vg_build.platform = k_platform_linux;
-   vg_build.arch = k_architecture_x86_64;
-   vg_build.compiler = k_compiler_clang;
-   vg_build.libc = k_libc_version_native;
-
-   compile_game( 1, 1 );
+   struct vg_project test_proj;
+   vg_project_init( &test_proj, &vg_test_env, "marblecomp-test" );
 
-   vg_success( "Completed 1/1\n" );
+   build_game_content( &test_proj );
+   build_game_bin( &test_proj );
 }
 
 int main( int argc, char *argv[] ){
@@ -105,13 +91,10 @@ int main( int argc, char *argv[] ){
          s_testing_build();
 
       if( vg_opt('r') )
-         optimize_test_compile = 3;
+         vg_test_env.optimization = 3;
    }
 
-   if( vg_build.warnings )
-      vg_warn( "Finished with %u warnings\n", vg_build.warnings );
-   else
-      vg_success( "All scripts ran successfully\n" );
+   vg_success( "All scripts ran successfully\n" );
 }
 
 #define _S( NAME, VS, FS ) \
index d807648f5c4c0b8567c1d98974b8037da16bbe8d..f5175ea5c3f07c82faa0ea13608506a7bce68558 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -1 +1 @@
-clang -fsanitize=address -O0 -I./vg build.c -o /tmp/tmpsr && /tmp/tmpsr $@
+clang -fsanitize=address -O0 -I./vg build.c vg/vg_tool.c -o /tmp/tmpsr && /tmp/tmpsr $@
index eef2fff359ee3dac13499478cbd22630587adb76..3a78db07943fd7fb7a9b0c47f698545509c97018 100755 (executable)
@@ -4,6 +4,6 @@
        "depotid"               "1218141"
        "flags"         "0"
        "steamid"               "76561198072130043"
-       "manifest"              "5841690690099065898"
-       "baselinemanifest"              "6242687686564087841"
+       "manifest"              "5141257285104113125"
+       "baselinemanifest"              "4806168269097984635"
 }
index 6fec4290bef9b8163caa0b39a4230da0507bd67d..134a8195d8bc1eaa7ed1a8525325cfff09ba9fd4 100755 (executable)
@@ -4,6 +4,6 @@
        "depotid"               "1218142"
        "flags"         "0"
        "steamid"               "76561198072130043"
-       "manifest"              "5738002581659433661"
-       "baselinemanifest"              "2883070295580438548"
+       "manifest"              "8087969014587143684"
+       "baselinemanifest"              "9117998720832101161"
 }
index d58d229acd8603b9070f5fbda364185394d5b0e9..0908357e5e2e3b29a5f3bc0cab9dc06aeea23c33 100644 (file)
@@ -3755,21 +3755,6 @@ void _mc_vg1_start(void){
        sw_leaderboard_downloaded = &leaderboard_downloaded;
        #endif
 
-   vg_console_reg_cmd( "_map_write", console_save_map, NULL );
-   vg_console_reg_cmd( "_map_load", console_load_map, NULL );
-   vg_console_reg_cmd( "map", console_changelevel, NULL );
-   vg_console_reg_cmd( "credits", console_credits, NULL );
-   vg_console_reg_var( "colours", &marblecomp.colour_set, k_var_dtype_i32,
-                       VG_VAR_PERSISTENT );
-   vg_console_reg_var( "theme", &marblecomp.world_theme, k_var_dtype_i32,
-                       VG_VAR_PERSISTENT );
-   vg_console_reg_var( "enable_bloom", &marblecomp.bloom, k_var_dtype_i32,
-                       VG_VAR_PERSISTENT );
-   vg_console_reg_var( "enable_vignette", &marblecomp.vignette, k_var_dtype_i32,
-                       VG_VAR_PERSISTENT );
-   vg_console_reg_var( "music", &marblecomp.music, k_var_dtype_i32,
-                       VG_VAR_PERSISTENT );
-
        // Combined quad, long quad / empty circle / filled circle mesh
        {
                float combined_mesh[6*6 + 32*6*3] = {
diff --git a/input.h b/input.h
index 5bc501a16c2dcd64104f73dc49d536a8192cc406..164d5f2b84f84308819e6dcda357d7365b8c8460 100644 (file)
--- a/input.h
+++ b/input.h
@@ -1,12 +1,10 @@
-#ifndef INPUT_H
-#define INPUT_H
-
-#define VG_GAME
-#include "vg/vg.h"
+#pragma once
 #include "vg/vg_platform.h" 
 #include "vg/vg_console.h"
 #include "vg/vg_input.h"
 #include "vg/vg_m.h"
+#include "vg/vg_tex.h"
+#include "vg/vg_imgui.h"
 
 enum sr_bind{
    k_srbind_primary = 0,
@@ -176,5 +174,3 @@ static void skaterift_preupdate_inputs(void){
       }
    }
 }
-
-#endif /* INPUT_H */
index b84e640bc79bf395006a132524c2f52f034111ed..a6d9b506786ca414aff62436263e849fe2198aeb 100644 (file)
@@ -1,23 +1,14 @@
-#define VG_GAME
-#define VG_AUDIO_FORCE_COMPRESSED
-#define VG_2D
-#define VG_LOG_SOURCE_INFO
-#define VG_TIMESTEP_FIXED (1.0/60.0)
-#define VG_GAME_SETTINGS
-
-#ifndef VG_RELEASE
- #define VG_DEVWINDOW
-#endif
-
-#define SDL_MAIN_HANDLED
-
+#include "vg/vg_engine.h"
+#include "vg/vg_audio.h"
+#include "vg/vg_loader.h"
+#include "vg/vg_async.h"
+#include "vg/vg_lines.h"
 #define STB_DS_IMPLEMENTATION
 #include "vg/submodules/stb/stb_ds.h"
-
-#include "vg/vg.h"
 #include "steam.h"
 
-struct {
+struct 
+{
    enum mc_op {
       k_mc_op_none,
       k_mc_op_clientloading
@@ -43,11 +34,13 @@ int main( int argc, char *argv[] ){
    return 0;
 }
 
-static void vg_launch_opt(void){
+void vg_launch_opt(void)
+{
    const char *arg;
 }
 
-static void vg_preload(void){
+void vg_preload(void)
+{
    vg_audio.dsp_enabled = 0;
 vg_info(" Copyright  .        . .       -----, ,----- ,---.   .---.  \n" );
 vg_info(" 2021-2023  |\\      /| |           /  |      |    | |    /| \n" );
@@ -76,8 +69,25 @@ static void async_call_ready( void *payload, u32 size ){
    audio_unlock();
 }
 
-static void vg_load(void){
+void vg_load(void)
+{
    /* --------------------- */
+   vg_console_reg_cmd( "_map_write", console_save_map, NULL );
+   vg_console_reg_cmd( "_map_load", console_load_map, NULL );
+   vg_console_reg_cmd( "map", console_changelevel, NULL );
+   vg_console_reg_cmd( "credits", console_credits, NULL );
+   vg_console_reg_var( "colours", &marblecomp.colour_set, k_var_dtype_i32,
+                       VG_VAR_PERSISTENT );
+   vg_console_reg_var( "theme", &marblecomp.world_theme, k_var_dtype_i32,
+                       VG_VAR_PERSISTENT );
+   vg_console_reg_var( "enable_bloom", &marblecomp.bloom, k_var_dtype_i32,
+                       VG_VAR_PERSISTENT );
+   vg_console_reg_var( "enable_vignette", &marblecomp.vignette, k_var_dtype_i32,
+                       VG_VAR_PERSISTENT );
+   vg_console_reg_var( "music", &marblecomp.music, k_var_dtype_i32,
+                       VG_VAR_PERSISTENT );
+
+   vg_audio.always_keep_compressed = 1;
    _mc_vg1_register();
        _mc_resource_load_main();
    vg_bake_shaders();
@@ -100,29 +110,34 @@ void _mc_vg1_projection_update(void){
 }
 
 
-static void vg_pre_update(void){
+void vg_pre_update(void)
+{
    steam_update();
    if( marblecomp.op == k_mc_op_clientloading ) return;
    skaterift_preupdate_inputs();
    _mc_vg1_update();
 }
 
-static void vg_fixed_update(void){
+void vg_fixed_update(void)
+{
    if( marblecomp.op == k_mc_op_clientloading ) return;
 }
 
-static void vg_post_update(void){
+void vg_post_update(void)
+{
    if( marblecomp.op == k_mc_op_clientloading ) return;
    _mc_vg1_projection_update();
 }
 
-static void vg_framebuffer_resize( int w, int h ){
+void vg_framebuffer_resize( int w, int h )
+{
    _mc_vg1_framebuffer_resize(w,h);
 }
 
-static void vg_render(void){
+void vg_render(void)
+{
    if( marblecomp.op == k_mc_op_clientloading ){
-      _vg_loader_render();
+      vg_loader_render();
       return;
    }
 
@@ -140,7 +155,8 @@ static void vg_render(void){
    vg_lines_drawall();
 }
 
-static void vg_gui(void){
+void vg_gui(void)
+{
    if( marblecomp.op == k_mc_op_clientloading ) return;
    vg_ui.wants_mouse = 1;
    _mc_vg1_ui();
index 3952fba5030a58164fc5f4a18eeb2b7ed47c591a..47ebfbc257e7f867f75b3561c60ab757f6bb2e08 100644 (file)
@@ -37,7 +37,8 @@ static mc_settings = {
                .options = mc_settings_binary, .option_count = 2 }
 };
 
-static void vg_game_settings_init(void){
+void vg_game_settings_init(void)
+{
    ui_settings_enum_init( &mc_settings.colourscheme );
    ui_settings_enum_init( &mc_settings.bloom );
    ui_settings_enum_init( &mc_settings.vignette );
@@ -45,7 +46,8 @@ static void vg_game_settings_init(void){
    ui_settings_enum_init( &mc_settings.music );
 }
 
-static void vg_game_settings_gui( ui_rect panel ){
+void vg_game_settings_gui( ui_rect panel )
+{
    ui_rect rq;
    ui_standard_widget( panel, rq, 1 );