Package DLLs correctly for Windows cross builds.

This commit is contained in:
Josh Matthews 2019-05-30 13:04:45 -04:00
parent 8ae287375f
commit 96c51cf173
4 changed files with 11 additions and 4 deletions

View file

@ -358,14 +358,17 @@ def android_x86_wpt():
def windows_x86():
return (
windows_build_task("Dev build", package=False, arch="x86")
windows_build_task("Dev build", arch="x86")
.with_treeherder("Windows x86")
.with_env(**{
"VCVARSALL_PATH": "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\VC\\Auxiliary\\Build"
})
.with_script(
"python mach build --dev --target i686-pc-windows-msvc",
"python mach package --dev --target i686-pc-windows-msvc",
)
.with_artifacts("repo/target/i686-pc-windows-msvc/debug/msi/Servo.exe",
"repo/target/i686-pc-windows-msvc/debug/msi/Servo.zip")
.find_or_create("build.windows_x86_dev." + CONFIG.task_id())
)

View file

@ -615,7 +615,8 @@ class MachCommands(CommandBase):
return rv
if sys.platform == "win32":
servo_exe_dir = path.join(base_path, "debug" if dev else "release")
servo_exe_dir = os.path.dirname(self.get_binary_path(release, dev, target=target))
assert os.path.exists(servo_exe_dir)
msvc_x64 = "64" if "x86_64" in (target or host_triple()) else ""
# on msvc builds, use editbin to change the subsystem to windows, but only
@ -629,6 +630,7 @@ class MachCommands(CommandBase):
servo_exe_dir)
# Search for the generated nspr4.dll
build_path = path.join(servo_exe_dir, "build")
assert os.path.exists(build_path)
def package_generated_shared_libraries(libs, build_path, servo_exe_dir):
for root, dirs, files in os.walk(build_path):

View file

@ -367,7 +367,7 @@ class CommandBase(object):
def get_gstreamer_path(self):
return path.join(self.context.topdir, "support", "linux", "gstreamer", "gst")
def get_binary_path(self, release, dev, android=False, magicleap=False):
def get_binary_path(self, release, dev, target=None, android=False, magicleap=False):
# TODO(autrilla): this function could still use work - it shouldn't
# handle quitting, or printing. It should return the path, or an error.
base_path = self.get_target_dir()
@ -380,6 +380,8 @@ class CommandBase(object):
elif android:
base_path = path.join(base_path, "android", self.config["android"]["target"])
binary_name = "libsimpleservo.so"
elif target:
base_path = path.join(base_path, target)
release_path = path.join(base_path, "release", binary_name)
dev_path = path.join(base_path, "debug", binary_name)

View file

@ -219,7 +219,7 @@ class PackageCommands(CommandBase):
if magicleap:
target = "aarch64-linux-android"
env = self.build_env(target=target)
binary_path = self.get_binary_path(release, dev, android=android, magicleap=magicleap)
binary_path = self.get_binary_path(release, dev, target=target, android=android, magicleap=magicleap)
dir_to_root = self.get_top_dir()
target_dir = path.dirname(binary_path)
if magicleap: