Bug 1721864 - Add msix-packaging toolchain build. r=bhearsum,firefox-build-system-reviewers,glandium

Differential Revision: https://phabricator.services.mozilla.com/D119669
This commit is contained in:
Ben Hearsum 2021-08-05 02:58:15 +00:00
parent be04781fb4
commit 25d7a66e88
4 changed files with 57 additions and 0 deletions

View File

@ -684,3 +684,10 @@ gnumake:
artifact-name: make.tar.zst
strip-components: 1
add-prefix: make/
msix-packaging:
description: Microsoft msix-packaging
fetch:
type: git
repo: https://github.com/mozilla/msix-packaging
revision: 8164b7ac5a67688e18fa2497fb31ba13ce9bfb15

View File

@ -134,6 +134,21 @@ linux64-upx:
script: build-upx.sh
toolchain-artifact: public/build/upx.tar.xz
linux64-msix-packaging:
description: "msix-packaging build"
treeherder:
symbol: TL(msix-packaging)
tier: 1
run:
script: build-msix-packaging.sh
toolchain-artifact: public/build/msix-packaging.tar.zst
fetches:
fetch:
- msix-packaging
toolchain:
- linux64-clang
- linux64-toolchain-sysroot
linux64-custom-v8:
description: "Custom v8 build"
treeherder:

View File

@ -78,3 +78,5 @@ linux64-toolchain-sysroot:
- libcurl4-openssl-dev
- libssl-dev
- libbz2-dev
# For msix-package
- libicu-dev

View File

@ -0,0 +1,33 @@
#!/bin/bash
set -x -e -v
cd $MOZ_FETCHES_DIR/msix-packaging
export PATH=$MOZ_FETCHES_DIR/clang/bin:$PATH
# makelinux.sh invokes `make` with no parallelism. These jobs run on hosts with
# 16+ vCPUs; let's try to take advantage.
export MAKEFLAGS=-j16
./makelinux.sh --pack -- \
-DCMAKE_SYSROOT=$MOZ_FETCHES_DIR/sysroot \
-DCMAKE_EXE_LINKER_FLAGS_INIT='-fuse-ld=lld -Wl,-rpath=\$ORIGIN' \
-DCMAKE_SHARED_LINKER_FLAGS_INIT='-fuse-ld=lld -Wl,-rpath=\$ORIGIN' \
-DCMAKE_SKIP_BUILD_RPATH=TRUE
mkdir msix-packaging
cp .vs/bin/makemsix msix-packaging
cp .vs/lib/libmsix.so msix-packaging
# The `msix-packaging` tool links against libicu dynamically. It would be
# better to link statically, but it's not easy to achieve. This copies the
# needed libicu libraries from the sysroot, and the rpath settings above allows
# them to be loaded, which means the consuming environment doesn't need to
# install libicu directly.
LD_LIBRARY_PATH=$MOZ_FETCHES_DIR/sysroot/usr/lib/x86_64-linux-gnu \
ldd msix-packaging/libmsix.so | awk '$3 ~ /libicu/ {print $3}' | xargs -I '{}' cp '{}' msix-packaging
tar caf msix-packaging.tar.zst msix-packaging
mkdir -p $UPLOAD_DIR
cp msix-packaging.tar.zst $UPLOAD_DIR