mirror of https://github.com/icedland/iced.git
162 lines
3.4 KiB
Bash
Executable File
162 lines
3.4 KiB
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
|
|
root_dir=$(dirname "$0")
|
|
root_dir=$(cd "$root_dir/.." && pwd)
|
|
if [ ! -f "$root_dir/LICENSE.txt" ]; then
|
|
echo "Couldn't find the root dir"
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$OSTYPE" = "msys" ]; then
|
|
is_windows=y
|
|
else
|
|
is_windows=n
|
|
fi
|
|
|
|
if [ "$is_windows" = "y" ]; then
|
|
python=python
|
|
else
|
|
python=python3
|
|
fi
|
|
full_check=y
|
|
set_rustflags=y
|
|
|
|
new_func() {
|
|
echo
|
|
echo "****************************************************************"
|
|
echo "$1"
|
|
echo "****************************************************************"
|
|
echo
|
|
}
|
|
|
|
build_and_check() {
|
|
new_func "Build and check"
|
|
curr_dir=$(pwd)
|
|
cd "$root_dir/src/rust/iced-x86-js"
|
|
|
|
echo "==== FORMAT CHECK ===="
|
|
cargo fmt -- --color always --check
|
|
echo "==== CLIPPY instr_api decoder encoder block_encoder instr_create op_code_info instr_info gas intel masm nasm fast_fmt mvex ===="
|
|
cargo clippy --color always --target wasm32-unknown-unknown --no-default-features --features "instr_api decoder encoder block_encoder instr_create op_code_info instr_info gas intel masm nasm fast_fmt mvex"
|
|
|
|
set -- \
|
|
"decoder" \
|
|
"decoder mvex" \
|
|
"instr_api decoder" \
|
|
"encoder" \
|
|
"instr_api encoder" \
|
|
"encoder block_encoder" \
|
|
"instr_create" \
|
|
"encoder instr_create" \
|
|
"encoder op_code_info" \
|
|
"instr_api encoder op_code_info" \
|
|
"instr_info" \
|
|
"instr_api instr_info" \
|
|
"gas" \
|
|
"intel" \
|
|
"masm" \
|
|
"nasm" \
|
|
"fast_fmt" \
|
|
"instr_api nasm"
|
|
for features in "$@"; do
|
|
echo "==== $features ===="
|
|
cargo check --color always --target wasm32-unknown-unknown --no-default-features --features "$features"
|
|
done
|
|
|
|
set -- \
|
|
"no_vex" \
|
|
"no_evex" \
|
|
"no_xop" \
|
|
"no_d3now" \
|
|
"no_vex no_evex no_xop no_d3now"
|
|
for features in "$@"; do
|
|
echo "==== $features ===="
|
|
cargo check --color always --target wasm32-unknown-unknown --features "$features"
|
|
done
|
|
|
|
cd "$curr_dir"
|
|
}
|
|
|
|
test_the_code() {
|
|
new_func "Test the code"
|
|
curr_dir=$(pwd)
|
|
cd "$root_dir/src/rust/iced-x86-js"
|
|
|
|
wasm-pack build --mode force --target nodejs -- --features "mvex"
|
|
cd src/tests
|
|
npm install
|
|
npm test
|
|
cd ../..
|
|
|
|
cd "$curr_dir"
|
|
}
|
|
|
|
gen_release() {
|
|
new_func "Generate npm bin"
|
|
curr_dir=$(pwd)
|
|
cd "$root_dir/src/rust/iced-x86-js"
|
|
|
|
rm -rf pkg/
|
|
wasm-pack build --mode force --target nodejs -- --features "mvex"
|
|
mkdir pkg/tests
|
|
cp ../../../LICENSE.txt pkg
|
|
cp src/tests/*.js pkg/tests
|
|
|
|
cd pkg
|
|
npm_package_json="$root_dir/src/rust/iced-x86-js/pkg/package.json"
|
|
test_package_json="$root_dir/src/rust/iced-x86-js/src/tests/package.json"
|
|
$python "$root_dir/build/npm-fix-json.py" "$npm_package_json" "$test_package_json"
|
|
npm pack
|
|
mkdir -p release
|
|
cp iced-x86-*.tgz release/
|
|
cd release
|
|
npm publish iced-x86-*.tgz --dry-run
|
|
cd ../..
|
|
|
|
cd "$curr_dir"
|
|
}
|
|
|
|
while [ "$#" -gt 0 ]; do
|
|
case $1 in
|
|
--quick-check) full_check=n ;;
|
|
--python) shift; python=$1 ;;
|
|
--no-set-rustflags) set_rustflags=n ;;
|
|
*) echo "Unknown arg: $1"; exit 1 ;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
echo
|
|
echo "=================================================="
|
|
echo "JavaScript build"
|
|
echo "=================================================="
|
|
echo
|
|
|
|
if [ "$set_rustflags" = "y" ]; then
|
|
export RUSTFLAGS="-D warnings"
|
|
fi
|
|
|
|
echo "rustup show"
|
|
rustup show
|
|
echo "cargo version"
|
|
cargo --version
|
|
echo "Rust version"
|
|
rustc --version
|
|
echo "wasm-pack version"
|
|
wasm-pack --version
|
|
echo "node version"
|
|
node --version
|
|
echo "npm version"
|
|
npm --version
|
|
echo "rustup show"
|
|
rustup show
|
|
echo "Python version"
|
|
$python --version
|
|
|
|
if [ "$full_check" = "y" ]; then
|
|
build_and_check
|
|
fi
|
|
test_the_code
|
|
gen_release
|