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 \
|
make \
|
||||||
openssl \
|
openssl \
|
||||||
libssl-dev
|
libssl-dev
|
||||||
|
WORKDIR /scratch
|
||||||
|
COPY script/wasm-deps.sh .
|
||||||
|
RUN chmod a+x ./wasm-deps.sh && ./wasm-deps.sh
|
||||||
WORKDIR /app
|
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 diesel_cli --no-default-features --features postgres --version '=1.3.0'
|
||||||
RUN cargo install cargo-web
|
RUN cargo install cargo-web
|
||||||
COPY . .
|
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 ./ --force --no-default-features --features postgres
|
||||||
RUN cargo install --path plume-cli --force --no-default-features --features postgres
|
RUN cargo install --path plume-cli --force --no-default-features --features postgres
|
||||||
RUN cargo clean
|
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