diff --git a/build.c b/build.c index e3c35b6..72e1596 100644 --- a/build.c +++ b/build.c @@ -103,7 +103,7 @@ static bool build_freetype_lib(const char *build_dir, bool debug) { cmd_append(&cmd, "-std=c11", "-c"); cmd_append(&cmd, "-DFT2_BUILD_LIBRARY"); cmd_append(&cmd, "-Ivendor/freetype/include"); - cmd_append(&cmd, "-Wall", "-Wno-unused-function", "-Wno-unused-parameter"); + cmd_append(&cmd, "-w"); if (debug) { cmd_append(&cmd, "-g", "-O0"); } else { @@ -195,9 +195,10 @@ int main(int argc, char **argv) { cmd_append(&cmd, "-std=c11", "-x", "objective-c"); cmd_append(&cmd, "-Wall", "-Wextra", "-Wno-missing-field-initializers"); cmd_append(&cmd, "-Wno-deprecated-declarations"); - cmd_append(&cmd, "-Isrc", "-Ivendor/clay"); - cmd_append(&cmd, "-Ivendor/nanosvg"); - cmd_append(&cmd, "-Ivendor/freetype/include"); + cmd_append(&cmd, "-Isrc"); + cmd_append(&cmd, "-isystem", "vendor/clay"); + cmd_append(&cmd, "-isystem", "vendor/nanosvg"); + cmd_append(&cmd, "-isystem", "vendor/freetype/include"); if (debug) { cmd_append(&cmd, "-g", "-O0", "-D_DEBUG"); @@ -365,7 +366,7 @@ static bool build_freetype_lib(const char *build_dir, bool debug) { cmd_append(&cmd, "/std:c11"); cmd_append(&cmd, "/DFT2_BUILD_LIBRARY"); cmd_append(&cmd, "/Ivendor/freetype/include"); - cmd_append(&cmd, "/W3"); + cmd_append(&cmd, "/W0"); if (debug) { cmd_append(&cmd, "/MTd", "/Zi"); } else { @@ -442,7 +443,6 @@ int main(int argc, char **argv) { if (!compile_and_embed_shaders(build_dir)) return 1; const char *vk_sdk = get_vulkan_sdk_path(); - const char *vk_include = temp_sprintf("/I%s/Include", vk_sdk); const char *vk_lib = temp_sprintf("%s/Lib/vulkan-1.lib", vk_sdk); // Unity build: single cl.exe invocation compiles main.c (which #includes everything) @@ -450,10 +450,12 @@ int main(int argc, char **argv) { Cmd cmd = {0}; cmd_append(&cmd, "cl.exe"); cmd_append(&cmd, "/nologo", "/std:c11", "/TC", "/W3"); - cmd_append(&cmd, "/Isrc", "/Ivendor/clay"); - cmd_append(&cmd, "/Ivendor/nanosvg"); - cmd_append(&cmd, "/Ivendor/freetype/include"); - cmd_append(&cmd, vk_include); + cmd_append(&cmd, "/Isrc"); + cmd_append(&cmd, "/external:W0"); + cmd_append(&cmd, "/external:Ivendor/clay"); + cmd_append(&cmd, "/external:Ivendor/nanosvg"); + cmd_append(&cmd, "/external:Ivendor/freetype/include"); + cmd_append(&cmd, temp_sprintf("/external:I%s/Include", vk_sdk)); if (debug) { cmd_append(&cmd, "/MTd", "/Zi", "/D_DEBUG"); @@ -469,7 +471,8 @@ int main(int argc, char **argv) { cmd_append(&cmd, "/link"); cmd_append(&cmd, "/MACHINE:X64"); - cmd_append(&cmd, "/SUBSYSTEM:CONSOLE"); + cmd_append(&cmd, debug ? "/SUBSYSTEM:CONSOLE" : "/SUBSYSTEM:WINDOWS"); + if (!debug) cmd_append(&cmd, "/ENTRY:mainCRTStartup"); cmd_append(&cmd, temp_sprintf("/PDB:%s/autosample.pdb", build_dir)); cmd_append(&cmd, "/DEBUG"); cmd_append(&cmd, debug ? "vendor/freetype/freetype_d.lib" : "vendor/freetype/freetype.lib");