zonetool/premake5.lua
2020-12-16 20:44:46 +01:00

123 lines
2.2 KiB
Lua

newoption {
trigger = "set-version",
description = "Sets the version information of zonetool",
}
-- Functions for locating commonly used folders
local _DependencyFolder = path.getabsolute("dep")
function DependencyFolder()
return path.getrelative(os.getcwd(), _DependencyFolder)
end
local _ProjectFolder = path.getabsolute("src")
function ProjectFolder()
return path.getrelative(os.getcwd(), _ProjectFolder)
end
-- ========================
-- Workspace
-- ========================
workspace "zonetool"
location "./build"
objdir "%{wks.location}/obj"
targetdir "%{wks.location}/bin"
targetname "%{prj.name}-%{cfg.platform}-%{cfg.buildcfg}"
warnings "Off"
configurations {
"debug",
"release",
}
platforms {
"x86",
"x64"
}
filter "platforms:x86"
architecture "x86"
defines "CPU_32BIT"
filter {}
filter "platforms:x64"
architecture "x86_64"
defines "CPU_64BIT"
filter {}
buildoptions "/std:c++latest"
buildoptions "/Zc:strictStrings-"
systemversion "latest"
symbols "On"
editandcontinue "Off"
flags {
"NoIncrementalLink",
"NoMinimalRebuild",
"MultiProcessorCompile",
"No64BitChecks"
}
filter "configurations:debug"
optimize "Debug"
defines {
"DEBUG",
"_DEBUG",
}
filter {}
filter "configurations:release"
optimize "Full"
defines {
"NDEBUG",
}
flags {
"FatalCompileWarnings",
}
filter{}
includedirs {
ProjectFolder()
}
startproject "ZoneTool"
-- ========================
-- Dependencies
-- ========================
include "dep/libtomcrypt.lua"
include "dep/libtommath.lua"
include "dep/steam_api.lua"
include "dep/zlib.lua"
include "dep/zstd.lua"
-- All projects here should be in the thirdparty folder
group "thirdparty"
libtommath:project()
libtomcrypt:project()
zlib:project()
zstd:project()
-- Reset group
group ""
-- ========================
-- Projects
-- ========================
include "src/ImgPak.lua"
include "src/ZoneTool.lua"
include "src/ZoneUtils.lua"
include "src/IW3.lua"
include "src/IW4.lua"
include "src/IW5.lua"
include "src/CODO.lua"
ImgPak:project()
ZoneTool:project()
ZoneUtils:project()
IW3:project()
IW4:project()
IW5:project()
CODO:project()