You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.5 KiB
57 lines
1.5 KiB
#!/usr/bin/env bash |
|
|
|
set -euo pipefail |
|
|
|
echo "Determining libctru version..." |
|
pacman=dkp-pacman |
|
if ! command -v $pacman &>/dev/null; then |
|
pacman=pacman |
|
if ! command -q $pacman &>/dev/null; then |
|
echo >&2 "ERROR: Unable to automatically determine libctru version!" |
|
exit 1 |
|
fi |
|
fi |
|
|
|
LIBCTRU_VERSION="$($pacman -Qi libctru | grep Version | cut -d: -f 2 | tr -d ' ')" |
|
|
|
CTRU_SYS_VERSION="$( |
|
printf '%s' "$LIBCTRU_VERSION" | |
|
cut -d- -f1 | |
|
sed -E 's/^([0-9]+)\.([0-9.]+)$/\1\2/' |
|
)" |
|
|
|
echo "Generating bindings.rs..." |
|
bindgen "$DEVKITPRO/libctru/include/3ds.h" \ |
|
--rust-target nightly \ |
|
--use-core \ |
|
--distrust-clang-mangling \ |
|
--must-use-type 'Result' \ |
|
--no-layout-tests \ |
|
--ctypes-prefix "::libc" \ |
|
--no-prepend-enum-name \ |
|
--generate "functions,types,vars" \ |
|
--blocklist-type "u(8|16|32|64)" \ |
|
--blocklist-type "__builtin_va_list" \ |
|
--blocklist-type "__va_list" \ |
|
--opaque-type "MiiData" \ |
|
--with-derive-default \ |
|
-- \ |
|
--target=arm-none-eabi \ |
|
--sysroot="$DEVKITARM/arm-none-eabi" \ |
|
-isystem"$DEVKITARM/arm-none-eabi/include" \ |
|
-I"$DEVKITPRO/libctru/include" \ |
|
-mfloat-abi=hard \ |
|
-march=armv6k \ |
|
-mtune=mpcore \ |
|
-mfpu=vfp \ |
|
-DARM11 \ |
|
-D__3DS__ \ |
|
> src/bindings.rs |
|
|
|
echo "Updating docstrings in bindings.rs..." |
|
cargo run --quiet --package docstring-to-rustdoc -- src/bindings.rs |
|
|
|
echo "Formatting generated files..." |
|
cargo fmt --all |
|
|
|
echo "Generated bindings for ctru-sys version \"${CTRU_SYS_VERSION}.x+${LIBCTRU_VERSION}\""
|
|
|