47 lines
1.3 KiB
Bash
Executable File
47 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
spl() {
|
|
(
|
|
# Mind the order!
|
|
PROGRAMS=(
|
|
instruction-padding/program
|
|
token/program
|
|
token/program-2022
|
|
token/program-2022-test
|
|
associated-token-account/program
|
|
token-upgrade/program
|
|
feature-proposal/program
|
|
governance/addin-mock/program
|
|
governance/program
|
|
memo/program
|
|
name-service/program
|
|
stake-pool/program
|
|
)
|
|
set -x
|
|
rm -rf spl
|
|
git clone https://github.com/solana-labs/solana-program-library.git spl
|
|
# copy toolchain file to use solana's rust version
|
|
cp "$SOLANA_DIR"/rust-toolchain.toml spl/
|
|
cd spl || exit 1
|
|
|
|
project_used_solana_version=$(sed -nE 's/solana-sdk = \"[>=<~]*(.*)\"/\1/p' <"token/program/Cargo.toml")
|
|
echo "used solana version: $project_used_solana_version"
|
|
if semverGT "$project_used_solana_version" "$SOLANA_VER"; then
|
|
echo "skip"
|
|
return
|
|
fi
|
|
|
|
./patch.crates-io.sh "$SOLANA_DIR"
|
|
|
|
for program in "${PROGRAMS[@]}"; do
|
|
$CARGO_BUILD_SBF --manifest-path "$program"/Cargo.toml
|
|
done
|
|
|
|
# TODO better: `build.rs` for spl-token-cli doesn't seem to properly build
|
|
# the required programs to run the tests, so instead we run the tests
|
|
# after we know programs have been built
|
|
cargo build
|
|
cargo test
|
|
)
|
|
}
|