solana/scripts/cargo-install-custom-progra...

31 lines
678 B
Bash
Executable File

#!/usr/bin/env bash
#
# This script will install all cargo workspace libraries found in
# `programDir` as native programs.
set -e
# Directory to install libraries into
installDir="$(mkdir -p "$1"; cd "$1"; pwd)"
# Where to find custom programs
programDir="$2"
(
set -x
cd "$programDir"
cargo build --all --release
)
for dir in "$programDir"/*; do
for program in $programDir/target/release/deps/lib"$(basename "$dir")".{so,dylib,dll}; do
if [[ -f $program ]]; then
(
set -x
mkdir -p "$installDir/bin/deps"
rm -f "$installDir/bin/deps/$(basename "$program")"
cp -v "$program" "$installDir"/bin/deps
)
fi
done
done