mirror of
https://github.com/signalapp/libsignal.git
synced 2024-09-20 03:52:17 +02:00
36c6eebc0e
- For local development, this built the Rust library automatically when you invoked `yarn install`, whether you wanted it to or not. - For the published package, this either did nothing (if the correct prebuilds were present) or produced a weird error (if they weren't). You can't use the published package without prebuilds, so maybe this was useful, but you'd find that out pretty quickly when loading the module failed. - If you used the "link" feature to build Signal Desktop with a local checkout of libsignal, this would build the Rust library automatically when you `install`ed in the *Desktop* directory, whether you wanted it to or not. - If you pointed Signal Desktop at a local checkout by copy instead of link, this would just fail, because the Rust parts wouldn't be copied with it. Overall, it's simpler to just have this step be explicit.
38 lines
1.2 KiB
Bash
Executable File
38 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# shellcheck disable=SC1004
|
|
|
|
#
|
|
# Copyright 2022 Signal Messenger, LLC.
|
|
# SPDX-License-Identifier: AGPL-3.0-only
|
|
#
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR=$(dirname "$0")
|
|
cd "${SCRIPT_DIR}"/..
|
|
|
|
DOCKER_IMAGE=libsignal-node-builder
|
|
|
|
IS_TTY=""
|
|
if [[ -t 0 ]]; then
|
|
IS_TTY="yes"
|
|
fi
|
|
|
|
docker build --build-arg "UID=${UID:-501}" --build-arg "GID=${GID:-501}" --build-arg "NODE_VERSION=$(cat .nvmrc)" -t ${DOCKER_IMAGE} -f node/Dockerfile .
|
|
|
|
# We build both architectures in the same run action to save on intermediates
|
|
# (including downloading dependencies)
|
|
# We run `yarn install` to make sure the correct prebuildify version is used.
|
|
docker run ${IS_TTY:+ -it} --init --rm -v "${PWD}":/home/libsignal/src ${DOCKER_IMAGE} sh -c '
|
|
cd ~/src/node &&
|
|
npx yarn install --frozen-lockfile &&
|
|
env CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc \
|
|
CC=aarch64-linux-gnu-gcc \
|
|
CXX=aarch64-linux-gnu-g++ \
|
|
CPATH=/usr/aarch64-linux-gnu/include \
|
|
npx prebuildify --napi -t $(cat ../.nvmrc) --arch arm64 &&
|
|
mv build/Release/*-debuginfo.* . &&
|
|
npx prebuildify --napi -t $(cat ../.nvmrc) --arch x64 &&
|
|
mv build/Release/*-debuginfo.* .
|
|
'
|