#!/usr/bin/env bash # # Builds known downstream projects against local solana source # set -e cd "$(dirname "$0")"/.. source ci/_ source scripts/patch-crates.sh source scripts/read-cargo-variable.sh solana_ver=$(readCargoVariable version sdk/Cargo.toml) solana_dir=$PWD cargo="$solana_dir"/cargo cargo_build_bpf="$solana_dir"/cargo-build-bpf cargo_test_bpf="$solana_dir"/cargo-test-bpf mkdir -p target/downstream-projects-anchor cd target/downstream-projects-anchor update_anchor_dependencies() { declare project_root="$1" declare anchor_ver="$2" declare tomls=() while IFS='' read -r line; do tomls+=("$line"); done < <(find "$project_root" -name Cargo.toml) sed -i -e "s#\(anchor-lang = \"\)[^\"]*\(\"\)#\1=$anchor_ver\2#g" "${tomls[@]}" || return $? sed -i -e "s#\(anchor-spl = \"\)[^\"]*\(\"\)#\1=$anchor_ver\2#g" "${tomls[@]}" || return $? sed -i -e "s#\(anchor-lang = { version = \"\)[^\"]*\(\"\)#\1=$anchor_ver\2#g" "${tomls[@]}" || return $? sed -i -e "s#\(anchor-spl = { version = \"\)[^\"]*\(\"\)#\1=$anchor_ver\2#g" "${tomls[@]}" || return $? } patch_crates_io_anchor() { declare Cargo_toml="$1" declare anchor_dir="$2" cat >> "$Cargo_toml" <