-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathpremake5.lua
More file actions
129 lines (117 loc) · 2.85 KB
/
premake5.lua
File metadata and controls
129 lines (117 loc) · 2.85 KB
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
124
125
126
127
128
129
-- Makes a path relative to the folder containing this script file.
ROOT_PATH = function(path)
return string.format("%s/%s", _MAIN_SCRIPT_DIR, path)
end
-- Global project variables
PROJECT_DATA =
{
COMMON =
{
NAME = "Common",
PATH = ROOT_PATH "common/",
PREMAKE_PATH = ROOT_PATH "common/common_premake5.lua"
},
ENGINE =
{
NAME = "Engine",
PATH = ROOT_PATH "Engine/",
PREMAKE_PATH = ROOT_PATH "Engine/engine_premake5.lua"
},
NETWORK_LIBRARY =
{
NAME = "NetworkLibrary",
PATH = ROOT_PATH "NetworkLibrary/",
PREMAKE_PATH = ROOT_PATH "NetworkLibrary/network_library_premake5.lua"
},
CLIENT_GAME =
{
NAME = "ClientGame",
PATH = ROOT_PATH "DemoGame/",
PREMAKE_PATH = ROOT_PATH "DemoGame/client_game_premake5.lua"
},
SERVER_GAME =
{
NAME = "ServerGame",
PATH = ROOT_PATH "DemoGame/",
PREMAKE_PATH = ROOT_PATH "DemoGame/server_game_premake5.lua"
},
LAUNCHER_GAME =
{
NAME = "Launcher",
PATH = ROOT_PATH "DemoGame/",
PREMAKE_PATH = ROOT_PATH "DemoGame/launcher_game_premake5.lua"
},
TEST_GAME =
{
NAME = "TestDemoGame",
PATH = ROOT_PATH "TestDemoGame/",
PREMAKE_PATH = ROOT_PATH "TestDemoGame/test_game_premake5.lua"
},
TEST_COMMON =
{
NAME = "TestCommon",
PATH = ROOT_PATH "test_common/",
PREMAKE_PATH = ROOT_PATH "test_common/test_common_premake5.lua"
},
TEST_ENGINE =
{
NAME = "TestEngine",
PATH = ROOT_PATH "test_engine/",
PREMAKE_PATH = ROOT_PATH "test_engine/test_engine_premake5.lua"
}
}
-- Global workspace variables
WORKSPACE_DATA =
{
NAME = "NetworkLibrary",
STARTUP_PROJECT = PROJECT_DATA.LAUNCHER_GAME.NAME
}
workspace (WORKSPACE_DATA.NAME)
architecture "x64"
cppdialect "C++17" -- Entt requires C++ to be at least in version 17
startproject(WORKSPACE_DATA.STARTUP_PROJECT)
editandcontinue "Off" -- Disable Edit code while debugging
configurations
{
"Debug",
"Release"
}
flags
{
"MultiProcessorCompile",
"NoImplicitLink",
"NoIncrementalLink",
"NoManifest",
"RelativeLinks",
"UndefinedIdentifiers"
}
defines
{
"_HAS_EXCEPTIONS=0"
}
filter "configurations:Debug"
defines
{
"DEBUG"
}
symbols "On" -- Enable symbols for more debugging info
--optimize "Off"
filter "configurations:Release"
symbols "Off" -- Disable symbols for no debugging info
optimize "On"
filter "files:not vendor/**"
flags
{
"FatalWarnings" -- Treat certain Warnings as Errors in our own code, and not third party code
}
include (PROJECT_DATA.COMMON.PREMAKE_PATH)
include (PROJECT_DATA.ENGINE.PREMAKE_PATH)
include (PROJECT_DATA.NETWORK_LIBRARY.PREMAKE_PATH)
group "DemoGame"
include (PROJECT_DATA.CLIENT_GAME.PREMAKE_PATH)
include (PROJECT_DATA.SERVER_GAME.PREMAKE_PATH)
include (PROJECT_DATA.LAUNCHER_GAME.PREMAKE_PATH)
group "Tests"
include (PROJECT_DATA.TEST_GAME.PREMAKE_PATH)
include (PROJECT_DATA.TEST_COMMON.PREMAKE_PATH)
include (PROJECT_DATA.TEST_ENGINE.PREMAKE_PATH)