Begin move to SDL

This commit is contained in:
Krzosa Karol
2024-07-26 11:33:12 +02:00
parent a74409c3ec
commit ee6df45e2d
8 changed files with 344 additions and 10 deletions

View File

@@ -27,12 +27,34 @@ struct Library {
Array<S8_String> objects;
Array<S8_String> include_paths;
Array<S8_String> defines;
Array<S8_String> link;
};
Library PrepareSDL() {
Library l = {};
l.include_paths.add("../src/external/SDL/include");
l.objects.add("../src/external/SDL/VisualC/static_x64/Release/SDL3.lib");
l.link.add("/SUBSYSTEM:WINDOWS");
l.link.add("opengl32.lib");
l.link.add("imm32.lib");
l.link.add("gdi32.lib");
l.link.add("winmm.lib");
l.link.add("shell32.lib");
l.link.add("user32.lib");
l.link.add("advapi32.lib");
l.link.add("Setupapi.lib");
l.link.add("ole32.lib");
l.link.add("oleaut32.lib");
l.link.add("Version.lib");
return l;
}
Library PrepareSDLDynamic() {
Library l = {};
l.include_paths.add("../src/external/SDL/include");
l.objects.add("../src/external/SDL/VisualC/x64/Release/SDL3.lib");
l.link.add("/SUBSYSTEM:WINDOWS");
OS_CopyFile("../src/external/SDL/VisualC/x64/Release/SDL3.dll", "./SDL3.dll", false);
return l;
}
@@ -77,7 +99,7 @@ Library PrepareLua() {
Library PrepareGlad() {
Library l = {};
l.sources.add("../src/external/glad/glad.c");
l.include_paths.add("../src/external/glad");
l.include_paths.add("../src/external/glad/");
l.objects.add("glad.obj");
if (!OS_FileExists(l.objects[0])) {
Array<S8_String> cmd = {};
@@ -101,6 +123,7 @@ int CompileTextEditor() {
cmd.add("cl.exe");
cmd.add("-Fe:te.exe");
cmd.add("-Fd:te.pdb");
cmd.add("-I ../src");
AddCommonFlags(&cmd);
For2(lib, libs) For(lib.defines) cmd.add(it);
@@ -122,10 +145,44 @@ int CompileTextEditor() {
return result;
}
int CompileNewPlatform() {
int result = 0;
Array<Library> libs = {};
libs.add(PrepareGlad());
libs.add(PrepareLua());
libs.add(PrepareSDLDynamic());
Array<S8_String> cmd = {};
cmd.add("cl.exe");
cmd.add("-Fe:te.exe");
cmd.add("-Fd:te.pdb");
cmd.add("-I ../src");
AddCommonFlags(&cmd);
For2(lib, libs) For(lib.defines) cmd.add(it);
cmd.add("../src/new_platform/new_platform.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");
For2(lib, libs) For(lib.link) cmd.add(it);
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, "te.cache");
int result = CompileTextEditor();
// int result = CompileTextEditor();
int result = CompileNewPlatform();
if (result != 0) {
OS_DeleteFile("te.cache");