From c8b32782124e02d8958db4e50eef29550293e728 Mon Sep 17 00:00:00 2001 From: hgn Date: Wed, 20 Dec 2023 06:52:54 +0000 Subject: [PATCH] support zig cc --- vg_build.h | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/vg_build.h b/vg_build.h index f7a641e..f1b1435 100644 --- a/vg_build.h +++ b/vg_build.h @@ -33,6 +33,7 @@ struct compiler_info k_compiler_clang, k_compiler_gcc, k_compiler_mingw, + k_compiler_zigcc, k_compiler_none } compiler; @@ -80,8 +81,9 @@ void vg_build_include( const char *inc ) const char *vg_compiler_str(void) { - return (const char *[]){ "clang", "gcc", "i686-w64-mingw32-gcc", "none" } - [vg_compiler.compiler]; + return (const char *[]) + { "clang", "gcc", "i686-w64-mingw32-gcc", "zig", "none" } + [vg_compiler.compiler]; } void vg_build_start( const char *name, enum compiler compiler ) @@ -105,12 +107,16 @@ void vg_build_start( const char *name, enum compiler compiler ) vg_build_syscall( "mkdir -p %s", vg_compiler.build_dir ); vg_build_include( "-I. -I./vg " ); vg_build_library_dir( "-L. " ); + + if( vg_compiler.compiler == k_compiler_zigcc ) + vg_build_library_dir( "-L/usr/lib " ); } void vg_build_add_link_for_graphics(void) { if( (vg_compiler.compiler == k_compiler_gcc) || - (vg_compiler.compiler == k_compiler_clang ) ) + (vg_compiler.compiler == k_compiler_clang ) || + (vg_compiler.compiler == k_compiler_zigcc) ) { vg_build_link( "-lSDL2 -lGL -lX11 -lXxf86vm -lXrandr -lXi -ldl " ); } @@ -141,7 +147,8 @@ void vg_build_add_link_for_graphics(void) void vg_build_add_link_for_game(void) { if( (vg_compiler.compiler == k_compiler_gcc) || - (vg_compiler.compiler == k_compiler_clang ) ) + (vg_compiler.compiler == k_compiler_clang ) || + (vg_compiler.compiler == k_compiler_zigcc) ) { vg_build_link( "-lsteam_api " ); } @@ -185,7 +192,8 @@ void vg_build_copy_game_dependencies(void) "vg/submodules/SDL_GameControllerDB/gamecontrollerdb.txt" ); if( (vg_compiler.compiler == k_compiler_gcc) || - (vg_compiler.compiler == k_compiler_clang) ) + (vg_compiler.compiler == k_compiler_clang) || + (vg_compiler.compiler == k_compiler_zigcc) ) { vg_build_bin_dependency_file( "vg/dep/steam/libsteam_api.so" ); } @@ -217,6 +225,7 @@ void vg_build(void) /* Compiler */ strcat( cmd, "ccache " ); strcat( cmd, vg_compiler_str() ); + strcat( cmd, " cc" ); strcat( cmd, " -std=gnu99 -D_REENTRANT \\\n" ); /* Debugging information */ @@ -225,7 +234,8 @@ void vg_build(void) strcat( cmd, " -O0 -ggdb3 -fno-omit-frame-pointer " ); if( (vg_compiler.compiler == k_compiler_gcc) || - (vg_compiler.compiler == k_compiler_clang ) ) + (vg_compiler.compiler == k_compiler_clang ) || + (vg_compiler.compiler == k_compiler_zigcc) ) { strcat( cmd, "-rdynamic -fsanitize=address " "-fPIE -fstack-protector-strong " ); @@ -285,5 +295,9 @@ void vg_build(void) strcat( cmd, " -Wl,-rpath=./" ); + if( vg_compiler.compiler == k_compiler_zigcc ){ + strcat( cmd, " -target native-native-gnu.2.23" ); + } + vg_build_syscall( cmd ); } -- 2.25.1