Add vs_32 and vs_64 targets
This commit is contained in:
parent
b15e6db3a4
commit
efc8301f5d
19
hererocks.py
19
hererocks.py
@ -1147,17 +1147,18 @@ def main(argv=None):
|
|||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--target", help="Select how to build Lua. "
|
"--target", help="Select how to build Lua. "
|
||||||
"Windows-specific targets (mingw, vs and vsXX_YY) also affect LuaJIT. "
|
"Windows-specific targets (mingw, vs and vsXX_YY) also affect LuaJIT. "
|
||||||
"vs and vsXX_YY targets compile using cl.exe. "
|
"vs, vs_XX and vsXX_YY targets compile using cl.exe. "
|
||||||
"vsXX_YY targets (such as vs15_32) always set up Visual Studio 20XX (YYbit). "
|
"vsXX_YY targets (such as vs15_32) always set up Visual Studio 20XX (YYbit). "
|
||||||
"vs target sets up latest available Visual Studio with host architecture "
|
"vs target sets up latest available Visual Studio with host architecture "
|
||||||
"unless cl.exe is already in PATH. "
|
"unless cl.exe is already in PATH. vs_32 and vs_64 targets do the same but use "
|
||||||
|
" fixed architecture, while vs target falls back to x86 for VS 2008 and 2010."
|
||||||
"macosx target uses cc and the remaining targets use gcc, passing compiler "
|
"macosx target uses cc and the remaining targets use gcc, passing compiler "
|
||||||
"and linker flags the same way Lua's Makefile does when running make <target>.",
|
"and linker flags the same way Lua's Makefile does when running make <target>.",
|
||||||
choices=[
|
choices=[
|
||||||
"linux", "macosx", "freebsd", "mingw", "posix", "generic", "mingw", "vs",
|
"linux", "macosx", "freebsd", "mingw", "posix", "generic", "mingw", "vs", "vs_32", "vs_64",
|
||||||
"vs08_32", "vs08_64", "vs10_32", "vs10_64", "vs12_32", "vs12_64",
|
"vs08_32", "vs08_64", "vs10_32", "vs10_64", "vs12_32", "vs12_64",
|
||||||
"vs13_32", "vs13_64", "vs15_32", "vs15_64"
|
"vs13_32", "vs13_64", "vs15_32", "vs15_64"
|
||||||
], metavar="{linux,macosx,freebsd,mingw,posix,generic,mingw,vs,vsXX_YY}",
|
], metavar="{linux,macosx,freebsd,mingw,posix,generic,mingw,vs,vs_XX,vsXX_YY}",
|
||||||
default=get_default_lua_target())
|
default=get_default_lua_target())
|
||||||
parser.add_argument("--no-readline", help="Don't use readline library when building standard Lua.",
|
parser.add_argument("--no-readline", help="Don't use readline library when building standard Lua.",
|
||||||
action="store_true", default=False)
|
action="store_true", default=False)
|
||||||
@ -1199,16 +1200,20 @@ def main(argv=None):
|
|||||||
# before recursively calling hererocks, passing arguments through a temporary file using
|
# before recursively calling hererocks, passing arguments through a temporary file using
|
||||||
# --actual-argv-file because passing special characters like '^' as an argument to a batch file is not fun.
|
# --actual-argv-file because passing special characters like '^' as an argument to a batch file is not fun.
|
||||||
# If using vs target, do nothing if cl.exe is in PATH and setup latest possible VS with host arch otherwise.
|
# If using vs target, do nothing if cl.exe is in PATH and setup latest possible VS with host arch otherwise.
|
||||||
|
# vs_32 and vs_64 targets are same as vs but force an arch.
|
||||||
if (opts.lua or opts.luajit) and os.name == "nt" and argv is None and using_cl():
|
if (opts.lua or opts.luajit) and os.name == "nt" and argv is None and using_cl():
|
||||||
if opts.target == "vs":
|
if opts.target in ["vs", "vs_32", "vs_64"]:
|
||||||
if program_exists("cl"):
|
if program_exists("cl"):
|
||||||
print("Using cl.exe found in PATH.")
|
print("Using cl.exe found in PATH.")
|
||||||
else:
|
else:
|
||||||
arch = "x64" if platform.machine().endswith("64") else "x86"
|
arch_bits = platform.machine() if opts.target == "vs" else opts.target
|
||||||
|
arch = "x64" if arch_bits.endswith("64") else "x86"
|
||||||
vs_versions = ["14.0", "12.0", "11.0", "10.0", "9.0"]
|
vs_versions = ["14.0", "12.0", "11.0", "10.0", "9.0"]
|
||||||
|
|
||||||
for vs_version in vs_versions:
|
for vs_version in vs_versions:
|
||||||
setup_vs_and_rerun(vs_version, "x86" if vs_version in ["9.0", "10.0"] else arch)
|
setup_vs_and_rerun(
|
||||||
|
vs_version,
|
||||||
|
"x86" if opts.target == "vs" and vs_version in ["9.0", "10.0"] else arch)
|
||||||
|
|
||||||
sys.exit("Error: couldn't set up MSVC toolchain")
|
sys.exit("Error: couldn't set up MSVC toolchain")
|
||||||
else:
|
else:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user