From 417ae271caaae7ba4431f5a927a04ea2a506cb1a Mon Sep 17 00:00:00 2001 From: wtfsck Date: Tue, 17 May 2022 20:45:12 +0200 Subject: [PATCH] Add `build/build-lua` --- build/build-lua | 159 ++++++++++++++++++++++++++++++ src/rust/iced-x86-lua/stylua.toml | 5 + 2 files changed, 164 insertions(+) create mode 100755 build/build-lua create mode 100644 src/rust/iced-x86-lua/stylua.toml diff --git a/build/build-lua b/build/build-lua new file mode 100755 index 000000000..9eeec05e3 --- /dev/null +++ b/build/build-lua @@ -0,0 +1,159 @@ +#!/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 +luasrc_dir="$root_dir/src/rust/iced-x86-lua" +cargo_toml="$luasrc_dir/Cargo.toml" + +full_check=y +set_rustflags=y + +new_func() { + echo + echo "****************************************************************" + echo "$1" + echo "****************************************************************" + echo +} + +patchci_verify_not_patched() { + # msys grep fails if we use $ + if ! grep -E '^#pathci' "$cargo_toml" 2>&1 > /dev/null; then + echo "Cargo.toml is patched" + exit 1 + fi +} + +patchci_verify_patched() { + # msys grep fails if we use $ + if grep -E '^#pathci' "$cargo_toml" 2>&1 > /dev/null; then + echo "Cargo.toml is not patched" + exit 1 + fi +} + +# We must reference the current iced-x86 code so we can't use the crates.io crate +# since it hasn't been pushed yet. We patch lua/Cargo.toml to point to the current +# source code. +# +# The sdist's Cargo.toml must be the original file though or they won't be able +# to build it once it's been published. +patchci_patch() { + patchci_verify_not_patched + + curr_dir=$(pwd) + cd "$root_dir" + + if [ "$OSTYPE" = "msys" ]; then + iced_x86_dir="$(pwd -W)/src/rust/iced-x86" + else + iced_x86_dir="$(pwd)/src/rust/iced-x86" + fi + if [ ! -d "$iced_x86_dir" ]; then + echo "Dir does not exist: $iced_x86_dir" + exit 1 + fi + + sed -i -e "s&^#pathci$&path = \"$iced_x86_dir\"&" "$cargo_toml" + + cd "$curr_dir" +} + +patchci_undo_patch() { + git checkout "$cargo_toml" +} + +build_test_rock() { + (build_test_rock_lua 5 1) + (build_test_rock_lua 5 2) + (build_test_rock_lua 5 3) + (build_test_rock_lua 5 4) +} + +build_test_rock_lua() { + lua_maj=$1 + lua_min=$2 + lua="lua$lua_maj.$lua_min" + + new_func "Building and testing rock (Lua $lua_maj.$lua_min)" + + cd "$luasrc_dir" + + luarocks make iced_x86-*.rockspec --local --lua-version $lua_maj.$lua_min + + eval $(luarocks path --lua-version $lua_maj.$lua_min) + busted_filename=/tmp/tmp-busted-runner + echo "require 'busted.runner'({ standalone = false })" > "$busted_filename" + "$lua" -- "$busted_filename" -m "./tests/?.lua" tests + + luarocks remove iced_x86 --local --lua-version $lua_maj.$lua_min +} + +misc_tests() { + new_func "clippy, fmt, stylua" + + curr_dir=$(pwd) + cd "$luasrc_dir" + + patchci_verify_patched + + set -- \ + "lua51" \ + "lua52" \ + "lua53" \ + "lua54" + for features in "$@"; do + echo "==== CLIPPY RELEASE $features ====" + cargo clippy --color always --release --features "$features" + done + + echo "==== RUST FORMAT CHECK ====" + cargo fmt -- --color always --check + + echo "==== LUA FORMAT CHECK ====" + stylua --color always --check tests -f ./stylua.toml + + cd "$curr_dir" +} + +while [ "$#" -gt 0 ]; do + case $1 in + --quick-check) full_check=n ;; + --no-set-rustflags) set_rustflags=n ;; + *) echo "Unknown arg: $1"; exit 1 ;; + esac + shift +done + +echo +echo "==================================================" +echo "Lua 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 "luarocks version" +luarocks --version +echo "stylua version" +stylua --version + +patchci_patch +build_test_rock +if [ "$full_check" = "y" ]; then + misc_tests +fi +patchci_undo_patch diff --git a/src/rust/iced-x86-lua/stylua.toml b/src/rust/iced-x86-lua/stylua.toml new file mode 100644 index 000000000..cd2e882dd --- /dev/null +++ b/src/rust/iced-x86-lua/stylua.toml @@ -0,0 +1,5 @@ +column_width = 120 +indent_type = "Tabs" +indent_width = 4 +quote_style = "AutoPreferDouble" +call_parentheses = "Always"