package An official xmake package repository
https://xrepo.xmake.io/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.8 KiB
49 lines
1.8 KiB
rule("xp") |
|
on_config(function (target) |
|
local objectfile = "YY_Thunks_for_WinXP.obj" |
|
local thunks = target:pkg("yy-thunks") |
|
if thunks then |
|
local installdir = thunks:installdir() |
|
table.insert(target:objectfiles(), path.join(installdir, "lib", objectfile)) |
|
end |
|
end) |
|
|
|
rule("vista") |
|
on_config(function (target) |
|
local objectfile = "YY_Thunks_for_Vista.obj" |
|
local thunks = target:pkg("yy-thunks") |
|
if thunks then |
|
local installdir = thunks:installdir() |
|
table.insert(target:objectfiles(), path.join(installdir, "lib", objectfile)) |
|
end |
|
end) |
|
|
|
rule("2k") |
|
on_config(function (target) |
|
if not target:is_arch("x86") then |
|
raise("Win2K only supports x86 architecture") |
|
end |
|
|
|
local objectfile = "YY_Thunks_for_Win2K.obj" |
|
local thunks = target:pkg("yy-thunks") |
|
if thunks then |
|
local installdir = thunks:installdir() |
|
table.insert(target:objectfiles(), path.join(installdir, "lib", objectfile)) |
|
end |
|
end) |
|
|
|
after_link(function (target, opt) |
|
import("core.project.depend") |
|
import("lib.detect.find_tool") |
|
import("utils.progress") |
|
|
|
depend.on_changed(function() |
|
local msvc = target:toolchain("msvc") |
|
local editbin = assert(find_tool("editbin", {envs = msvc:runenvs()}), "editbin not found!") |
|
|
|
-- osversion -> Major/Minor OperatingSystemVersion |
|
-- subsystem -> Major/Minor SubsystemVersion |
|
os.iorunv(editbin.program, {"/osversion:5.0", "/subsystem:console,5.0", target:targetfile()}) |
|
progress.show(opt.progress, "${color.build.target}editing.$(mode) %s", target:filename()) |
|
end, {files = {target:targetfile()}}) |
|
end)
|
|
|