mirror of
https://github.com/wren-lang/wren.git
synced 2026-01-11 22:28:45 +01:00
With the latest XCode it looks like 32 bit builds are deprecated. This causes build warnings which fail the libuv build. This commit remvoves the 32 bit arch from the macOS libuv build, and stops building the 32 build on Travis.
94 lines
2.2 KiB
Python
Executable File
94 lines
2.2 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
# Runs GYP to generate the right project then uses that to build libuv.
|
|
|
|
from __future__ import print_function
|
|
|
|
import os
|
|
import platform
|
|
import shutil
|
|
import sys
|
|
|
|
from util import ensure_dir, python2_binary, run
|
|
|
|
LIB_UV_VERSION = "v1.10.0"
|
|
LIB_UV_DIR = "deps/libuv"
|
|
|
|
|
|
def build_libuv_mac():
|
|
# Create the XCode project.
|
|
run([
|
|
python2_binary(), LIB_UV_DIR + "/gyp_uv.py", "-f", "xcode"
|
|
])
|
|
|
|
# Compile it.
|
|
# TODO: Support debug builds too.
|
|
run([
|
|
"xcodebuild",
|
|
# Build a 32-bit + 64-bit universal binary:
|
|
"ARCHS=x86_64", "ONLY_ACTIVE_ARCH=NO",
|
|
"BUILD_DIR=out",
|
|
"-project", LIB_UV_DIR + "/uv.xcodeproj",
|
|
"-configuration", "Release",
|
|
"-target", "libuv"
|
|
])
|
|
|
|
|
|
def build_libuv_linux(arch):
|
|
# Set up the Makefile to build for the right architecture.
|
|
args = [python2_binary(), "gyp_uv.py", "-f", "make"]
|
|
if arch == "-32":
|
|
args.append("-Dtarget_arch=ia32")
|
|
elif arch == "-64":
|
|
args.append("-Dtarget_arch=x64")
|
|
|
|
run(args, cwd=LIB_UV_DIR)
|
|
run(["make", "-C", "out", "BUILDTYPE=Release", "libuv"], cwd=LIB_UV_DIR)
|
|
|
|
|
|
def build_libuv_windows(arch):
|
|
args = ["cmd", "/c", "vcbuild.bat", "release", "vs2017"]
|
|
if arch == "-32":
|
|
args.append("x86")
|
|
elif arch == "-64":
|
|
args.append("x64")
|
|
run(args, cwd=LIB_UV_DIR)
|
|
|
|
|
|
def build_libuv(arch, out):
|
|
if platform.system() == "Darwin":
|
|
build_libuv_mac()
|
|
elif platform.system() == "Linux":
|
|
build_libuv_linux(arch)
|
|
elif platform.system() == "Windows":
|
|
build_libuv_windows(arch)
|
|
else:
|
|
print("Unsupported platform: " + platform.system())
|
|
sys.exit(1)
|
|
|
|
# Copy the build library to the build directory for Mac and Linux where we
|
|
# support building for multiple architectures.
|
|
if platform.system() != "Windows":
|
|
ensure_dir(os.path.dirname(out))
|
|
shutil.copyfile(
|
|
os.path.join(LIB_UV_DIR, "out", "Release", "libuv.a"), out)
|
|
|
|
|
|
def main(args):
|
|
expect_usage(len(args) >= 1 and len(args) <= 2)
|
|
|
|
arch = "" if len(args) < 2 else args[1]
|
|
out = os.path.join("build", "libuv" + arch + ".a")
|
|
|
|
build_libuv(arch, out)
|
|
|
|
|
|
def expect_usage(condition):
|
|
if (condition): return
|
|
|
|
print("Usage: build_libuv.py [-32|-64]")
|
|
sys.exit(1)
|
|
|
|
|
|
main(sys.argv)
|