-
Notifications
You must be signed in to change notification settings - Fork 1
/
raylib_premake5.lua
116 lines (88 loc) · 3.39 KB
/
raylib_premake5.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
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 {"_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")
filter "system:windows"
defines{"_WIN32"}
links {"winmm", "kernel32", "opengl32", "gdi32"}
libdirs {"../_bin/%{cfg.buildcfg}"}
filter "system:linux"
links {"pthread", "GL", "m", "dl", "rt", "X11"}
filter "system:macosx"
links {"OpenGL.framework", "Cocoa.framework", "IOKit.framework", "CoreFoundation.framework", "CoreAudio.framework", "CoreVideo.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")
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_android.c", raylib_dir .. "/src/rcore_template.c", raylib_dir .. "/src/rcore_drm.c", raylib_dir .. "/src/rcore_web.c", raylib_dir .."/src/rcore_desktop.c"}
filter { "system:macosx", "files:" .. raylib_dir .. "/src/rglfw.c" }
compileas "Objective-C"
filter{}