Rewrite to IMGUI
This commit is contained in:
125
build_file.cpp
125
build_file.cpp
@@ -3,10 +3,11 @@
|
||||
struct Library {
|
||||
Array<S8_String> sources;
|
||||
Array<S8_String> objects;
|
||||
S8_String include_path;
|
||||
Array<S8_String> include_paths;
|
||||
Array<S8_String> defines;
|
||||
};
|
||||
|
||||
Library BuildZLib() {
|
||||
Library PrepareZLib() {
|
||||
Library l = {};
|
||||
|
||||
l.sources.add("../src/external/zlib-1.3.1/adler32.c");
|
||||
@@ -25,7 +26,7 @@ Library BuildZLib() {
|
||||
l.sources.add("../src/external/zlib-1.3.1/uncompr.c");
|
||||
l.sources.add("../src/external/zlib-1.3.1/zutil.c");
|
||||
|
||||
l.include_path = "../src/external/zlib-1.3.1/";
|
||||
l.include_paths.add("../src/external/zlib-1.3.1/");
|
||||
l.objects.add("adler32.obj");
|
||||
l.objects.add("compress.obj");
|
||||
l.objects.add("crc32.obj");
|
||||
@@ -45,7 +46,7 @@ Library BuildZLib() {
|
||||
if (!OS_FileExists(l.objects[0])) {
|
||||
Array<S8_String> cmd = {};
|
||||
cmd.add("cl.exe -c -nologo -Zi -MP -FC ");
|
||||
cmd.add(S8_Format(Perm, "-I %.*s ", S8_Expand(l.include_path)));
|
||||
For(l.include_paths) cmd.add(S8_Format(Perm, "-I %.*s ", S8_Expand(it)));
|
||||
cmd += l.sources;
|
||||
Run(cmd);
|
||||
}
|
||||
@@ -53,6 +54,63 @@ Library BuildZLib() {
|
||||
return l;
|
||||
}
|
||||
|
||||
Library PrepareIMGUI(S8_String sdl_inc_path) {
|
||||
Library l = {};
|
||||
l.include_paths.add("../src/external/imgui/");
|
||||
l.include_paths.add("../src/external/imgui/backends");
|
||||
l.sources.add("../src/external/imgui/backends/imgui_impl_sdl2.cpp");
|
||||
l.sources.add("../src/external/imgui/backends/imgui_impl_opengl3.cpp");
|
||||
l.sources.add("../src/external/imgui/imgui.cpp");
|
||||
l.sources.add("../src/external/imgui/imgui_demo.cpp");
|
||||
l.sources.add("../src/external/imgui/imgui_draw.cpp");
|
||||
l.sources.add("../src/external/imgui/imgui_tables.cpp");
|
||||
l.sources.add("../src/external/imgui/imgui_widgets.cpp");
|
||||
|
||||
l.objects.add("imgui_impl_sdl2.obj");
|
||||
l.objects.add("imgui_impl_opengl3.obj");
|
||||
l.objects.add("imgui.obj");
|
||||
l.objects.add("imgui_demo.obj");
|
||||
l.objects.add("imgui_draw.obj");
|
||||
l.objects.add("imgui_tables.obj");
|
||||
l.objects.add("imgui_widgets.obj");
|
||||
|
||||
if (!OS_FileExists(l.objects[0])) {
|
||||
Array<S8_String> cmd = {};
|
||||
cmd.add("cl.exe -c -nologo -Zi -MP -FC ");
|
||||
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;
|
||||
Run(cmd);
|
||||
}
|
||||
|
||||
return l;
|
||||
}
|
||||
|
||||
Library PrepareSDL() {
|
||||
Library l = {};
|
||||
l.include_paths.add("../src/external/SDL2/include");
|
||||
l.objects.add("../src/external/SDL2/lib/x64/SDL2main.lib");
|
||||
l.objects.add("../src/external/SDL2/lib/x64/SDL2.lib");
|
||||
OS_Result os_result = OS_CopyFile("../src/external/SDL2/lib/x64/SDL2.dll", "SDL2.dll", true);
|
||||
if (os_result != OS_SUCCESS) IO_Printf("failed to copy SDL2.dll\n");
|
||||
return l;
|
||||
}
|
||||
|
||||
Library PrepareGlad() {
|
||||
Library l = {};
|
||||
l.sources.add("../src/external/glad/glad.c");
|
||||
l.include_paths.add("../src/external/glad");
|
||||
l.objects.add("glad.obj");
|
||||
if (!OS_FileExists(l.objects[0])) {
|
||||
Array<S8_String> cmd = {};
|
||||
cmd.add("cl.exe -c -nologo -Zi -MP -FC ");
|
||||
For(l.include_paths) cmd.add(S8_Format(Perm, "-I %.*s ", S8_Expand(it)));
|
||||
cmd += l.sources;
|
||||
Run(cmd);
|
||||
}
|
||||
return l;
|
||||
}
|
||||
|
||||
void AddCommonFlags(Array<S8_String> *cmd, bool debug = true) {
|
||||
cmd->add("/MP /Zi /FC /nologo");
|
||||
cmd->add("/WX /W3 /wd4200 /diagnostics:column");
|
||||
@@ -75,49 +133,34 @@ int main() {
|
||||
|
||||
int result = 0;
|
||||
|
||||
if (0) {
|
||||
Array<S8_String> cmd = {};
|
||||
cmd.add("cl.exe");
|
||||
cmd.add("-Fe:transcript_browser.exe");
|
||||
cmd.add("-Fd:transcript_browser.pdb");
|
||||
cmd.add("-std:c++20"); // semaphore
|
||||
AddCommonFlags(&cmd);
|
||||
Array<Library> libs = {};
|
||||
libs.add(PrepareSDL());
|
||||
libs.add(PrepareGlad());
|
||||
libs.add(PrepareIMGUI(libs[0].include_paths[0]));
|
||||
|
||||
cmd.add("-I ../src/external/raylib/include");
|
||||
cmd.add("../src/transcript_browser/main.cpp");
|
||||
cmd.add("../src/basic/win32.cpp");
|
||||
Array<S8_String> cmd = {};
|
||||
cmd.add("cl.exe");
|
||||
cmd.add("-Fe:transcript_browser.exe");
|
||||
cmd.add("-Fd:transcript_browser.pdb");
|
||||
cmd.add("-std:c++20"); // semaphore
|
||||
AddCommonFlags(&cmd);
|
||||
For2(lib, libs) For(lib.defines) cmd.add(it);
|
||||
|
||||
cmd.add("/link");
|
||||
cmd.add("../src/external/raylib/raylib.lib");
|
||||
cmd.add("opengl32.lib kernel32.lib user32.lib gdi32.lib winmm.lib msvcrt.lib shell32.lib");
|
||||
cmd.add("/NODEFAULTLIB:LIBCMT");
|
||||
cmd.add("/incremental:no");
|
||||
cmd.add("../src/transcript_browser/main.cpp");
|
||||
cmd.add("../src/basic/win32.cpp");
|
||||
|
||||
OS_DeleteFile("transcript_browser.pdb");
|
||||
result += Run(cmd);
|
||||
}
|
||||
For2(lib, libs) For(lib.include_paths) cmd.add(Fmt("-I %.*s", S8_Expand(it)));
|
||||
|
||||
if (1) {
|
||||
Array<S8_String> cmd = {};
|
||||
cmd.add("cl.exe");
|
||||
cmd.add("-Fe:text_editor.exe");
|
||||
cmd.add("-Fd:text_editor.pdb");
|
||||
cmd.add("-std:c++20"); // semaphore
|
||||
AddCommonFlags(&cmd);
|
||||
cmd.add("/link");
|
||||
cmd.add("/incremental:no");
|
||||
cmd.add("/SUBSYSTEM:WINDOWS");
|
||||
cmd.add("opengl32.lib");
|
||||
For(libs) For2(o, it.objects) cmd.add(o);
|
||||
|
||||
cmd.add("-I ../src/external/raylib/include");
|
||||
cmd.add("../src/text_editor/main.cpp");
|
||||
cmd.add("../src/basic/win32.cpp");
|
||||
OS_DeleteFile("transcript_browser.pdb");
|
||||
// For(cmd) IO_Printf("%.*s\n", S8_Expand(it));
|
||||
|
||||
cmd.add("/link");
|
||||
cmd.add("../src/external/raylib/raylib.lib");
|
||||
cmd.add("opengl32.lib kernel32.lib user32.lib gdi32.lib winmm.lib shell32.lib");
|
||||
cmd.add("/NODEFAULTLIB:LIBCMT");
|
||||
cmd.add("/incremental:no");
|
||||
|
||||
OS_DeleteFile("text_editor.pdb");
|
||||
result += Run(cmd);
|
||||
}
|
||||
result += Run(cmd);
|
||||
|
||||
if (result != 0) {
|
||||
OS_DeleteFile("pdf_browser.cache");
|
||||
|
||||
Reference in New Issue
Block a user