-
Notifications
You must be signed in to change notification settings - Fork 41
/
premake5.lua
123 lines (102 loc) · 2.15 KB
/
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
117
118
119
120
121
122
123
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()