lvgl / lv_binding_rust

LVGL bindings for Rust. A powerful and easy-to-use embedded GUI with many widgets, advanced visual effects (opacity, antialiasing, animations) and low memory requirements (16K RAM, 64K Flash).
MIT License
687 stars 71 forks source link

fix: fixed compile-time errors during cross-compiling #161

Closed Chiichen closed 4 months ago

Chiichen commented 8 months ago

Delete Target specification

This part of the code tells us that calling bingen in the build script will automatically check TARGET and generate the corresponding clang_args without us having to enter it ourselves. And typing clang_args ourselves will cause problems. For example, when riscv64gc-unknown-none-elf is used as the target, the corresponding value in clang should be --target riscv64-unknown-none-elf instead of --target riscv64gc-unknown-none-elf , and this escaping operation is performed in bindgen, but if we specify --target riscv64gc-unknown-none-elf through clang_args, this escaping logic will be skipped(details here), making it impossible to generate the correct clang_args

Add include path

In cross compilation, errors such as <inttype>not found always appeared, and I found that this was due to the include path problem. When the driver feature is not turned on, the include path may not contain /usr/include, /usr/local/include. After my testing, even adding these two paths to the PATH environment variable will not take effect. I It was found that only by adding these two paths to build.rs can the compilation pass smoothly.