- if( vg_compiler.compiler == k_compiler_clang ){
- strcat( cmd,
- " -ferror-limit=5\\\n" );
- }
-
- /* Include */
- strcat( cmd, " " );
- strcat( cmd, vg_compiler.include );
- strcat( cmd, "\\\n" );
-
- /* Library */
- strcat( cmd, " " );
- strcat( cmd, vg_compiler.library );
- strcat( cmd, "\\\n" );
-
- /* Targets */
- strcat( cmd, " " );
- strcat( cmd, vg_compiler.file );
- strcat( cmd, "\\\n" );
-
- /* Output */
- strcat( cmd, " -o " );
- vg_compiler.executable[0] = '\0';
- strcat( vg_compiler.executable, vg_compiler.build_dir );
- strcat( vg_compiler.executable, "/" );
- strcat( vg_compiler.executable, vg_compiler.name );
-
- if( vg_compiler.compiler == k_compiler_mingw )
- strcat( vg_compiler.executable, ".exe" );
-
- strcat( cmd, vg_compiler.executable );
- strcat( cmd, "\\\n" );
-
- /* Link */
- strcat( cmd, " " );
- strcat( cmd, vg_compiler.link );
- strcat( cmd, "\\\n" );
-
- strcat( cmd, " -Wl,-rpath=./" );
+ /* include paths */
+ vg_strcat( &cmd, " " );
+ vg_strcat( &cmd, vg_build.include.buffer );
+ vg_strcat( &cmd, "\\\n" );
+
+ /* library paths */
+ vg_strcat( &cmd, " " );
+ vg_strcat( &cmd, vg_build.library.buffer );
+ vg_strcat( &cmd, "\\\n" );
+
+ /* sources */
+ vg_strcat( &cmd, " " );
+ vg_strcat( &cmd, vg_build.sources.buffer );
+ vg_strcat( &cmd, "\\\n" );
+
+ /* output */
+ vg_strcat( &cmd, " -o bin/" );
+ vg_strcat( &cmd, vg_build.project_name.buffer );
+ vg_strcat( &cmd, "/" );
+ vg_strcat( &cmd, name );
+ if( vg_build.platform == k_platform_windows )
+ vg_strcat( &cmd, ".exe" );
+ vg_strcat( &cmd, "\\\n" );
+
+ /* link */
+ vg_strcat( &cmd, " " );
+ vg_strcat( &cmd, vg_build.link.buffer );
+ vg_strcat( &cmd, "\\\n" );
+
+ /* dont remember what this does */
+ vg_strcat( &cmd, " -Wl,-rpath=./\\\n" );
+
+ /* target platform specification (zig-cc only) */
+ if( vg_build.compiler == k_compiler_zigcc ){
+ vg_strcat( &cmd, " -target " );
+ vg_strcat( &cmd, architecture_names[vg_build.arch] );
+ vg_strcat( &cmd, "-" );
+ vg_strcat( &cmd, platform_names[vg_build.platform] );
+
+ if( vg_build.platform == k_platform_linux ){
+ vg_strcat( &cmd, "-gnu" );
+ vg_strcat( &cmd, libc_names[vg_build.libc] );
+ }