135 lines
4.2 KiB
Lua
135 lines
4.2 KiB
Lua
-- 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-6.0")) then
|
||
|
|
return "raylib-6.0"
|
||
|
|
end
|
||
|
|
if (os.isdir("../raylib-6.0")) then
|
||
|
|
return "raylib-6.0"
|
||
|
|
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{}
|