-- 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{}