Success running on linux
This commit is contained in:
106
build_file.cpp
106
build_file.cpp
@@ -5,32 +5,44 @@ enum {
|
||||
PROFILE_RELEASE,
|
||||
};
|
||||
int Profile = PROFILE_DEBUG;
|
||||
#if OS_WINDOWS
|
||||
S8_String Compiler = "cl.exe";
|
||||
#else
|
||||
S8_String Compiler = "clang";
|
||||
#endif
|
||||
|
||||
void AddCommonFlags(Array<S8_String> *cmd) {
|
||||
if (Compiler == "cl.exe") {
|
||||
cmd->add("/MP");
|
||||
}
|
||||
cmd->add("/Zi /FC /nologo");
|
||||
cmd->add("/WX /W3 /wd4200 /diagnostics:column");
|
||||
if (Compiler == "clang-cl.exe") {
|
||||
cmd->add("-fdiagnostics-absolute-paths");
|
||||
cmd->add("-Wno-missing-braces");
|
||||
cmd->add("-Wno-writable-strings");
|
||||
cmd->add("-Wno-unused-function");
|
||||
}
|
||||
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("-fsanitize=address");
|
||||
// cmd->add("-DUSE_ADDRESS_SANITIZER");
|
||||
// cmd->add("/MDd");
|
||||
if (Compiler == "clang") {
|
||||
cmd->add("-g");
|
||||
cmd->add("-Wno-writable-strings");
|
||||
cmd->add("-fdiagnostics-absolute-paths");
|
||||
cmd->add("-nostdlib++");
|
||||
cmd->add("-fno-exceptions");
|
||||
} else {
|
||||
cmd->add("-DDEBUG_BUILD=0");
|
||||
cmd->add("-DRELEASE_BUILD=1");
|
||||
cmd->add("/O2 /MT /DNDEBUG /GL");
|
||||
if (Compiler == "cl.exe") {
|
||||
cmd->add("/MP");
|
||||
}
|
||||
cmd->add("/Zi /FC /nologo");
|
||||
cmd->add("/WX /W3 /wd4200 /diagnostics:column");
|
||||
if (Compiler == "clang-cl.exe") {
|
||||
cmd->add("-fdiagnostics-absolute-paths");
|
||||
cmd->add("-Wno-missing-braces");
|
||||
cmd->add("-Wno-writable-strings");
|
||||
cmd->add("-Wno-unused-function");
|
||||
}
|
||||
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("-fsanitize=address");
|
||||
// cmd->add("-DUSE_ADDRESS_SANITIZER");
|
||||
// cmd->add("/MDd");
|
||||
} else {
|
||||
cmd->add("-DDEBUG_BUILD=0");
|
||||
cmd->add("-DRELEASE_BUILD=1");
|
||||
cmd->add("/O2 /MT /DNDEBUG /GL");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,18 +82,6 @@ Library PrepareSDLDynamic() {
|
||||
return l;
|
||||
}
|
||||
|
||||
Library PrepareRaylib() {
|
||||
Library l = {};
|
||||
l.include_paths.add("../src/external/raylib/include");
|
||||
if (0) {
|
||||
l.objects.add("../src/external/raylib/lib/raylib.lib");
|
||||
} else {
|
||||
l.objects.add("../src/external/raylib/lib/raylibdll.lib");
|
||||
OS_CopyFile("../src/external/raylib/lib/raylib.dll", "./raylib.dll", false);
|
||||
}
|
||||
return l;
|
||||
}
|
||||
|
||||
Library PrepareLua() {
|
||||
Library l = {};
|
||||
l.include_paths.add("../src/external/lua/src");
|
||||
@@ -93,7 +93,7 @@ Library PrepareLua() {
|
||||
if (S8_EndsWith(it.filename, ".c", true)) {
|
||||
l.sources.add(it.absolute_path);
|
||||
S8_String file = S8_ChopLastPeriod(it.filename);
|
||||
l.objects.add(Fmt("%.*s.obj", S8_Expand(file)));
|
||||
l.objects.add(Fmt("%.*s" IF_WINDOWS_ELSE(".obj", ".o"), S8_Expand(file)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -113,7 +113,11 @@ Library PrepareGlad() {
|
||||
Library l = {};
|
||||
l.sources.add("../src/external/glad/glad.c");
|
||||
l.include_paths.add("../src/external/glad/");
|
||||
#if OS_WINDOWS
|
||||
l.objects.add("glad.obj");
|
||||
#else
|
||||
l.objects.add("glad.o");
|
||||
#endif
|
||||
if (!OS_FileExists(l.objects[0])) {
|
||||
Array<S8_String> cmd = {};
|
||||
cmd.add(Compiler);
|
||||
@@ -126,6 +130,33 @@ Library PrepareGlad() {
|
||||
return l;
|
||||
}
|
||||
|
||||
int CompileTextEditorLinux() {
|
||||
Array<S8_String> cmd = {};
|
||||
|
||||
Array<Library> libs = {};
|
||||
libs.add(PrepareLua());
|
||||
libs.add(PrepareGlad());
|
||||
|
||||
cmd.add("clang");
|
||||
cmd.add("../src/text_editor/text_editor.cpp");
|
||||
cmd.add("../src/basic/unix.cpp");
|
||||
cmd.add("-o te_linux.exe");
|
||||
cmd.add("-I../src");
|
||||
// cmd.add("-Wall");
|
||||
AddCommonFlags(&cmd);
|
||||
For2(lib, libs) For(lib.include_paths) cmd.add(Fmt("-I %.*s", S8_Expand(it)));
|
||||
For2(lib, libs) For(lib.defines) cmd.add(it);
|
||||
// cmd.add("-L../src/external/SDL/build/");
|
||||
cmd.add("-I../src/external/SDL/build/include");
|
||||
cmd.add("-lm");
|
||||
cmd.add("../src/external/SDL/build/libSDL3.a");
|
||||
For2(lib, libs) For(lib.link) cmd.add(it);
|
||||
For(libs) For2(o, it.objects) cmd.add(o);
|
||||
|
||||
int result = Run(cmd);
|
||||
return result;
|
||||
}
|
||||
|
||||
int CompileTextEditor() {
|
||||
int result = 0;
|
||||
|
||||
@@ -354,7 +385,12 @@ int main() {
|
||||
|
||||
GenerateLuaApi();
|
||||
GenerateConfig();
|
||||
|
||||
#if OS_WINDOWS
|
||||
int result = CompileTextEditor();
|
||||
#else
|
||||
int result = CompileTextEditorLinux();
|
||||
#endif
|
||||
// int result = CompileNewPlatform();
|
||||
|
||||
if (result != 0) {
|
||||
|
||||
Reference in New Issue
Block a user