aboutsummaryrefslogtreecommitdiff
path: root/vendor/rlImGui-main/premake5.lua
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/rlImGui-main/premake5.lua')
-rw-r--r--vendor/rlImGui-main/premake5.lua226
1 files changed, 226 insertions, 0 deletions
diff --git a/vendor/rlImGui-main/premake5.lua b/vendor/rlImGui-main/premake5.lua
new file mode 100644
index 0000000..02a65d3
--- /dev/null
+++ b/vendor/rlImGui-main/premake5.lua
@@ -0,0 +1,226 @@
+newoption
+{
+ trigger = "graphics",
+ value = "OPENGL_VERSION",
+ description = "version of OpenGL to build raylib against",
+ allowed = {
+ { "opengl11", "OpenGL 1.1"},
+ { "opengl21", "OpenGL 2.1"},
+ { "opengl33", "OpenGL 3.3"},
+ { "opengl43", "OpenGL 4.3"}
+ },
+ default = "opengl33"
+}
+
+function define_C()
+ language "C"
+end
+
+function define_Cpp()
+ language "C++"
+end
+
+function string.starts(String,Start)
+ return string.sub(String,1,string.len(Start))==Start
+end
+
+function link_to(lib)
+ links (lib)
+ includedirs ("../"..lib.."/include", "../"..lib.."/" )
+end
+
+function download_progress(total, current)
+ local ratio = current / total;
+ ratio = math.min(math.max(ratio, 0), 1);
+ local percent = math.floor(ratio * 100);
+ print("Download progress (" .. percent .. "%/100%)")
+end
+
+function check_raylib()
+ if(os.isdir("raylib") == false and os.isdir("raylib-master") == false) then
+ if(not os.isfile("raylib-master.zip")) then
+ print("Raylib not found, downloading from github")
+ local result_str, response_code = http.download("https://github.com/raysan5/raylib/archive/refs/heads/master.zip", "raylib-master.zip", {
+ progress = download_progress,
+ headers = { "From: Premake", "Referer: Premake" }
+ })
+ end
+ print("Unzipping to " .. os.getcwd())
+ zip.extract("raylib-master.zip", os.getcwd())
+ os.remove("raylib-master.zip")
+ end
+end
+
+function check_imgui()
+ if(os.isdir("imgui") == false and os.isdir("imgui-master") == false) then
+ if(not os.isfile("imgui-master.zip")) then
+ print("imgui not found, downloading from github")
+ local result_str, response_code = http.download("https://github.com/ocornut/imgui/archive/refs/heads/master.zip", "imgui-master.zip", {
+ progress = download_progress,
+ headers = { "From: Premake", "Referer: Premake" }
+ })
+ end
+ print("Unzipping to " .. os.getcwd())
+ zip.extract("imgui-master.zip", os.getcwd())
+ os.remove("imgui-master.zip")
+ end
+end
+
+workspace "rlImGui"
+ configurations { "Debug", "Release" }
+ platforms { "x64"}
+ defaultplatform "x64"
+
+ filter "configurations:Debug"
+ defines { "DEBUG" }
+ symbols "On"
+
+ filter "configurations:Release"
+ defines { "NDEBUG" }
+ optimize "On"
+
+ filter { "platforms:x64" }
+ architecture "x86_64"
+
+ filter { "system:linux" }
+ defines { "_GLFW_X11" }
+ defines { "_GNU_SOURCE" }
+
+ targetdir "bin/%{cfg.buildcfg}/"
+
+
+ cdialect "C99"
+ cppdialect "C++17"
+ check_raylib()
+ check_imgui()
+
+ include ("raylib_premake5.lua")
+
+project "rlImGui"
+ kind "StaticLib"
+ location "build"
+ targetdir "bin/%{cfg.buildcfg}"
+ language "C++"
+ cdialect "C99"
+ cppdialect "C++17"
+ include_raylib()
+ includedirs { "rlImGui", "imgui", "imgui-master"}
+ vpaths
+ {
+ ["Header Files"] = { "*.h"},
+ ["Source Files"] = {"*.cpp"},
+ ["ImGui Files"] = { "imgui/*.h","imgui/*.cpp", "imgui-master/*.h","imgui-master/*.cpp" },
+ }
+ files {"imgui-master/*.h", "imgui-master/*.cpp", "imgui/*.h", "imgui/*.cpp", "*.cpp", "*.h", "extras/**.h"}
+
+ defines {"IMGUI_DISABLE_OBSOLETE_FUNCTIONS","IMGUI_DISABLE_OBSOLETE_KEYIO"}
+
+group "Examples"
+project "simple"
+ kind "ConsoleApp"
+ language "C++"
+ cdialect "C99"
+ cppdialect "C++17"
+ location "build"
+ targetdir "bin/%{cfg.buildcfg}"
+
+ vpaths
+ {
+ ["Header Files"] = { "examples/**.h"},
+ ["Source Files"] = {"examples/**.cpp", "examples/**.c"},
+ }
+ files {"examples/simple.cpp"}
+ link_raylib()
+ links {"rlImGui"}
+ includedirs {"./", "imgui", "imgui-master" }
+
+ filter "action:vs*"
+ debugdir "$(SolutionDir)"
+
+
+project "editor"
+ kind "ConsoleApp"
+ language "C++"
+ cdialect "C99"
+ cppdialect "C++17"
+ location "build"
+ targetdir "bin/%{cfg.buildcfg}"
+
+
+ vpaths
+ {
+ ["Header Files"] = { "examples/**.h"},
+ ["Source Files"] = {"examples/**.cpp", "examples/**.c"},
+ }
+ files {"examples/editor.cpp"}
+ link_raylib()
+ links {"rlImGui"}
+ includedirs {"./", "imgui", "imgui-master" }
+
+ filter "action:vs*"
+ debugdir "$(SolutionDir)"
+
+
+project "imgui_style_example"
+ kind "ConsoleApp"
+ language "C++"
+ cdialect "C99"
+ cppdialect "C++17"
+ location "build"
+ targetdir "bin/%{cfg.buildcfg}"
+
+ vpaths
+ {
+ ["Header Files"] = { "examples/**.h"},
+ ["Source Files"] = {"examples/**.cpp", "examples/**.c"},
+ }
+ files {"examples/imgui_style_example.cpp"}
+ link_raylib()
+ links {"rlImGui"}
+ includedirs {"./", "imgui", "imgui-master" }
+
+ filter "action:vs*"
+ debugdir "$(SolutionDir)"
+
+project "docking_example"
+ kind "ConsoleApp"
+ language "C++"
+ cdialect "C99"
+ cppdialect "C++17"
+ location "build"
+ targetdir "bin/%{cfg.buildcfg}"
+
+ vpaths
+ {
+ ["Header Files"] = { "examples/**.h"},
+ ["Source Files"] = {"examples/**.cpp", "examples/**.c"},
+ }
+ files {"examples/docking_example.cpp"}
+ link_raylib()
+ links {"rlImGui"}
+ includedirs {"./", "imgui", "imgui-master" }
+
+ filter "action:vs*"
+ debugdir "$(SolutionDir)"
+
+project "asset_browser"
+ kind "ConsoleApp"
+ language "C++"
+ cdialect "C99"
+ cppdialect "C++17"
+ location "build"
+ targetdir "bin/%{cfg.buildcfg}"
+
+ vpaths
+ {
+ ["Header Files"] = { "examples/asset_browser/**.h"},
+ ["Source Files"] = {"examples/asset_browser/**.cpp", "examples/asset_browser/**.c"},
+ }
+ files {"examples/asset_browser/**.cpp", "examples/asset_browser/**.h"}
+ link_raylib()
+ links {"rlImGui"}
+ includedirs {"./", "examples/asset_browser/", "imgui", "imgui-master" }
+
+ filter "action:vs*"
+ debugdir "$(SolutionDir)"
+ \ No newline at end of file