Fix loop to be more accuratly timed, and added custom ruby libs inclusion setup
This commit is contained in:
Executable
+40
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
||||
OUTPUT_TMP=$(mktemp)
|
||||
OUTPUT="$SCRIPT_DIR/../../include/binding/ruby_compiled.h"
|
||||
|
||||
if test "$1" = "clean"; then
|
||||
rm -f "$OUTPUT"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
trap 'rm -f "$OUTPUT_TMP"' EXIT
|
||||
|
||||
mapfile -t FILES < <(find "$SCRIPT_DIR" -name "*.rb" | sort)
|
||||
|
||||
LATEST_FILE_TIME=$(for file in "${FILES[@]}"; do
|
||||
echo $(stat -c "%Y" "$file")
|
||||
done | sort -n | tail -1)
|
||||
|
||||
OUTPUT_TIME=$(stat -c "%Y" "$OUTPUT" 2>/dev/null || echo 0)
|
||||
|
||||
if test "$OUTPUT_TIME" -ge "$LATEST_FILE_TIME"; then
|
||||
echo "mgems is up to date."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
"$SCRIPT_DIR/../mruby/bin/mrbc" -o "$OUTPUT_TMP" "${FILES[@]}"
|
||||
|
||||
{
|
||||
echo "#ifndef MGEMS_H"
|
||||
echo "#define MGEMS_H"
|
||||
xxd -i -n mgems $OUTPUT_TMP \
|
||||
| sed -e 's/^unsigned char /constexpr unsigned char /' \
|
||||
-e 's/^unsigned int /constexpr unsigned int /'
|
||||
echo "#endif"
|
||||
} > "$OUTPUT"
|
||||
|
||||
echo "Compiled mgems!"
|
||||
+1010
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user