forked from lexxvir/esp32-hello
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbindgen.sh
executable file
·50 lines (39 loc) · 854 Bytes
/
bindgen.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/usr/bin/env bash
set -e
source setenv.sh
COMPS=$IDF_PATH/components
SYSROOT=$HOME/xtensa-esp32-elf/xtensa-esp32-elf/sysroot
TARGET=xtensa-none-elf
BINDGEN=bindgen
LIBCLANG_PATH=$HOME/git/rust/xtensa/llvm_build/lib
CLANG_FLAGS="\
--sysroot=$SYSROOT \
-I$(pwd)/build/include \
-D__bindgen \
-target xtensa \
-x c"
for INC in `ls -d $COMPS/**/*/include`; do
#echo $INC
CLANG_FLAGS+=" -I$INC"
done
for INC in `ls -d $COMPS/*/include`; do
#echo $INC
CLANG_FLAGS+=" -I$INC"
done
#echo $CLANG_FLAGS
function generate_bindings ()
{
declare -r crate=$1
cd "$crate"
#source ./bindings.env
LIBCLANG_PATH="$LIBCLANG_PATH" \
"$BINDGEN" \
--use-core \
--no-layout-tests \
$BINDGEN_FLAGS \
--output src/bindings.rs \
src/bindings.h \
-- $CLANG_FLAGS
rustup run nightly rustfmt src/bindings.rs
}
generate_bindings $@