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