aboutsummaryrefslogtreecommitdiff
path: root/vendor/rlImGui-main/raylib_premake5.lua
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/rlImGui-main/raylib_premake5.lua')
-rw-r--r--vendor/rlImGui-main/raylib_premake5.lua134
1 files changed, 134 insertions, 0 deletions
diff --git a/vendor/rlImGui-main/raylib_premake5.lua b/vendor/rlImGui-main/raylib_premake5.lua
new file mode 100644
index 0000000..dab8d7f
--- /dev/null
+++ b/vendor/rlImGui-main/raylib_premake5.lua
@@ -0,0 +1,134 @@
+-- Copyright (c) 2020-2024 Jeffery Myers
+--
+--This software is provided "as-is", without any express or implied warranty. In no event
+--will the authors be held liable for any damages arising from the use of this software.
+
+--Permission is granted to anyone to use this software for any purpose, including commercial
+--applications, and to alter it and redistribute it freely, subject to the following restrictions:
+
+-- 1. The origin of this software must not be misrepresented; you must not claim that you
+-- wrote the original software. If you use this software in a product, an acknowledgment
+-- in the product documentation would be appreciated but is not required.
+--
+-- 2. Altered source versions must be plainly marked as such, and must not be misrepresented
+-- as being the original software.
+--
+-- 3. This notice may not be removed or altered from any source distribution.
+
+function platform_defines()
+ defines{"PLATFORM_DESKTOP"}
+
+ filter {"options:graphics=opengl43"}
+ defines{"GRAPHICS_API_OPENGL_43"}
+
+ filter {"options:graphics=opengl33"}
+ defines{"GRAPHICS_API_OPENGL_33"}
+
+ filter {"options:graphics=opengl21"}
+ defines{"GRAPHICS_API_OPENGL_21"}
+
+ filter {"options:graphics=opengl11"}
+ defines{"GRAPHICS_API_OPENGL_11"}
+
+ filter {"system:macosx"}
+ disablewarnings {"deprecated-declarations"}
+
+ filter {"system:linux"}
+ defines {"_GLFW_X11"}
+ defines {"_GNU_SOURCE"}
+-- This is necessary, otherwise compilation will fail since
+-- there is no CLOCK_MONOTOMIC. raylib claims to have a workaround
+-- to compile under c99 without -D_GNU_SOURCE, but it didn't seem
+-- to work. raylib's Makefile also adds this flag, probably why it went
+-- unnoticed for so long.
+-- It compiles under c11 without -D_GNU_SOURCE, because c11 requires
+-- to have CLOCK_MONOTOMIC
+-- See: https://github.com/raysan5/raylib/issues/2729
+
+ filter{}
+end
+
+function get_raylib_dir()
+ if (os.isdir("raylib-master")) then
+ return "raylib-master"
+ end
+ if (os.isdir("../raylib-master")) then
+ return "raylib-master"
+ end
+ return "raylib"
+end
+
+function link_raylib()
+ links {"raylib"}
+
+ raylib_dir = get_raylib_dir();
+ includedirs {raylib_dir .. "/src" }
+ includedirs {raylib_dir .."/src/external" }
+ includedirs {raylib_dir .."/src/external/glfw/include" }
+ platform_defines()
+ filter "action:vs*"
+ defines{"_WINSOCK_DEPRECATED_NO_WARNINGS", "_CRT_SECURE_NO_WARNINGS"}
+ dependson {"raylib"}
+ links {"raylib.lib"}
+ characterset ("MBCS")
+ buildoptions { "/Zc:__cplusplus" }
+
+ filter "system:windows"
+ defines{"_WIN32"}
+ links {"winmm", "gdi32"}
+ libdirs {"bin/%{cfg.buildcfg}"}
+
+ filter "system:linux"
+ links {"pthread", "m", "dl", "rt", "X11"}
+
+ filter "system:macosx"
+ links {"OpenGL.framework", "Cocoa.framework", "IOKit.framework", "CoreFoundation.framework", "CoreAudio.framework", "CoreVideo.framework", "AudioToolbox.framework"}
+
+ filter{}
+end
+
+function include_raylib()
+ raylib_dir = get_raylib_dir();
+ includedirs {raylib_dir .."/src" }
+ includedirs {raylib_dir .."/src/external" }
+ includedirs {raylib_dir .."/src/external/glfw/include" }
+ platform_defines()
+
+ filter "action:vs*"
+ defines{"_WINSOCK_DEPRECATED_NO_WARNINGS", "_CRT_SECURE_NO_WARNINGS"}
+
+ filter{}
+end
+
+project "raylib"
+ kind "StaticLib"
+
+ platform_defines()
+
+ location "build"
+ language "C"
+ cdialect "C99"
+ cppdialect "C++17"
+ targetdir "bin/%{cfg.buildcfg}"
+
+ filter "action:vs*"
+ defines{"_WINSOCK_DEPRECATED_NO_WARNINGS", "_CRT_SECURE_NO_WARNINGS"}
+ characterset ("MBCS")
+ buildoptions { "/Zc:__cplusplus" }
+ filter{}
+
+ raylib_dir = get_raylib_dir();
+ print ("Using raylib dir " .. raylib_dir);
+ includedirs {raylib_dir .. "/src", raylib_dir .. "/src/external/glfw/include" }
+ vpaths
+ {
+ ["Header Files"] = { raylib_dir .. "/src/**.h"},
+ ["Source Files/*"] = { raylib_dir .. "/src/**.c"},
+ }
+ files {raylib_dir .. "/src/*.h", raylib_dir .. "/src/*.c"}
+ removefiles {raylib_dir .. "/src/rcore_*.c"}
+
+ filter { "system:macosx", "files:" .. raylib_dir .. "/src/rglfw.c" }
+ compileas "Objective-C"
+
+ filter{}