update build

This commit is contained in:
2026-03-13 11:03:21 -04:00
parent 68fc916bc1
commit bb5e0fb766

25
build.c
View File

@@ -103,7 +103,7 @@ static bool build_freetype_lib(const char *build_dir, bool debug) {
cmd_append(&cmd, "-std=c11", "-c"); cmd_append(&cmd, "-std=c11", "-c");
cmd_append(&cmd, "-DFT2_BUILD_LIBRARY"); cmd_append(&cmd, "-DFT2_BUILD_LIBRARY");
cmd_append(&cmd, "-Ivendor/freetype/include"); cmd_append(&cmd, "-Ivendor/freetype/include");
cmd_append(&cmd, "-Wall", "-Wno-unused-function", "-Wno-unused-parameter"); cmd_append(&cmd, "-w");
if (debug) { if (debug) {
cmd_append(&cmd, "-g", "-O0"); cmd_append(&cmd, "-g", "-O0");
} else { } else {
@@ -195,9 +195,10 @@ int main(int argc, char **argv) {
cmd_append(&cmd, "-std=c11", "-x", "objective-c"); cmd_append(&cmd, "-std=c11", "-x", "objective-c");
cmd_append(&cmd, "-Wall", "-Wextra", "-Wno-missing-field-initializers"); cmd_append(&cmd, "-Wall", "-Wextra", "-Wno-missing-field-initializers");
cmd_append(&cmd, "-Wno-deprecated-declarations"); cmd_append(&cmd, "-Wno-deprecated-declarations");
cmd_append(&cmd, "-Isrc", "-Ivendor/clay"); cmd_append(&cmd, "-Isrc");
cmd_append(&cmd, "-Ivendor/nanosvg"); cmd_append(&cmd, "-isystem", "vendor/clay");
cmd_append(&cmd, "-Ivendor/freetype/include"); cmd_append(&cmd, "-isystem", "vendor/nanosvg");
cmd_append(&cmd, "-isystem", "vendor/freetype/include");
if (debug) { if (debug) {
cmd_append(&cmd, "-g", "-O0", "-D_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, "/std:c11");
cmd_append(&cmd, "/DFT2_BUILD_LIBRARY"); cmd_append(&cmd, "/DFT2_BUILD_LIBRARY");
cmd_append(&cmd, "/Ivendor/freetype/include"); cmd_append(&cmd, "/Ivendor/freetype/include");
cmd_append(&cmd, "/W3"); cmd_append(&cmd, "/W0");
if (debug) { if (debug) {
cmd_append(&cmd, "/MTd", "/Zi"); cmd_append(&cmd, "/MTd", "/Zi");
} else { } else {
@@ -442,7 +443,6 @@ int main(int argc, char **argv) {
if (!compile_and_embed_shaders(build_dir)) return 1; if (!compile_and_embed_shaders(build_dir)) return 1;
const char *vk_sdk = get_vulkan_sdk_path(); 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); 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) // 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 cmd = {0};
cmd_append(&cmd, "cl.exe"); cmd_append(&cmd, "cl.exe");
cmd_append(&cmd, "/nologo", "/std:c11", "/TC", "/W3"); cmd_append(&cmd, "/nologo", "/std:c11", "/TC", "/W3");
cmd_append(&cmd, "/Isrc", "/Ivendor/clay"); cmd_append(&cmd, "/Isrc");
cmd_append(&cmd, "/Ivendor/nanosvg"); cmd_append(&cmd, "/external:W0");
cmd_append(&cmd, "/Ivendor/freetype/include"); cmd_append(&cmd, "/external:Ivendor/clay");
cmd_append(&cmd, vk_include); 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) { if (debug) {
cmd_append(&cmd, "/MTd", "/Zi", "/D_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, "/link");
cmd_append(&cmd, "/MACHINE:X64"); 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, temp_sprintf("/PDB:%s/autosample.pdb", build_dir));
cmd_append(&cmd, "/DEBUG"); cmd_append(&cmd, "/DEBUG");
cmd_append(&cmd, debug ? "vendor/freetype/freetype_d.lib" : "vendor/freetype/freetype.lib"); cmd_append(&cmd, debug ? "vendor/freetype/freetype_d.lib" : "vendor/freetype/freetype.lib");