imgui-sfml-premake/build-sfml.lua

119 lines
3.2 KiB
Lua

local m = {}
local scriptdir = 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(scriptdir, "SFML/include"),
path.join(scriptdir, "SFML/src"),
path.join(scriptdir, "SFML/extlibs/headers/glad/include"),
path.join(scriptdir, "SFML/extlibs/headers/mingw"),
path.join(scriptdir, "SFML/extlibs/headers/miniaudio"),
path.join(scriptdir, "SFML/extlibs/headers/minimp3"),
path.join(scriptdir, "SFML/extlibs/headers/stb_image"),
path.join(scriptdir, "SFML/extlibs/headers/vulkan"),
}
files
{
path.join(scriptdir, "SFML/include/SFML/**.hpp"),
path.join(scriptdir, "SFML/include/SFML/**.inl"),
path.join(scriptdir, "SFML/src/SFML/**.hpp"),
path.join(scriptdir, "SFML/src/SFML/**.cpp"),
}
filter"system:windows"
removefiles
{
path.join(scriptdir, "SFML/src/SFML/System/Unix/**"),
path.join(scriptdir, "SFML/src/SFML/System/Andriod/**"),
path.join(scriptdir, "SFML/src/SFML/Window/Unix/**"),
path.join(scriptdir, "SFML/src/SFML/Network/Unix/**"),
path.join(scriptdir, "SFML/src/SFML/Window/OpenBSD/**"),
path.join(scriptdir, "SFML/src/SFML/Window/NetBSD/**"),
path.join(scriptdir, "SFML/src/SFML/Window/macOS/**"),
path.join(scriptdir, "SFML/src/SFML/Window/iOS/**"),
path.join(scriptdir, "SFML/src/SFML/Window/FreeBSD/**"),
path.join(scriptdir, "SFML/src/SFML/Window/DRM/**"),
path.join(scriptdir, "SFML/src/SFML/Window/Android/**"),
path.join(scriptdir, "SFML/src/SFML/System/Android/**"),
}
filter"system:linux"
removefiles
{
path.join(scriptdir, "SFML/src/SFML/System/Android/**"),
path.join(scriptdir, "SFML/src/SFML/System/Win32/**"),
path.join(scriptdir, "SFML/src/SFML/Network/Win32/**"),
path.join(scriptdir, "SFML/src/SFML/Window/Win32/**"),
path.join(scriptdir, "SFML/src/SFML/Window/OpenBSD/**"),
path.join(scriptdir, "SFML/src/SFML/Window/NetBSD/**"),
path.join(scriptdir, "SFML/src/SFML/Window/macOS/**"),
path.join(scriptdir, "SFML/src/SFML/Window/iOS/**"),
path.join(scriptdir, "SFML/src/SFML/Window/FreeBSD/**"),
path.join(scriptdir, "SFML/src/SFML/Window/DRM/**"),
path.join(scriptdir, "SFML/src/SFML/Window/Android/**"),
path.join(scriptdir, "SFML/src/SFML/Main/**"),
}
filter""
end
function m.link()
defines{"SFML_STATIC"}
externalincludedirs
{
path.join(scriptdir, "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