diff --git a/engine/premake5.lua b/engine/premake5.lua index 43a4155..5e0e34e 100644 --- a/engine/premake5.lua +++ b/engine/premake5.lua @@ -1,3 +1,52 @@ +gf_backends = { + opengl = { + name = "OpenGL", + default = "glfw", + unix = {"GL", "GLU"}, + windows = {"opengl32", "glu32"}, + backends = { + glx = {"GLX", {"X11"}}, + wgl = {"WGL", {"gdi32"}}, + glfw = {"GLFW", {"glfw"}} + } + } +} + +gf_l = {} +for k,v in pairs(gf_backends) do + allowed = {} + for k2,v2 in pairs(v["backends"]) do + table.insert(allowed, {k2, v2[1]}) + end + newoption({ + trigger = k, + value = "API", + description = "Choose a backend for " .. v["name"], + allowed = allowed, + default = v["default"] + }) + table.insert(gf_l, {k, v["name"]}) +end + +newoption({ + trigger = "backend", + value = "API", + description = "Choose a backend for rendering", + allowed = gf_l, + default = "opengl" +}) + +newoption({ + trigger = "engine", + value = "type", + description = "Choose an engine type", + allowed = { + {"static", "Static library"}, + {"dynamic", "Dynamic library"} + }, + default = "static" +}) + function gf_default_stuffs() filter({}) characterset("MBCS") @@ -39,7 +88,7 @@ function gf_default_stuffs() "/usr/pkg/lib" }) - for k,v in pairs(backends) do + for k,v in pairs(gf_backends) do for k2,v2 in pairs(v["backends"]) do filter({ "options:backend=" .. k, @@ -88,7 +137,7 @@ function gf_link_stuffs(cond) links({ "stdc++" }) - for k,v in pairs(backends) do + for k,v in pairs(gf_backends) do for k2,v2 in pairs(v["backends"]) do filter({ "options:backend=" .. k, @@ -280,7 +329,7 @@ project("GoldFish") -- End ODE gf_default_stuffs() - for k,v in pairs(backends) do + for k,v in pairs(gf_backends) do for k2,v2 in pairs(v["backends"]) do filter({ "options:backend=" .. k, diff --git a/premake5.lua b/premake5.lua index 9fec2a8..58fbb14 100644 --- a/premake5.lua +++ b/premake5.lua @@ -1,17 +1,3 @@ -backends = { - opengl = { - name = "OpenGL", - default = "glfw", - unix = {"GL", "GLU"}, - windows = {"opengl32", "glu32"}, - backends = { - glx = {"GLX", {"X11"}}, - wgl = {"WGL", {"gdi32"}}, - glfw = {"GLFW", {"glfw"}} - } - } -} - workspace("NishBox") configurations({ "Debug", @@ -34,41 +20,6 @@ filter("platforms:Win64") architecture("x86_64") gccprefix("x86_64-w64-mingw32-") -l = {} -for k,v in pairs(backends) do - allowed = {} - for k2,v2 in pairs(v["backends"]) do - table.insert(allowed, {k2, v2[1]}) - end - newoption({ - trigger = k, - value = "API", - description = "Choose a backend for " .. v["name"], - allowed = allowed, - default = v["default"] - }) - table.insert(l, {k, v["name"]}) -end - -newoption({ - trigger = "backend", - value = "API", - description = "Choose a backend for rendering", - allowed = l, - default = "opengl" -}) - -newoption({ - trigger = "engine", - value = "type", - description = "Choose an engine type", - allowed = { - {"static", "Static library"}, - {"dynamic", "Dynamic library"} - }, - default = "static" -}) - newaction({ trigger = "clean", description = "Clean the files", @@ -76,6 +27,9 @@ newaction({ os.rmdir("bin") os.rmdir("obj") os.rmdir("lib") + os.rmdir("engine/bin") + os.rmdir("engine/obj") + os.rmdir("engine/lib") end }) @@ -101,16 +55,54 @@ end include "engine" -project("NishBox") +project("NishBoxServer") kind("ConsoleApp") language("C") targetdir("bin/%{cfg.buildcfg}/%{cfg.platform}") - targetname("nishbox") + targetname("nishbox_server") includedirs({ "engine/include" }) files({ - "src/*.c" + "src/server/*.c" + }) + links({ + "GoldFish" + }) + -- Call this if you are gonna use my engine... + gf_link_stuffs("options:engine=static") + filter("system:windows") + files({ + "src/*.rc" + }) + filter("configurations:Debug") + defines({ + "DEBUG" + }) + symbols("On") + filter("configurations:Release") + defines({ + "NDEBUG" + }) + optimize("On") + msvc_filters() + filter({ + "options:cc=msc", + "options:engine=static" + }) + linkoptions({"/MANIFEST"}) + filter({}) + +project("NishBox") + kind("ConsoleApp") + language("C") + targetdir("bin/%{cfg.buildcfg}/%{cfg.platform}") + targetname("nishbox") + includedirs({ + "engine/include" + }) + files({ + "src/client/*.c" }) links({ "GoldFish" diff --git a/src/main.c b/src/client/main.c similarity index 100% rename from src/main.c rename to src/client/main.c diff --git a/src/server/main.c b/src/server/main.c new file mode 100644 index 0000000..0371833 --- /dev/null +++ b/src/server/main.c @@ -0,0 +1,25 @@ +/* Engine */ +#include + +/* External library */ + +/* Standard */ +#include +#include + +gf_engine_t* engine; + +int main(int argc, char** argv) { + gf_engine_begin(); + engine = gf_engine_create("unused", 1); + if(engine == NULL) { + fprintf(stderr, "Engine creation failure\n"); + gf_engine_end(); + return 1; + } + gf_engine_loop(engine); + gf_engine_destroy(engine); + gf_engine_end(); + + return 0; +}