Windows: configure LuaRocks to use correct cmake generator
This commit is contained in:
parent
9d65a349c9
commit
882e414c0d
47
hererocks.py
47
hererocks.py
@ -449,6 +449,20 @@ class Lua(Program):
|
|||||||
self.identifiers["location"] = opts.location
|
self.identifiers["location"] = opts.location
|
||||||
self.identifiers["major version"] = self.major_version
|
self.identifiers["major version"] = self.major_version
|
||||||
|
|
||||||
|
if using_cl():
|
||||||
|
cl_help = get_output("cl")
|
||||||
|
cl_version = re.search(r"(1[56789])\.\d+", cl_help)
|
||||||
|
cl_arch = re.search(r"(x(?:86)|(?:64))", cl_help)
|
||||||
|
|
||||||
|
if not cl_version or not cl_arch:
|
||||||
|
sys.exit("Error: couldn't determine cl.exe version and architecture")
|
||||||
|
|
||||||
|
cl_version = cl_version.group(1)
|
||||||
|
cl_arch = cl_arch.group(1)
|
||||||
|
|
||||||
|
self.identifiers["vs year"] = cl_version_to_vs_year[cl_version]
|
||||||
|
self.identifiers["vs arch"] = cl_arch
|
||||||
|
|
||||||
def add_options_to_version_suffix(self):
|
def add_options_to_version_suffix(self):
|
||||||
options = []
|
options = []
|
||||||
|
|
||||||
@ -943,6 +957,19 @@ class LuaRocks(Program):
|
|||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_cmake_generator(lua_identifiers):
|
||||||
|
lua_target = lua_identifiers["target"]
|
||||||
|
|
||||||
|
if lua_target == "mingw":
|
||||||
|
return "MinGW Makefiles"
|
||||||
|
elif using_cl():
|
||||||
|
vs_year = lua_identifiers["vs year"]
|
||||||
|
vs_arch = lua_identifiers["vs arch"]
|
||||||
|
vs_short_version = vs_year_to_version[vs_year][:-2]
|
||||||
|
return "Visual Studio {} 20{}{}".format(
|
||||||
|
vs_short_version, vs_year, "Win64" if vs_arch == "x64" else "x86")
|
||||||
|
|
||||||
def build(self):
|
def build(self):
|
||||||
lua_identifiers = self.all_identifiers.get("lua", self.all_identifiers.get("LuaJIT"))
|
lua_identifiers = self.all_identifiers.get("lua", self.all_identifiers.get("LuaJIT"))
|
||||||
|
|
||||||
@ -979,6 +1006,16 @@ class LuaRocks(Program):
|
|||||||
if os.path.exists(script_path):
|
if os.path.exists(script_path):
|
||||||
shutil.copy(script_path, os.path.join(opts.location, "bin"))
|
shutil.copy(script_path, os.path.join(opts.location, "bin"))
|
||||||
break
|
break
|
||||||
|
|
||||||
|
cmake_generator = self.get_cmake_generator(lua_identifiers)
|
||||||
|
|
||||||
|
if cmake_generator is not None:
|
||||||
|
config_path = os.path.join(
|
||||||
|
opts.location, "luarocks", "config-{}.lua".format(lua_identifiers["major version"]))
|
||||||
|
config_h = open(config_path, "ab")
|
||||||
|
config_h.write(b'\r\ncmake_generator = "{}"\r\n'.format(cmake_generator.encode("UTF-8")))
|
||||||
|
config_h.close()
|
||||||
|
|
||||||
else:
|
else:
|
||||||
print("Building LuaRocks" + self.version_suffix)
|
print("Building LuaRocks" + self.version_suffix)
|
||||||
run("./configure", "--prefix=" + opts.location,
|
run("./configure", "--prefix=" + opts.location,
|
||||||
@ -997,7 +1034,7 @@ class LuaRocks(Program):
|
|||||||
def get_manifest_name():
|
def get_manifest_name():
|
||||||
return os.path.join(opts.location, "hererocks.manifest")
|
return os.path.join(opts.location, "hererocks.manifest")
|
||||||
|
|
||||||
manifest_version = 2
|
manifest_version = 3
|
||||||
|
|
||||||
def get_installed_identifiers():
|
def get_installed_identifiers():
|
||||||
if not os.path.exists(get_manifest_name()):
|
if not os.path.exists(get_manifest_name()):
|
||||||
@ -1020,6 +1057,14 @@ def save_installed_identifiers(all_identifiers):
|
|||||||
with open(get_manifest_name(), "w") as manifest_h:
|
with open(get_manifest_name(), "w") as manifest_h:
|
||||||
json.dump(all_identifiers, manifest_h)
|
json.dump(all_identifiers, manifest_h)
|
||||||
|
|
||||||
|
cl_version_to_vs_year = {
|
||||||
|
"15": "08",
|
||||||
|
"16": "10",
|
||||||
|
"17": "12",
|
||||||
|
"18": "13",
|
||||||
|
"19": "15"
|
||||||
|
}
|
||||||
|
|
||||||
vs_year_to_version = {
|
vs_year_to_version = {
|
||||||
"08": "9.0",
|
"08": "9.0",
|
||||||
"10": "10.0",
|
"10": "10.0",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user