-
-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathxmake.lua
More file actions
executable file
·135 lines (116 loc) · 3.49 KB
/
Copy pathxmake.lua
File metadata and controls
executable file
·135 lines (116 loc) · 3.49 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
130
131
132
133
134
set_project("ModelExtras")
add_rules("mode.debug", "mode.releasedbg", "mode.release")
set_defaultmode("release")
local PLUGIN_SDK_DIR = os.getenv("PLUGIN_SDK_DIR")
local GAME_DIR = os.getenv("GTASA_DIR") or "D:/Games/GTA San Andreas"
target("ModelExtras")
set_kind("shared")
set_extension(".asi")
set_languages("c++latest")
set_arch("x86")
set_plat("windows")
set_filename("ModelExtras.asi")
set_pcxxheader("src/pch.h")
add_defines(
"PLUGIN_SGV_10US",
"MODELEXTRAS_DEV",
"GTASA",
"RW",
"NOMINMAX",
"WIN32_LEAN_AND_MEAN",
"_USE_MATH_DEFINES"
)
if PLUGIN_SDK_DIR then
add_includedirs(
PLUGIN_SDK_DIR,
path.join(PLUGIN_SDK_DIR, "plugin_sa"),
path.join(PLUGIN_SDK_DIR, "plugin_sa", "game_sa"),
path.join(PLUGIN_SDK_DIR, "plugin_sa", "game_sa", "enums"),
path.join(PLUGIN_SDK_DIR, "plugin_sa", "game_sa", "meta"),
path.join(PLUGIN_SDK_DIR, "plugin_sa", "game_sa", "rw"),
path.join(PLUGIN_SDK_DIR, "shared"),
path.join(PLUGIN_SDK_DIR, "shared", "game"),
path.join(PLUGIN_SDK_DIR, "injector"),
path.join(PLUGIN_SDK_DIR, "safetyhook")
)
add_linkdirs(
path.join(PLUGIN_SDK_DIR, "output", "lib")
)
end
add_includedirs(
".",
"include",
"include/coreutils",
"src",
"src/features"
)
add_files(
"src/**.cpp"
)
add_syslinks(
"dwmapi",
"shell32",
"gdi32",
"user32",
"advapi32"
)
set_warnings("all")
add_cxflags(
"/permissive-",
"/Zc:__cplusplus",
"/Zc:preprocessor",
"/utf-8",
"/EHsc",
"/Gw",
"/Zc:threadSafeInit-",
"/MP"
)
add_shflags(
"/SAFESEH:NO",
"/FORCE:MULTIPLE",
"/LARGEADDRESSAWARE"
)
if is_mode("debug") then
add_links("plugin_d")
set_runtimes("MTd")
set_optimize("none")
set_symbols("debug")
else
add_links("plugin")
set_runtimes("MT")
set_optimize("fastest")
set_symbols("hidden")
end
after_build(function (target)
if GAME_DIR and os.isdir(GAME_DIR) then
-- Copy target (.asi)
os.cp(target:targetfile(), GAME_DIR)
print(">> Deployed .asi to " .. GAME_DIR)
-- Copy debug symbols (.pdb) if available
local symbolfile = target:symbolfile()
if symbolfile and os.isfile(symbolfile) then
os.cp(symbolfile, GAME_DIR)
print(">> Deployed .pdb to " .. GAME_DIR)
end
-- Copy resources (ModelExtras folder, ModelExtras.ini)
if os.isdir("resource/dist") then
os.cp("resource/dist/*", GAME_DIR)
print(">> Deployed resources to " .. GAME_DIR)
end
end
end)
task("dev")
set_menu {
usage = "xmake dev [options]",
description = "Configure and build ModelExtras",
options = {
{'m', "mode", "kv", "debug", "Set build mode: debug, release, releasedbg"}
}
}
on_run(function ()
import("core.base.option")
local mode = option.get("mode") or "debug"
os.execv("xmake", {"f", "-p", "windows", "-a", "x86", "-m", mode, "-y"})
os.execv("xmake", {})
os.execv("xmake", {"project", "-k", "compile_commands"})
end)