| SUMMARY = "Automatically generates Rust FFI bindings to C and C++ libraries." |
| HOMEPAGE = "https://rust-lang.github.io/rust-bindgen/" |
| LICENSE = "BSD-3-Clause" |
| |
| LIC_FILES_CHKSUM = "file://LICENSE;md5=0b9a98cb3dcdefcceb145324693fda9b" |
| |
| inherit rust cargo cargo-update-recipe-crates |
| |
| SRC_URI += "git://github.com/rust-lang/rust-bindgen.git;protocol=https;nobranch=1;tag=v${PV}" |
| SRCREV = "d874de8d646d9b8a3e7ba2db2bcd52f2fba8f1f5" |
| |
| require ${BPN}-crates.inc |
| |
| # bindgen uses the clang-sys crate to locate a 'clang' executable for querying |
| # default include paths. clang-sys's search order is: CLANG_PATH, libclang's dir, |
| # 'llvm-config --bindir', then PATH. When clang is the toolchain, the crossscripts |
| # llvm-config wrapper honours YOCTO_ALTERNATE_EXE_PATH and reports the target |
| # sysroot bindir, so clang-sys's 'llvm-config --bindir' step resolves to a target |
| # clang that cannot run on the build host (native bindgen then fails with |
| # "could not run executable .../clang-NN: No such file or directory", e.g. when |
| # building mesa with the rusticl/opencl PACKAGECONFIG). Set CLANG_PATH to the |
| # native clang so the runnable host binary is used first. |
| do_install:append:class-native() { |
| create_wrapper ${D}/${bindir}/bindgen \ |
| LIBCLANG_PATH="${STAGING_LIBDIR_NATIVE}" \ |
| CLANG_PATH="${STAGING_BINDIR_NATIVE}/clang" |
| } |
| |
| do_install:append:class-nativesdk() { |
| create_wrapper ${D}/${bindir}/bindgen \ |
| LIBCLANG_PATH="${libdir}" \ |
| CLANG_PATH="${bindir}/clang" |
| } |
| |
| BBCLASSEXTEND = "native nativesdk" |