mirror of https://github.com/smithy-lang/smithy-rs
49 lines
1.5 KiB
Bash
Executable File
49 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
set -x
|
|
|
|
if [ $# -lt 3 ]; then
|
|
echo "usage: $0 package manifest_path output_directory"
|
|
exit 1
|
|
fi
|
|
|
|
# input arguments
|
|
package=$1
|
|
manifest=$2
|
|
output=$3
|
|
|
|
# the directory of the script
|
|
source_dir="$(git rev-parse --show-toplevel)"
|
|
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
if [ -n "$source_dir" ]; then
|
|
CARGO_TARGET_DIR="$source_dir/target"
|
|
else
|
|
CARGO_TARGET_DIR=$(mktemp -d)
|
|
mkdir -p "$CARGO_TARGET_DIR"
|
|
# cleanup temporary directory
|
|
function cleanup {
|
|
# shellcheck disable=2317
|
|
rm -rf "$CARGO_TARGET_DIR"
|
|
}
|
|
# register the cleanup function to be called on the EXIT signal
|
|
trap cleanup EXIT
|
|
fi
|
|
export CARGO_TARGET_DIR
|
|
|
|
shared_object_extension="so"
|
|
# generate the Python stubs,
|
|
if [ "$(uname)" == "Darwin" ]; then
|
|
shared_object_extension="dylib"
|
|
export CARGO_TARGET_X86_64_APPLE_DARWIN_RUSTFLAGS="-C link-arg=-undefined -C link-arg=dynamic_lookup"
|
|
export CARGO_TARGET_AARCH64_APPLE_DARWIN_RUSTFLAGS="-C link-arg=-undefined -C link-arg=dynamic_lookup"
|
|
fi
|
|
|
|
cargo build --manifest-path "$manifest"
|
|
# The link target have to end with .so to be sure it is importable by the stubgen.py script.
|
|
ln -sf "$CARGO_TARGET_DIR/debug/lib$package.$shared_object_extension" "$CARGO_TARGET_DIR/debug/$package.so"
|
|
PYTHONPATH=$CARGO_TARGET_DIR/debug:$PYTHONPATH python3 "$script_dir/stubgen.py" "$package" "$output"
|
|
|
|
exit 0
|