12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- 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)
|