Commit stale code before publishing
This commit is contained in:
111
build_file.cpp
111
build_file.cpp
@@ -1,5 +1,27 @@
|
||||
#include "src/build_tool/library.cpp"
|
||||
|
||||
enum {
|
||||
PROFILE_DEBUG,
|
||||
PROFILE_RELEASE,
|
||||
};
|
||||
int Profile = PROFILE_DEBUG;
|
||||
|
||||
void AddCommonFlags(Array<S8_String> *cmd) {
|
||||
cmd->add("/MP /Zi /FC /nologo");
|
||||
cmd->add("/WX /W3 /wd4200 /diagnostics:column");
|
||||
cmd->add("/Oi");
|
||||
cmd->add("-D_CRT_SECURE_NO_WARNINGS");
|
||||
if (Profile == PROFILE_DEBUG) {
|
||||
cmd->add("-DDEBUG_BUILD=1");
|
||||
cmd->add("-DRELEASE_BUILD=0");
|
||||
// cmd->add("-D_DEBUG /MDd");
|
||||
} else {
|
||||
cmd->add("-DDEBUG_BUILD=0");
|
||||
cmd->add("-DRELEASE_BUILD=1");
|
||||
cmd->add("/O2 /MT /DNDEBUG /GL");
|
||||
}
|
||||
}
|
||||
|
||||
struct Library {
|
||||
Array<S8_String> sources;
|
||||
Array<S8_String> objects;
|
||||
@@ -49,7 +71,8 @@ Library PreparePdfio(S8_String zlib_include_path) {
|
||||
|
||||
if (!OS_FileExists(l.objects[0])) {
|
||||
Array<S8_String> cmd = {};
|
||||
cmd.add("cl.exe -c -nologo -Zi -MP -FC ");
|
||||
cmd.add("cl.exe -c ");
|
||||
AddCommonFlags(&cmd);
|
||||
For(l.include_paths) cmd.add(S8_Format(Perm, "-I %.*s ", S8_Expand(it)));
|
||||
cmd.add(S8_Format(Perm, "-I %.*s ", S8_Expand(zlib_include_path)));
|
||||
cmd += l.sources;
|
||||
@@ -99,7 +122,8 @@ Library PrepareZLib() {
|
||||
|
||||
if (!OS_FileExists(l.objects[0])) {
|
||||
Array<S8_String> cmd = {};
|
||||
cmd.add("cl.exe -c -nologo -Zi -MP -FC -O2 ");
|
||||
cmd.add("cl.exe -c");
|
||||
AddCommonFlags(&cmd);
|
||||
For(l.include_paths) cmd.add(S8_Format(Perm, "-I %.*s ", S8_Expand(it)));
|
||||
cmd += l.sources;
|
||||
Run(cmd);
|
||||
@@ -130,7 +154,8 @@ Library PrepareIMGUI(S8_String sdl_inc_path) {
|
||||
|
||||
if (!OS_FileExists(l.objects[0])) {
|
||||
Array<S8_String> cmd = {};
|
||||
cmd.add("cl.exe -c -nologo -Zi -MP -FC -O2 ");
|
||||
cmd.add("cl.exe -c");
|
||||
AddCommonFlags(&cmd);
|
||||
cmd.add(Fmt("-I %.*s", S8_Expand(sdl_inc_path)));
|
||||
For(l.include_paths) cmd.add(S8_Format(Perm, "-I %.*s ", S8_Expand(it)));
|
||||
cmd += l.sources;
|
||||
@@ -140,6 +165,16 @@ Library PrepareIMGUI(S8_String sdl_inc_path) {
|
||||
return l;
|
||||
}
|
||||
|
||||
void ListDirRecursive(Array<S8_String> *arr, S8_String dir) {
|
||||
for (OS_FileIter it = OS_IterateFiles(Perm, dir); OS_IsValid(it); OS_Advance(&it)) {
|
||||
if (it.is_directory) {
|
||||
ListDirRecursive(arr, it.absolute_path);
|
||||
} else {
|
||||
arr->add(S8_Copy(Perm, it.absolute_path));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Library PrepareSDL() {
|
||||
Library l = {};
|
||||
l.include_paths.add("../src/external/SDL/include");
|
||||
@@ -147,6 +182,13 @@ Library PrepareSDL() {
|
||||
return l;
|
||||
}
|
||||
|
||||
Library PrepareRaylib() {
|
||||
Library l = {};
|
||||
l.include_paths.add("../src/external/raylib/include");
|
||||
l.objects.add("../src/external/raylib/lib/raylib.lib");
|
||||
return l;
|
||||
}
|
||||
|
||||
Library PrepareGlad() {
|
||||
Library l = {};
|
||||
l.sources.add("../src/external/glad/glad.c");
|
||||
@@ -154,7 +196,8 @@ Library PrepareGlad() {
|
||||
l.objects.add("glad.obj");
|
||||
if (!OS_FileExists(l.objects[0])) {
|
||||
Array<S8_String> cmd = {};
|
||||
cmd.add("cl.exe -c -nologo -Zi -MP -FC -O2 ");
|
||||
cmd.add("cl.exe -c");
|
||||
AddCommonFlags(&cmd);
|
||||
For(l.include_paths) cmd.add(S8_Format(Perm, "-I %.*s ", S8_Expand(it)));
|
||||
cmd += l.sources;
|
||||
Run(cmd);
|
||||
@@ -162,26 +205,7 @@ Library PrepareGlad() {
|
||||
return l;
|
||||
}
|
||||
|
||||
void AddCommonFlags(Array<S8_String> *cmd, bool debug = true) {
|
||||
cmd->add("/MP /Zi /FC /nologo");
|
||||
cmd->add("/WX /W3 /wd4200 /diagnostics:column");
|
||||
cmd->add("/Oi");
|
||||
cmd->add("-D_CRT_SECURE_NO_WARNINGS");
|
||||
if (debug) {
|
||||
cmd->add("-DDEBUG_BUILD=1");
|
||||
cmd->add("-DRELEASE_BUILD=0");
|
||||
// cmd->add("-D_DEBUG /MDd");
|
||||
} else {
|
||||
cmd->add("-DDEBUG_BUILD=0");
|
||||
cmd->add("-DRELEASE_BUILD=1");
|
||||
cmd->add("/O2 /MT /DNDEBUG /GL");
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
MA_InitScratch();
|
||||
SRC_InitCache(Perm, "pdf_browser.cache");
|
||||
|
||||
int CompileTranscriptBrowser() {
|
||||
int result = 0;
|
||||
|
||||
Array<Library> libs = {};
|
||||
@@ -214,6 +238,45 @@ int main() {
|
||||
// For(cmd) IO_Printf("%.*s\n", S8_Expand(it));
|
||||
|
||||
result += Run(cmd);
|
||||
return result;
|
||||
}
|
||||
|
||||
int CompileTextEditor() {
|
||||
int result = 0;
|
||||
|
||||
Array<Library> libs = {};
|
||||
libs.add(PrepareRaylib());
|
||||
|
||||
Array<S8_String> cmd = {};
|
||||
cmd.add("cl.exe");
|
||||
cmd.add("-Fe:te.exe");
|
||||
cmd.add("-Fd:te.pdb");
|
||||
AddCommonFlags(&cmd);
|
||||
For2(lib, libs) For(lib.defines) cmd.add(it);
|
||||
|
||||
cmd.add("../src/text_editor/text_editor.cpp");
|
||||
cmd.add("../src/basic/win32.cpp");
|
||||
|
||||
For2(lib, libs) For(lib.include_paths) cmd.add(Fmt("-I %.*s", S8_Expand(it)));
|
||||
|
||||
cmd.add("/link");
|
||||
cmd.add("/incremental:no");
|
||||
// cmd.add("/SUBSYSTEM:WINDOWS");
|
||||
cmd.add("opengl32.lib gdi32.lib winmm.lib shell32.lib user32.lib msvcrt.lib /NODEFAULTLIB:LIBCMT /FORCE");
|
||||
For(libs) For2(o, it.objects) cmd.add(o);
|
||||
|
||||
OS_DeleteFile("te.pdb");
|
||||
// For(cmd) IO_Printf("%.*s\n", S8_Expand(it));
|
||||
|
||||
result += Run(cmd);
|
||||
return result;
|
||||
}
|
||||
|
||||
int main() {
|
||||
MA_InitScratch();
|
||||
SRC_InitCache(Perm, "pdf_browser.cache");
|
||||
int result = CompileTranscriptBrowser();
|
||||
// int result = CompileTextEditor();
|
||||
|
||||
if (result != 0) {
|
||||
OS_DeleteFile("pdf_browser.cache");
|
||||
|
||||
Reference in New Issue
Block a user