120 lines
3.1 KiB
Lua
120 lines
3.1 KiB
Lua
local m = {}
|
|
|
|
local rootdir = path.join(path.getabsolute(path.getdirectory(_SCRIPT)), "../")
|
|
|
|
local ogg = require("build-ogg")
|
|
local flac = require("build-flac")
|
|
local vorbis = require("build-vorbis")
|
|
local freetype = require("build-freetype")
|
|
|
|
function m.generateproject(liboutdir, intdir)
|
|
project"sfml"
|
|
cppdialect"c++17"
|
|
kind "staticLib"
|
|
targetdir (liboutdir)
|
|
objdir(intdir)
|
|
warnings"Off"
|
|
|
|
|
|
freetype.link()
|
|
ogg.link()
|
|
flac.link()
|
|
vorbis.link()
|
|
|
|
defines
|
|
{
|
|
"SFML_STATIC",
|
|
"MA_NO_MP3",
|
|
"MA_NO_FLAC",
|
|
"MA_NO_ENCODING",
|
|
"MA_NO_RESOURCE_MANAGER",
|
|
"MA_NO_GENERATION",
|
|
"MA_USE_STDINT",
|
|
"STBI_FAILURE_USERMSG",
|
|
"SFML_IS_BIG_ENDIAN=0",
|
|
"FT2_BUILD_LIBRARY",
|
|
"FLAC__NO_DLL",
|
|
"OV_EXCLUDE_STATIC_CALLBACKS",
|
|
}
|
|
|
|
includedirs
|
|
{
|
|
path.join(rootdir, "SFML/include"),
|
|
path.join(rootdir, "SFML/src"),
|
|
path.join(rootdir, "SFML/extlibs/headers/glad/include"),
|
|
path.join(rootdir, "SFML/extlibs/headers/mingw"),
|
|
path.join(rootdir, "SFML/extlibs/headers/miniaudio"),
|
|
path.join(rootdir, "SFML/extlibs/headers/minimp3"),
|
|
path.join(rootdir, "SFML/extlibs/headers/stb_image"),
|
|
path.join(rootdir, "SFML/extlibs/headers/vulkan"),
|
|
|
|
}
|
|
|
|
files
|
|
{
|
|
path.join(rootdir, "SFML/include/SFML/**.hpp"),
|
|
path.join(rootdir, "SFML/include/SFML/**.inl"),
|
|
path.join(rootdir, "SFML/src/SFML/**.hpp"),
|
|
path.join(rootdir, "SFML/src/SFML/**.cpp"),
|
|
}
|
|
|
|
filter"system:windows"
|
|
removefiles
|
|
{
|
|
path.join(rootdir, "SFML/src/SFML/System/Unix/**"),
|
|
path.join(rootdir, "SFML/src/SFML/System/Android/**"),
|
|
path.join(rootdir, "SFML/src/SFML/Window/Unix/**"),
|
|
path.join(rootdir, "SFML/src/SFML/Network/Unix/**"),
|
|
path.join(rootdir, "SFML/src/SFML/Window/OpenBSD/**"),
|
|
path.join(rootdir, "SFML/src/SFML/Window/NetBSD/**"),
|
|
path.join(rootdir, "SFML/src/SFML/Window/macOS/**"),
|
|
path.join(rootdir, "SFML/src/SFML/Window/iOS/**"),
|
|
path.join(rootdir, "SFML/src/SFML/Window/FreeBSD/**"),
|
|
path.join(rootdir, "SFML/src/SFML/Window/DRM/**"),
|
|
path.join(rootdir, "SFML/src/SFML/Window/Android/**"),
|
|
path.join(rootdir, "SFML/src/SFML/System/Android/**"),
|
|
}
|
|
|
|
filter"system:linux"
|
|
removefiles
|
|
{
|
|
path.join(rootdir, "SFML/src/SFML/System/Android/**"),
|
|
path.join(rootdir, "SFML/src/SFML/System/Win32/**"),
|
|
path.join(rootdir, "SFML/src/SFML/Network/Win32/**"),
|
|
path.join(rootdir, "SFML/src/SFML/Window/Win32/**"),
|
|
path.join(rootdir, "SFML/src/SFML/Window/OpenBSD/**"),
|
|
path.join(rootdir, "SFML/src/SFML/Window/NetBSD/**"),
|
|
path.join(rootdir, "SFML/src/SFML/Window/macOS/**"),
|
|
path.join(rootdir, "SFML/src/SFML/Window/iOS/**"),
|
|
path.join(rootdir, "SFML/src/SFML/Window/FreeBSD/**"),
|
|
path.join(rootdir, "SFML/src/SFML/Window/DRM/**"),
|
|
path.join(rootdir, "SFML/src/SFML/Window/Android/**"),
|
|
path.join(rootdir, "SFML/src/SFML/Main/**"),
|
|
}
|
|
filter""
|
|
|
|
end
|
|
|
|
function m.link()
|
|
defines{"SFML_STATIC"}
|
|
externalincludedirs
|
|
{
|
|
path.join(rootdir, "SFML/include"),
|
|
}
|
|
|
|
links{"sfml"}
|
|
freetype.link()
|
|
flac.link()
|
|
vorbis.link()
|
|
ogg.link()
|
|
|
|
filter"system:windows"
|
|
links{"legacy_stdio_definitions", "opengl32", "gdi32", "winmm", "ws2_32"}
|
|
|
|
filter"system:linux"
|
|
links{"Xi", "Xrandr", "Xcursor", "X11", "udev", "pthread", "OpenGL"}
|
|
|
|
end
|
|
|
|
return m
|