feat(servo): isolate profiles with hardware sidecars
This commit is contained in:
@@ -1,19 +1,47 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
binary_path="${repo_root}/target/debug/ely_app"
|
||||
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd -P)"
|
||||
cd "${repo_root}"
|
||||
target_dir="${CARGO_TARGET_DIR:-${repo_root}/target}"
|
||||
case "${target_dir}" in
|
||||
/*|[A-Za-z]:[\\/]*) ;;
|
||||
*) target_dir="${repo_root}/${target_dir}" ;;
|
||||
esac
|
||||
source "${repo_root}/scripts/release_build_env.sh"
|
||||
ely_configure_release_build_env "${repo_root}" "${target_dir}"
|
||||
unset CARGO_BUILD_TARGET
|
||||
binary_path="${target_dir}/release/ely_app"
|
||||
sidecar_path="${target_dir}/release/ely_servo_sidecar"
|
||||
icon_path="${repo_root}/generated-icons/macos/AppIcon.icns"
|
||||
bundle_root="${repo_root}/target/macos/ELY Browser.app"
|
||||
contents_dir="${bundle_root}/Contents"
|
||||
macos_dir="${contents_dir}/MacOS"
|
||||
resources_dir="${contents_dir}/Resources"
|
||||
|
||||
cargo build -p ely_app
|
||||
cargo build --release --locked --manifest-path "${repo_root}/Cargo.toml" --target-dir "${target_dir}" -p ely_app
|
||||
cargo build --release --locked --manifest-path "${repo_root}/Cargo.toml" --target-dir "${target_dir}" -p ely_servo_host --features servo-engine,hardware-render --bin ely_servo_sidecar
|
||||
|
||||
rm -rf "${bundle_root}"
|
||||
mkdir -p "${macos_dir}" "${resources_dir}"
|
||||
cp "${repo_root}/packaging/macos/Info.plist" "${contents_dir}/Info.plist"
|
||||
cp "${icon_path}" "${resources_dir}/AppIcon.icns"
|
||||
cp "${binary_path}" "${macos_dir}/ely_app"
|
||||
cp "${sidecar_path}" "${macos_dir}/ely_servo_sidecar"
|
||||
chmod 755 "${macos_dir}/ely_app"
|
||||
chmod 755 "${macos_dir}/ely_servo_sidecar"
|
||||
"${repo_root}/scripts/verify_release_artifacts.sh" \
|
||||
"${macos_dir}/ely_app" \
|
||||
"${macos_dir}/ely_servo_sidecar"
|
||||
codesign_identity="${ELY_CODESIGN_IDENTITY:--}"
|
||||
codesign --force --sign "${codesign_identity}" --timestamp=none "${macos_dir}/ely_app"
|
||||
codesign --force --sign "${codesign_identity}" --timestamp=none "${macos_dir}/ely_servo_sidecar"
|
||||
codesign --force --sign "${codesign_identity}" --timestamp=none "${bundle_root}"
|
||||
codesign --verify --deep --strict "${bundle_root}"
|
||||
|
||||
[[ -x "${macos_dir}/ely_app" ]] || { echo "missing app executable in ${macos_dir}" >&2; exit 1; }
|
||||
[[ -x "${macos_dir}/ely_servo_sidecar" ]] || { echo "missing sidecar executable in ${macos_dir}" >&2; exit 1; }
|
||||
[[ -f "${resources_dir}/AppIcon.icns" ]] || { echo "missing app icon in ${resources_dir}" >&2; exit 1; }
|
||||
[[ ! -e "${resources_dir}/ely_servo_sidecar" ]] || { echo "sidecar must be placed in ${macos_dir}" >&2; exit 1; }
|
||||
|
||||
echo "${bundle_root}"
|
||||
|
||||
Reference in New Issue
Block a user