Build/install native programs within cargo-install-all.sh
This commit is contained in:
parent
6e56e41461
commit
c3c955b02e
|
@ -43,8 +43,7 @@ echo --- Creating tarball
|
||||||
git rev-parse HEAD
|
git rev-parse HEAD
|
||||||
) > solana-release/version.txt
|
) > solana-release/version.txt
|
||||||
|
|
||||||
scripts/cargo-install-all.sh --root solana-release
|
scripts/cargo-install-all.sh solana-release
|
||||||
scripts/install-native-programs.sh solana-release/bin/deps/ release
|
|
||||||
|
|
||||||
./fetch-perf-libs.sh
|
./fetch-perf-libs.sh
|
||||||
# shellcheck source=/dev/null
|
# shellcheck source=/dev/null
|
||||||
|
|
|
@ -145,9 +145,7 @@ build() {
|
||||||
fi
|
fi
|
||||||
$MAYBE_DOCKER bash -c "
|
$MAYBE_DOCKER bash -c "
|
||||||
set -ex
|
set -ex
|
||||||
export NDEBUG=1
|
scripts/cargo-install-all.sh farf \"$cargoFeatures\"
|
||||||
scripts/cargo-install-all.sh --features=$cargoFeatures --root farf
|
|
||||||
scripts/install-native-programs.sh farf/bin/deps/ release
|
|
||||||
"
|
"
|
||||||
)
|
)
|
||||||
echo "Build took $SECONDS seconds"
|
echo "Build took $SECONDS seconds"
|
||||||
|
|
|
@ -1,13 +1,27 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
#
|
#
|
||||||
# |cargo install| of the top-level crate will not install binaries for
|
# |cargo install| of the top-level crate will not install binaries for
|
||||||
# other workspace creates.
|
# other workspace crates or native program crates.
|
||||||
set -e
|
set -e
|
||||||
cd "$(dirname "$0")/.."
|
|
||||||
|
if [[ -z $1 ]]; then
|
||||||
|
echo Install directory not specified
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
installDir="$(mkdir -p "$1"; cd "$1"; pwd)"
|
||||||
|
cargoFeatures="$2"
|
||||||
|
echo "Install location: $installDir"
|
||||||
|
|
||||||
|
cd "$(dirname "$0")"/..
|
||||||
|
|
||||||
SECONDS=0
|
SECONDS=0
|
||||||
|
|
||||||
CRATES=(
|
(
|
||||||
|
set -x
|
||||||
|
cargo build --all --release --features="$cargoFeatures"
|
||||||
|
)
|
||||||
|
|
||||||
|
BIN_CRATES=(
|
||||||
drone
|
drone
|
||||||
keygen
|
keygen
|
||||||
fullnode
|
fullnode
|
||||||
|
@ -18,11 +32,23 @@ CRATES=(
|
||||||
ledger-tool
|
ledger-tool
|
||||||
wallet
|
wallet
|
||||||
)
|
)
|
||||||
for crate in "${CRATES[@]}"; do
|
|
||||||
|
for crate in "${BIN_CRATES[@]}"; do
|
||||||
(
|
(
|
||||||
set -x
|
set -x
|
||||||
cargo install --path "$crate" "$@"
|
cargo install --force --path "$crate" --root "$installDir" --features="$cargoFeatures"
|
||||||
)
|
)
|
||||||
done
|
done
|
||||||
|
|
||||||
|
for dir in programs/native/*; do
|
||||||
|
for program in echo target/release/deps/lib{,solana_}"$(basename "$dir")"{,_program}.{so,dylib,dll}; do
|
||||||
|
if [[ -f $program ]]; then
|
||||||
|
mkdir -p "$installDir/bin/deps"
|
||||||
|
rm -f "$installDir/bin/deps/$(basename "$program")"
|
||||||
|
cp -v "$program" "$installDir"/bin/deps
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
du -a "$installDir"
|
||||||
echo "Done after $SECONDS seconds"
|
echo "Done after $SECONDS seconds"
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
#
|
|
||||||
# Installs native programs as |cargo install| doesn't know about them
|
|
||||||
#
|
|
||||||
set -e
|
|
||||||
|
|
||||||
here=$(dirname "$0")
|
|
||||||
SOLANA_ROOT="$(cd "$here"/..; pwd)"
|
|
||||||
|
|
||||||
installDir=$1
|
|
||||||
variant=${2:-release}
|
|
||||||
|
|
||||||
if [[ -z $installDir ]]; then
|
|
||||||
echo Install directory not specified
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
for dir in "$SOLANA_ROOT"/programs/native/*; do
|
|
||||||
for program in echo "$SOLANA_ROOT"/target/"$variant"/deps/lib{,solana_}"$(basename "$dir")"{,_program}.{so,dylib,dll}; do
|
|
||||||
if [[ -f $program ]]; then
|
|
||||||
mkdir -p "$installDir"
|
|
||||||
rm -f "$installDir/$(basename "$program")"
|
|
||||||
cp -v "$program" "$installDir"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
done
|
|
||||||
|
|
|
@ -18,11 +18,9 @@ if [[ -z $CHANNEL ]]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -rf usr/
|
rm -rf usr/
|
||||||
../../ci/docker-run.sh solanalabs/rust:1.31.0 bash -c "
|
../../ci/docker-run.sh solanalabs/rust:1.31.0 \
|
||||||
set -ex
|
scripts/cargo-install-all.sh sdk/docker-solana/usr
|
||||||
scripts/cargo-install-all.sh --root sdk/docker-solana/usr
|
|
||||||
scripts/install-native-programs.sh sdk/docker-solana/usr/bin/deps/ release
|
|
||||||
"
|
|
||||||
cp -f entrypoint.sh usr/bin/solana-entrypoint.sh
|
cp -f entrypoint.sh usr/bin/solana-entrypoint.sh
|
||||||
|
|
||||||
docker build -t solanalabs/solana:$CHANNEL .
|
docker build -t solanalabs/solana:$CHANNEL .
|
||||||
|
|
|
@ -91,8 +91,7 @@ parts:
|
||||||
- scripts
|
- scripts
|
||||||
override-build: |
|
override-build: |
|
||||||
# Build/install all programs
|
# Build/install all programs
|
||||||
scripts/cargo-install-all.sh --root $SNAPCRAFT_PART_INSTALL --bins
|
scripts/cargo-install-all.sh $SNAPCRAFT_PART_INSTALL
|
||||||
scripts/install-native-programs.sh $SNAPCRAFT_PART_INSTALL/bin/deps/ release
|
|
||||||
|
|
||||||
# Install multinode-demo/
|
# Install multinode-demo/
|
||||||
mkdir -p $SNAPCRAFT_PART_INSTALL/multinode-demo/
|
mkdir -p $SNAPCRAFT_PART_INSTALL/multinode-demo/
|
||||||
|
|
Loading…
Reference in New Issue