97 lines
3.4 KiB
C
97 lines
3.4 KiB
C
// don't ever include stuff that build_file will generate code for!
|
|
#define DONT_INCLUDE_GENERATED_MATH
|
|
#include "src/core/core_inc.h"
|
|
#include "src/core/core_inc.c"
|
|
|
|
#define BUILD_TOOL_LIB
|
|
#define S8_String s8_t
|
|
#include "src/meta/build_tool.c"
|
|
#include "src/meta/meta_format.c"
|
|
#include "src/meta/meta_serialize_format.c"
|
|
#include "src/meta/meta_table_format.c"
|
|
#include "src/meta/meta_cfiles.c"
|
|
|
|
#include "src/app/app.meta.c"
|
|
#include "src/ui/ui.meta.c"
|
|
#include "src/render/render.meta.c"
|
|
#include "src/wasm_app/wasm_app.meta.c"
|
|
|
|
int main(int argc, char **argv) {
|
|
int ok = 0;
|
|
ma_arena_t *arena = ma_create(ma_default_reserve_size);
|
|
|
|
SRC_SearchPaths.include_path = (char*[]){OS_GetAbsolutePath(&Perm, s8_lit("../src")).str};
|
|
SRC_SearchPaths.include_path_count = 1;
|
|
cache_init(&Perm, s8_lit("cache_build_file"));
|
|
|
|
b32 generate_math = true;
|
|
if (generate_math && cache_code_modified(s8_lit("../src/core/core_math_gen.py"), s8_null)) {
|
|
os_set_working_dir("../src/core");
|
|
os_systemf("py core_math_gen.py");
|
|
os_set_working_dir("../../build");
|
|
}
|
|
mt_ui(arena);
|
|
mt_app(arena);
|
|
mt_wasm_app(arena);
|
|
mt_render(arena);
|
|
|
|
b32 run_server = false;
|
|
b32 core_test_target = true;
|
|
b32 win32_target = true;
|
|
b32 wasm_target = true;
|
|
|
|
if (run_server) {
|
|
os_systemf("start /D ..\\package ..\\package\\run_server.bat");
|
|
}
|
|
|
|
if (win32_target && cache_code_modified(s8_lit("../src/wasm_app/main.c"), s8_lit("app_win32.exe"))) {
|
|
os_delete_file(s8_lit("app_win32.pdb"));
|
|
ok = os_systemf(
|
|
"cl ../src/wasm_app/main.c -Fe:app_win32.exe -Fd:app_win32.pdb"
|
|
" -I ../src"
|
|
" /Zi /FC /nologo /Oi"
|
|
" /WX /W3 /wd4200 /diagnostics:column"
|
|
" /link /incremental:no"
|
|
);
|
|
if (ok != 0) return ok;
|
|
}
|
|
|
|
if (core_test_target && cache_code_modified(s8_lit("../src/core/core_test_entry.c"), s8_lit("core_test.exe"))) {
|
|
os_delete_file(s8_lit("core_test.pdb"));
|
|
ok = os_systemf(
|
|
"cl ../src/core/core_test_entry.c -Fe:core_test.exe -Fd:core_test.pdb"
|
|
" -I ../src"
|
|
" /Zi /FC /nologo /Oi"
|
|
" /WX /W3 /wd4200 /diagnostics:column"
|
|
" /link /incremental:no"
|
|
);
|
|
if (ok != 0) return ok;
|
|
|
|
ok = os_systemf("core_test.exe");
|
|
if (ok != 0) return ok;
|
|
}
|
|
|
|
|
|
if (wasm_target) {
|
|
b32 html_code_modified = cache_code_modified(s8_lit("../src/app/app_wasm.html"), s8_lit("../package/index.html"));
|
|
b32 wasm_code_modified = cache_code_modified(s8_lit("../src/wasm_app/main.c"), s8_lit("main.wasm"));
|
|
if (html_code_modified) {
|
|
os_copy("../src/app/app_wasm.html", "../package/index.html", os_copy_overwrite);
|
|
}
|
|
if (wasm_code_modified) {
|
|
ok = os_systemf(
|
|
"clang.exe ../src/wasm_app/main.c -o main.wasm"
|
|
" -Oz -g -I../src"
|
|
" -Wall -Wno-missing-braces -Wno-single-bit-bitfield-constant-conversion -Wno-unsequenced"
|
|
" -fdiagnostics-absolute-paths -fdiagnostics-format=msvc"
|
|
" --target=wasm32 -nostdlib -mbulk-memory -msimd128"
|
|
" -Wl,-export-dynamic,--allow-undefined,--import-memory,--no-entry,--initial-memory=131072000,--max-memory=4294967296"
|
|
);
|
|
os_copy("main.wasm", "../package/main.wasm", os_copy_overwrite);
|
|
if (ok != 0) return ok;
|
|
}
|
|
}
|
|
|
|
cache_save();
|
|
return ok;
|
|
} |