Plume front arm support (#402)
* Update plume-front build to use a shell script that adds the necessary dependencies on arm (x86 left untouched inside the script) * Fix cleanup portion of plume-front.sh * Break wasm dependencies for arm out so they are run before the main builds to improve layer caching on subsequent docker builds * Fixup dockerfile so wasm-deps can run properly and with fewer assumptions * Move new scripts to script/ folder * Remove saving of path as it's not actually not necessary * Add rust-toolchain to early copy so it pulls the right rust release (addresses #400)
This commit is contained in:
parent
2896eb1705
commit
dfa89e227a
@ -10,12 +10,15 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
make \
|
||||
openssl \
|
||||
libssl-dev
|
||||
WORKDIR /scratch
|
||||
COPY script/wasm-deps.sh .
|
||||
RUN chmod a+x ./wasm-deps.sh && ./wasm-deps.sh
|
||||
WORKDIR /app
|
||||
COPY Cargo.toml Cargo.lock ./
|
||||
COPY Cargo.toml Cargo.lock rust-toolchain ./
|
||||
RUN cargo install diesel_cli --no-default-features --features postgres --version '=1.3.0'
|
||||
RUN cargo install cargo-web
|
||||
COPY . .
|
||||
RUN cargo web deploy -p plume-front
|
||||
RUN chmod a+x ./script/plume-front.sh && ./script/plume-front.sh
|
||||
RUN cargo install --path ./ --force --no-default-features --features postgres
|
||||
RUN cargo install --path plume-cli --force --no-default-features --features postgres
|
||||
RUN cargo clean
|
||||
|
11
script/plume-front.sh
Normal file
11
script/plume-front.sh
Normal file
@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
ARCH=`arch`
|
||||
|
||||
if [ "$ARCH" == "aarch64" -o "$ARCH" == "armv7l" ] ; then
|
||||
export PATH=/opt/local/llvm/bin:${PATH}
|
||||
cd /app
|
||||
RUSTFLAGS="-C linker=lld" cargo web deploy -p plume-front
|
||||
else
|
||||
cargo web deploy -p plume-front
|
||||
fi
|
33
script/wasm-deps.sh
Normal file
33
script/wasm-deps.sh
Normal file
@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
|
||||
ARCH=`arch`
|
||||
|
||||
if [ "$ARCH" == "aarch64" -o "$ARCH" == "armv7l" ] ; then
|
||||
apt-get install -y --no-install-recommends build-essential subversion ninja-build cmake
|
||||
mkdir -p /scratch/src
|
||||
cd /scratch/src
|
||||
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
|
||||
cd /scratch/src/llvm/tools
|
||||
svn co http://llvm.org/svn/llvm-project/lld/trunk lld
|
||||
#svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
|
||||
#svn co http://llvm.org/svn/llvm-project/clang-tools-extra/trunk extra
|
||||
mkdir -p /scratch/build/arm
|
||||
cd /scratch/build/arm
|
||||
if [ "$ARCH" == "aarch64" ] ; then
|
||||
cmake -G Ninja /scratch/src/llvm \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_INSTALL_PREFIX=/opt/local/llvm \
|
||||
-DLLVM_TARGETS_TO_BUILD="AArch64" \
|
||||
-DLLVM_TARGET_ARCH="AArch64"
|
||||
else
|
||||
cmake -G Ninja /scratch/src/llvm \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_INSTALL_PREFIX=/opt/local/llvm \
|
||||
-DLLVM_TARGETS_TO_BUILD="ARM" \
|
||||
-DLLVM_TARGET_ARCH="ARM"
|
||||
fi
|
||||
ninja lld
|
||||
ninja install-lld
|
||||
cd ~
|
||||
rm -rf /scratch
|
||||
fi
|
Loading…
Reference in New Issue
Block a user