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 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 {"options:graphics=openges3"} defines{"GRAPHICS_API_OPENGL_ES3"} filter {"options:graphics=openges2"} defines{"GRAPHICS_API_OPENGL_ES2"} 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 raylib_dir = "external/raylib-master" workspaceName = 'MyGame' baseName = path.getbasename(path.getdirectory(os.getcwd())); --if (baseName ~= 'raylib-quickstart') then workspaceName = baseName --end if (os.isdir('build_files') == false) then os.mkdir('build_files') end workspace (workspaceName) location "../" configurations { "Debug", "Release"} platforms { "x64", "x86", "ARM64"} defaultplatform ("x64") filter "configurations:Debug" defines { "DEBUG" } symbols "On" filter "configurations:Release" defines { "NDEBUG" } optimize "On" filter { "platforms:x64" } architecture "x86_64" filter { "platforms:Arm64" } architecture "ARM64" filter {} targetdir "bin/%{cfg.buildcfg}/" include ("external/premake_external.lua") build_externals() project (workspaceName) kind "ConsoleApp" location "build_files/" targetdir "../bin/%{cfg.buildcfg}" filter "action:vs*" debugdir "$(SolutionDir)" filter {"action:vs*", "configurations:Release"} kind "WindowedApp" entrypoint "mainCRTStartup" filter{} vpaths { ["Header Files/*"] = { "../include/**.h", "../include/**.hpp", "../src/**.h", "../src/**.hpp"}, ["Source Files/*"] = {"../src/**.c", "src/**.cpp"}, } files {"../src/**.c", "../src/**.cpp", "../src/**.h", "../src/**.hpp", "../include/**.h", "../include/**.hpp"} includedirs { "../src" } includedirs { "../include" } links {"raylib"} 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{} project "raylib" kind "StaticLib" platform_defines() location "build_files/" language "C" targetdir "../bin/%{cfg.buildcfg}" filter "action:vs*" defines{"_WINSOCK_DEPRECATED_NO_WARNINGS", "_CRT_SECURE_NO_WARNINGS"} characterset ("MBCS") buildoptions { "/Zc:__cplusplus" } filter{} 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{}