-
Notifications
You must be signed in to change notification settings - Fork 0
/
premake5.lua
71 lines (53 loc) · 1.87 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
PROJECT_ROOT_DIR = path.getabsolute("")
workspace "vGUI"
configurations { "Debug", "Release", "Production"}
platforms { "x32", "x64" }
language "C++"
objdir "build/bin/%{cfg.platform}_%{cfg.buildcfg}"
location ("build/" .. _ACTION)
filter "platforms:x32"
architecture "x32"
filter "platforms:x64"
architecture "x64"
filter "system:Windows"
defines { "PLATFORM_WIN" }
filter { "system:Windows" and "platforms:x32" }
defines { "PLATFORM_WIN32" }
filter { "system:Windows" and "platforms:x64" }
defines { "PLATFORM_WIN64" }
-- No winsdk workaround is needed any more in the latest build of premake5
-- please update your premake5 to at least (premake-5.0.0-alpha13) for this functionality to work
filter {"system:windows", "action:vs*"}
systemversion("latest")
filter "system:linux"
toolset "clang"
-- These settings will apply to the entire workspace or project (whichever is active)
filter {}
-- Each configuration has its own obj file dir
objdir ("build/" .. _ACTION .. "/obj")
-- Disable precompiled headers
flags { "NoPCH", "NoManifest" }
cppdialect "C++17"
characterset "Unicode"
filter "configurations:Debug"
defines { "_DEBUG", "VGUI_BUILD_DEBUG" }
symbols "On"
filter "configurations:Release"
defines { "NDEBUG", "VGUI_BUILD_RELEASE"}
symbols "On"
optimize "On"
filter "configurations:Production"
defines { "VGUI_BUILD_PRODUCTION" }
symbols "Off"
optimize "Full"
-- Enable Full symbols for Debug and Release builds if using VS2017
filter { "action:vs2017" and "configurations:Debug" or "configurations:Release" }
symbols "Full" -- Visual Studio 2017 or newer
-- Build vgui
include("vgui/build_vgui.lua")
-- Build 3rdparty libraries
include("3rdparty/build_3rdparty.lua")
-- Build Example project
if next(os.matchfiles("example/build_example.lua")) then
include("example/build_example.lua")
end