librw/premake5.lua

278 lines
6.4 KiB
Lua
Raw Normal View History

2018-08-09 01:55:45 +08:00
newoption {
trigger = "gfxlib",
value = "LIBRARY",
description = "Choose a particular development library",
default = "glfw",
allowed = {
{ "glfw", "GLFW" },
{ "sdl2", "SDL2" },
},
}
2018-07-26 02:42:03 +08:00
newoption {
2020-04-28 23:24:26 +08:00
trigger = "glfwdir64",
2018-08-09 01:55:45 +08:00
value = "PATH",
2018-07-26 02:42:03 +08:00
description = "Directory of glfw",
2020-04-16 23:46:42 +08:00
default = "../glfw-3.3.2.bin.WIN64",
}
newoption {
trigger = "glfwdir32",
value = "PATH",
description = "Directory of glfw",
default = "../glfw-3.3.2.bin.WIN32",
2018-07-26 02:42:03 +08:00
}
2017-08-09 16:57:32 +08:00
2018-08-09 01:55:45 +08:00
newoption {
trigger = "sdl2dir",
value = "PATH",
description = "Directory of sdl2",
2020-04-16 23:46:42 +08:00
default = "../SDL2-2.0.8",
2018-08-09 01:55:45 +08:00
}
workspace "librw"
location "build"
language "C++"
configurations { "Release", "Debug" }
filter { "system:windows" }
configurations { "ReleaseStatic" }
platforms { "win-x86-null", "win-x86-gl3", "win-x86-d3d9",
"win-amd64-null", "win-amd64-gl3", "win-amd64-d3d9" }
filter { "system:linux" }
platforms { "linux-x86-null", "linux-x86-gl3",
2017-08-12 16:25:25 +08:00
"linux-amd64-null", "linux-amd64-gl3",
2020-05-13 03:31:44 +08:00
"linux-arm-null", "linux-arm-gl3",
2017-08-12 16:25:25 +08:00
"ps2" }
2018-08-09 01:55:45 +08:00
if _OPTIONS["gfxlib"] == "sdl2" then
includedirs { "/usr/include/SDL2" }
end
filter {}
filter "configurations:Debug"
defines { "DEBUG" }
symbols "On"
filter "configurations:Release*"
defines { "NDEBUG" }
optimize "On"
filter "configurations:ReleaseStatic"
flags { "StaticRuntime" }
filter { "platforms:*null" }
defines { "RW_NULL" }
filter { "platforms:*gl3" }
defines { "RW_GL3" }
2018-08-09 01:55:45 +08:00
if _OPTIONS["gfxlib"] == "sdl2" then
defines { "LIBRW_SDL2" }
end
filter { "platforms:*d3d9" }
defines { "RW_D3D9" }
2017-08-12 16:25:25 +08:00
filter { "platforms:ps2" }
defines { "RW_PS2" }
2017-08-12 16:25:25 +08:00
toolset "gcc"
gccprefix 'ee-'
buildoptions { "-nostdlib", "-fno-common" }
includedirs { "$(PS2SDK)/ee/include", "$(PS2SDK)/common/include" }
2018-07-26 02:42:03 +08:00
optimize "Off"
filter { "platforms:*amd64*" }
architecture "x86_64"
filter { "platforms:*x86*" }
architecture "x86"
2020-05-13 03:31:44 +08:00
filter { "platforms:*arm*" }
architecture "ARM"
filter { "platforms:win*" }
system "windows"
filter { "platforms:linux*" }
system "linux"
2017-07-27 21:05:30 +08:00
2017-08-09 16:57:32 +08:00
filter { "platforms:win*gl3" }
2018-08-09 01:55:45 +08:00
includedirs { path.join(_OPTIONS["sdl2dir"], "include") }
2020-04-28 23:24:26 +08:00
filter { "platforms:win-x86-gl3" }
includedirs { path.join(_OPTIONS["glfwdir32"], "include") }
filter { "platforms:win-amd64-gl3" }
includedirs { path.join(_OPTIONS["glfwdir64"], "include") }
2017-08-09 16:57:32 +08:00
2017-07-27 21:05:30 +08:00
filter "action:vs*"
2017-08-09 16:57:32 +08:00
buildoptions { "/wd4996", "/wd4244" }
2017-07-27 21:05:30 +08:00
2019-01-11 00:11:39 +08:00
filter { "platforms:win*gl3", "action:not vs*" }
if _OPTIONS["gfxlib"] == "sdl2" then
includedirs { "/mingw/include/SDL2" } -- TODO: Detect this properly
end
filter {}
Libdir = "lib/%{cfg.platform}/%{cfg.buildcfg}"
Bindir = "bin/%{cfg.platform}/%{cfg.buildcfg}"
project "librw"
kind "StaticLib"
targetname "rw"
targetdir (Libdir)
2020-07-29 06:23:37 +08:00
defines { "LODEPNG_NO_COMPILE_CPP" }
files { "src/*.*" }
files { "src/*/*.*" }
filter { "platforms:*gl3" }
files { "src/gl/glad/*.*" }
project "dumprwtree"
kind "ConsoleApp"
targetdir (Bindir)
2017-08-24 21:10:34 +08:00
removeplatforms { "*gl3", "*d3d9", "ps2" }
files { "tools/dumprwtree/*" }
includedirs { "." }
libdirs { Libdir }
2017-07-27 21:05:30 +08:00
links { "librw" }
2017-08-10 06:42:33 +08:00
function findlibs()
filter { "platforms:linux*gl3" }
2021-01-31 20:48:59 +08:00
links { "GL" }
2018-08-09 01:55:45 +08:00
if _OPTIONS["gfxlib"] == "glfw" then
links { "glfw" }
else
links { "SDL2" }
end
2017-08-10 06:42:33 +08:00
filter { "platforms:win-amd64-gl3" }
2020-04-28 23:24:26 +08:00
libdirs { path.join(_OPTIONS["glfwdir64"], "lib-vc2015") }
2018-08-09 01:55:45 +08:00
libdirs { path.join(_OPTIONS["sdl2dir"], "lib/x64") }
2017-08-10 06:42:33 +08:00
filter { "platforms:win-x86-gl3" }
2020-04-16 23:46:42 +08:00
libdirs { path.join(_OPTIONS["glfwdir32"], "lib-vc2015") }
2018-08-09 01:55:45 +08:00
libdirs { path.join(_OPTIONS["sdl2dir"], "lib/x86") }
2017-08-10 06:42:33 +08:00
filter { "platforms:win*gl3" }
2019-01-11 00:11:39 +08:00
links { "opengl32" }
2018-08-09 01:55:45 +08:00
if _OPTIONS["gfxlib"] == "glfw" then
links { "glfw3" }
else
links { "SDL2" }
end
2017-08-10 06:42:33 +08:00
filter { "platforms:*d3d9" }
2019-01-11 00:11:39 +08:00
links { "gdi32", "d3d9" }
filter { "platforms:*d3d9", "action:vs*" }
links { "Xinput9_1_0" }
2017-08-10 06:42:33 +08:00
filter {}
end
function skeleton()
files { "skeleton/*.cpp", "skeleton/*.h" }
2017-12-30 18:43:17 +08:00
files { "skeleton/imgui/*.cpp", "skeleton/imgui/*.h" }
2017-08-10 06:42:33 +08:00
includedirs { "skeleton" }
end
function skeltool(dir)
targetdir (Bindir)
files { path.join("tools", dir, "*.cpp"),
path.join("tools", dir, "*.h") }
vpaths {
{["src"] = { path.join("tools", dir, "*") }},
{["skeleton"] = { "skeleton/*" }},
}
skeleton()
debugdir ( path.join("tools", dir) )
includedirs { "." }
libdirs { Libdir }
links { "librw" }
findlibs()
end
2017-08-12 16:25:25 +08:00
function vucode()
filter "files:**.dsm"
buildcommands {
'cpp "%{file.relpath}" | dvp-as -o "%{cfg.objdir}/%{file.basename}.o"'
}
buildoutputs { '%{cfg.objdir}/%{file.basename}.o' }
filter {}
end
2020-04-28 23:24:26 +08:00
project "playground"
2017-08-10 06:42:33 +08:00
kind "WindowedApp"
characterset ("MBCS")
2020-04-28 23:24:26 +08:00
skeltool("playground")
2017-08-10 06:42:33 +08:00
flags { "WinMain" }
removeplatforms { "*null" }
2017-08-29 20:05:45 +08:00
removeplatforms { "ps2" } -- for now
2017-08-12 16:25:25 +08:00
2017-12-30 18:43:17 +08:00
project "imguitest"
kind "WindowedApp"
characterset ("MBCS")
skeltool("imguitest")
2020-04-19 19:00:35 +08:00
flags { "WinMain" }
removeplatforms { "*null" }
removeplatforms { "ps2" }
project "lights"
kind "WindowedApp"
characterset ("MBCS")
skeltool("lights")
2017-12-30 18:43:17 +08:00
flags { "WinMain" }
removeplatforms { "*null" }
removeplatforms { "ps2" }
2021-03-03 23:43:20 +08:00
project "subrast"
kind "WindowedApp"
characterset ("MBCS")
skeltool("subrast")
flags { "WinMain" }
removeplatforms { "*null" }
removeplatforms { "ps2" }
2021-03-04 04:53:06 +08:00
project "camera"
kind "WindowedApp"
characterset ("MBCS")
skeltool("camera")
flags { "WinMain" }
removeplatforms { "*null" }
removeplatforms { "ps2" }
2021-03-10 06:52:11 +08:00
project "im2d"
kind "WindowedApp"
characterset ("MBCS")
skeltool("im2d")
flags { "WinMain" }
removeplatforms { "*null" }
removeplatforms { "ps2" }
2021-03-10 08:13:17 +08:00
project "im3d"
kind "WindowedApp"
characterset ("MBCS")
skeltool("im3d")
flags { "WinMain" }
removeplatforms { "*null" }
removeplatforms { "ps2" }
project "ska2anm"
kind "ConsoleApp"
characterset ("MBCS")
targetdir (Bindir)
files { path.join("tools/ska2anm", "*.cpp"),
path.join("tools/ska2anm", "*.h") }
debugdir ( path.join("tools/ska2nm") )
includedirs { "." }
libdirs { Libdir }
links { "librw" }
findlibs()
removeplatforms { "*gl3", "*d3d9", "*ps2" }
2017-08-12 16:25:25 +08:00
project "ps2test"
kind "ConsoleApp"
targetdir (Bindir)
vucode()
removeplatforms { "*gl3", "*d3d9", "*null" }
targetextension '.elf'
includedirs { "." }
files { "tools/ps2test/*.cpp",
"tools/ps2test/vu/*.dsm",
"tools/ps2test/*.h" }
libdirs { "$(PS2SDK)/ee/lib" }
links { "librw" }
2017-08-19 01:28:01 +08:00
2017-08-29 20:05:45 +08:00
--project "ps2rastertest"
-- kind "ConsoleApp"
-- targetdir (Bindir)
-- removeplatforms { "*gl3", "*d3d9" }
-- files { "tools/ps2rastertest/*.cpp" }
-- includedirs { "." }
-- libdirs { Libdir }
-- links { "librw" }