diff --git a/bakara/premake5.lua b/bakara/premake5.lua index 9f3f6d4..66d9057 100644 --- a/bakara/premake5.lua +++ b/bakara/premake5.lua @@ -13,6 +13,12 @@ project "bakara" "GLFW_INCLUDE_NONE" } + buildoptions + { + "-lglfw", + "-lGL" + } + files { "src/**.h", @@ -22,15 +28,16 @@ project "bakara" includedirs { "%{IncludeDirs.bakara}", + "%{IncludeDirs.glfw}", "%{IncludeDirs.glm}", - "%{IncludeDirs.spdlog}", - "%{IncludeDirs.glfw}" + "%{IncludeDirs.spdlog}" } links { + "GLFW", + "opengl32.lib", "glm", - "glfw" } filter "configurations:Debug" diff --git a/bakara/src/bakara/core/application.cpp b/bakara/src/bakara/core/application.cpp index 5aac88c..d31b6a0 100644 --- a/bakara/src/bakara/core/application.cpp +++ b/bakara/src/bakara/core/application.cpp @@ -1,11 +1,18 @@ #include "application.h" namespace Bk { - Application::Application() { } + Application::Application() + { + p_window = Window::create_window(); + } + Application::~Application() { } void Application::run() { - while (true); + while (p_running) + { + p_window->on_update(); + } } } diff --git a/bakara/src/bakara/core/application.h b/bakara/src/bakara/core/application.h index 1435d74..509c76e 100644 --- a/bakara/src/bakara/core/application.h +++ b/bakara/src/bakara/core/application.h @@ -11,6 +11,9 @@ namespace Bk { virtual ~Application(); void run(); + private: + std::unique_ptr p_window; + bool p_running = true; }; std::unique_ptr create_app(); diff --git a/bakara/src/bakara/plaforms/window/glfw/win_glfw.cpp b/bakara/src/bakara/plaforms/window/glfw/win_glfw.cpp index 876dce3..ef86f36 100644 --- a/bakara/src/bakara/plaforms/window/glfw/win_glfw.cpp +++ b/bakara/src/bakara/plaforms/window/glfw/win_glfw.cpp @@ -1,4 +1,5 @@ #include "win_glfw.h" + namespace Bk { std::unique_ptr Window::create_window(const WindowPros& props) { diff --git a/bakara/src/bakara/plaforms/window/glfw/win_glfw.h b/bakara/src/bakara/plaforms/window/glfw/win_glfw.h index 4b74195..ac6864b 100644 --- a/bakara/src/bakara/plaforms/window/glfw/win_glfw.h +++ b/bakara/src/bakara/plaforms/window/glfw/win_glfw.h @@ -3,6 +3,7 @@ #include #include + namespace Bk::Plaform { class WinGLFW : public Window { diff --git a/bakara/vendor/premake5.lua b/bakara/vendor/premake5.lua index b2f966b..eaefee4 100644 --- a/bakara/vendor/premake5.lua +++ b/bakara/vendor/premake5.lua @@ -1,34 +1,4 @@ -project "glm" - location "./glm/glm" - kind "StaticLib" - language "C++" - cppdialect "C++17" - staticruntime "off" - - targetdir("%{wks.location}/bin/" .. outputdir .. "/%{prj.name}") - objdir("%{wks.location}/bin-int/" .. outputdir .. "/%{prj.name}") - - files - { - "%{prj.location}/**.hpp", - "%{prj.location}/**.inl", - "%{prj.location}/**.cpp" - } - - includedirs - { - "%{IncludeDirs.glm}" - } - - filter "configurations:Debug" - runtime "Debug" - symbols "on" - - filter "configurations:Release" - runtime "Release" - optimize "on" - -project "glfw" +project "GLFW" location "./glfw" kind "StaticLib" language "C" @@ -36,17 +6,24 @@ project "glfw" targetdir ("%{wks.location}/bin/" .. outputdir .. "/%{prj.name}") objdir ("%{wks.location}/bin-int/" .. outputdir .. "/%{prj.name}") + includedirs { "%{prj.location}/include" } + files { - "%{prj.location}/include/GLFW/glfw3.h", - "%{prj.location}/include/GLFW/glfw3native.h", "%{prj.location}/src/glfw_config.h", + "%{prj.location}/include/GLFW/glfw3native.h", + "%{prj.location}/include/GLFW/glfw3.h", "%{prj.location}/src/context.c", "%{prj.location}/src/init.c", "%{prj.location}/src/input.c", "%{prj.location}/src/monitor.c", "%{prj.location}/src/vulkan.c", - "%{prj.location}/src/window.c" + "%{prj.location}/src/window.c", + "%{prj.location}/src/platform.c", + "%{prj.location}/src/null_init.c", + "%{prj.location}/src/null_monitor.c", + "%{prj.location}/src/null_window.c", + "%{prj.location}/src/null_joystick.c", } filter "system:linux" @@ -103,4 +80,35 @@ project "glfw" filter "configurations:Release" runtime "Release" - optimize "on" \ No newline at end of file + optimize "on" + +project "glm" + location "./glm/glm" + kind "StaticLib" + language "C++" + cppdialect "C++17" + staticruntime "off" + + targetdir("%{wks.location}/bin/" .. outputdir .. "/%{prj.name}") + objdir("%{wks.location}/bin-int/" .. outputdir .. "/%{prj.name}") + + files + { + "%{prj.location}/**.hpp", + "%{prj.location}/**.inl", + "%{prj.location}/**.cpp" + } + + includedirs + { + "%{IncludeDirs.glm}" + } + + filter "configurations:Debug" + runtime "Debug" + symbols "on" + + filter "configurations:Release" + runtime "Release" + optimize "on" + diff --git a/premake5.lua b/premake5.lua index 61656fe..1729b6a 100644 --- a/premake5.lua +++ b/premake5.lua @@ -8,6 +8,8 @@ workspace "Bakara" "MultiProcessorCompile" } + linkgroups "On" + outputdir = "%{cfg.system}-%{cfg.architecture}-%{cfg.buildcfg}" IncludeDirs = {} diff --git a/sandbox/premake5.lua b/sandbox/premake5.lua index 1a610bd..cb56de7 100644 --- a/sandbox/premake5.lua +++ b/sandbox/premake5.lua @@ -17,7 +17,8 @@ project "sandbox" { "%{IncludeDirs.bakara}", "%{IncludeDirs.spdlog}", - "%{IncludeDirs.glm}" + "%{IncludeDirs.glm}", + "" } links diff --git a/sandbox/src/sandbox.cpp b/sandbox/src/sandbox.cpp index 31390a8..0c697ee 100644 --- a/sandbox/src/sandbox.cpp +++ b/sandbox/src/sandbox.cpp @@ -3,6 +3,7 @@ #include #include + class Sandbox : public Bk::Application { public: