Files
haikuports/dev-rust/cbindgen/cbindgen-0.24.3.recipe

251 lines
11 KiB
Bash

SUMMARY="A tool for generating C binding to Rust code"
DESCRIPTION="cbindgen creates C/C++11 headers \
for Rust libraries which expose a public C API."
HOMEPAGE="https://github.com/eqrion/cbindgen"
COPYRIGHT="2018-2023 cbindgen contributors"
LICENSE="MPL v2.0"
REVISION="3"
SOURCE_URI="$HOMEPAGE/archive/v$portVersion.tar.gz"
CHECKSUM_SHA256="5d693ab54acc085b9f2dbafbcf0a1f089737f7e0cb1686fa338c2aaa05dc7705"
SOURCE_FILENAME="cbindgen-$portVersion.tar.gz"
SOURCE_URI_2="https://static.crates.io/crates/proc-macro2/proc-macro2-1.0.36.crate"
CHECKSUM_SHA256_2="c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029"
SOURCE_URI_3="https://static.crates.io/crates/libc/libc-0.2.121.crate"
CHECKSUM_SHA256_3="efaa7b300f3b5fe8eb6bf21ce3895e1751d9665086af2d64b42f19701015ff4f"
SOURCE_URI_4="https://static.crates.io/crates/syn/syn-1.0.89.crate"
CHECKSUM_SHA256_4="ea297be220d52398dcc07ce15a209fce436d361735ac1db700cab3b6cdfb9f54"
SOURCE_URI_5="https://static.crates.io/crates/unicode-xid/unicode-xid-0.2.2.crate"
CHECKSUM_SHA256_5="8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
SOURCE_URI_6="https://static.crates.io/crates/cfg-if/cfg-if-1.0.0.crate"
CHECKSUM_SHA256_6="baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
SOURCE_URI_7="https://static.crates.io/crates/serde_derive/serde_derive-1.0.136.crate"
CHECKSUM_SHA256_7="08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9"
SOURCE_URI_8="https://static.crates.io/crates/serde/serde-1.0.136.crate"
CHECKSUM_SHA256_8="ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789"
SOURCE_URI_9="https://static.crates.io/crates/autocfg/autocfg-1.1.0.crate"
CHECKSUM_SHA256_9="d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
SOURCE_URI_10="https://static.crates.io/crates/ryu/ryu-1.0.9.crate"
CHECKSUM_SHA256_10="73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f"
SOURCE_URI_11="https://static.crates.io/crates/ppv-lite86/ppv-lite86-0.2.9.crate"
CHECKSUM_SHA256_11="c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20"
SOURCE_URI_12="https://static.crates.io/crates/serde_json/serde_json-1.0.79.crate"
CHECKSUM_SHA256_12="8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95"
SOURCE_URI_13="https://static.crates.io/crates/unicode-width/unicode-width-0.1.8.crate"
CHECKSUM_SHA256_13="9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
SOURCE_URI_14="https://static.crates.io/crates/log/log-0.4.16.crate"
CHECKSUM_SHA256_14="6389c490849ff5bc16be905ae24bc913a9c8892e19b2341dbc175e14c341c2b8"
SOURCE_URI_15="https://static.crates.io/crates/itoa/itoa-1.0.1.crate"
CHECKSUM_SHA256_15="1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35"
SOURCE_URI_16="https://static.crates.io/crates/ansi_term/ansi_term-0.11.0.crate"
CHECKSUM_SHA256_16="ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
SOURCE_URI_17="https://static.crates.io/crates/bitflags/bitflags-1.3.2.crate"
CHECKSUM_SHA256_17="bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
SOURCE_URI_18="https://static.crates.io/crates/hashbrown/hashbrown-0.11.2.crate"
CHECKSUM_SHA256_18="ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
SOURCE_URI_19="https://static.crates.io/crates/strsim/strsim-0.10.0.crate"
CHECKSUM_SHA256_19="73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
SOURCE_URI_20="https://static.crates.io/crates/remove_dir_all/remove_dir_all-0.5.3.crate"
CHECKSUM_SHA256_20="3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
SOURCE_URI_21="https://static.crates.io/crates/unicode-segmentation/unicode-segmentation-1.6.0.crate"
CHECKSUM_SHA256_21="e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
SOURCE_URI_22="https://static.crates.io/crates/vec_map/vec_map-0.8.2.crate"
CHECKSUM_SHA256_22="f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
SOURCE_URI_23="https://static.crates.io/crates/indexmap/indexmap-1.8.0.crate"
CHECKSUM_SHA256_23="282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223"
SOURCE_URI_24="https://static.crates.io/crates/textwrap/textwrap-0.15.0.crate"
CHECKSUM_SHA256_24="b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb"
SOURCE_URI_25="https://static.crates.io/crates/heck/heck-0.4.0.crate"
CHECKSUM_SHA256_25="2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
SOURCE_URI_26="https://static.crates.io/crates/quote/quote-1.0.17.crate"
CHECKSUM_SHA256_26="632d02bff7f874a36f33ea8bb416cd484b90cc66c1194b1a1110d067a7013f58"
SOURCE_URI_27="https://static.crates.io/crates/getrandom/getrandom-0.1.15.crate"
CHECKSUM_SHA256_27="fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6"
SOURCE_URI_28="https://static.crates.io/crates/atty/atty-0.2.14.crate"
CHECKSUM_SHA256_28="d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
SOURCE_URI_29="https://static.crates.io/crates/rand_core/rand_core-0.5.1.crate"
CHECKSUM_SHA256_29="90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
SOURCE_URI_30="https://static.crates.io/crates/clap/clap-3.1.6.crate"
CHECKSUM_SHA256_30="d8c93436c21e4698bacadf42917db28b23017027a4deccb35dbe47a7e7840123"
SOURCE_URI_31="https://static.crates.io/crates/rand_chacha/rand_chacha-0.2.2.crate"
CHECKSUM_SHA256_31="f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
SOURCE_URI_32="https://static.crates.io/crates/rand/rand-0.7.3.crate"
CHECKSUM_SHA256_32="6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
SOURCE_URI_33="https://static.crates.io/crates/tempfile/tempfile-3.3.0.crate"
CHECKSUM_SHA256_33="5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
SOURCE_URI_34="https://static.crates.io/crates/toml/toml-0.5.8.crate"
CHECKSUM_SHA256_34="a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa"
SOURCE_URI_35="https://static.crates.io/crates/heck/heck-0.3.1.crate"
CHECKSUM_SHA256_35="20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
SOURCE_URI_36="https://static.crates.io/crates/serial_test/serial_test-0.5.1.crate"
CHECKSUM_SHA256_36="e0bccbcf40c8938196944a3da0e133e031a33f4d6b72db3bda3cc556e361905d"
SOURCE_URI_37="https://static.crates.io/crates/redox_syscall/redox_syscall-0.2.12.crate"
CHECKSUM_SHA256_37="8ae183fc1b06c149f0c1793e1eb447c8b04bfe46d48e9e48bfb8d2d7ed64ecf0"
SOURCE_URI_38="https://static.crates.io/crates/winapi/winapi-0.3.9.crate"
CHECKSUM_SHA256_38="5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
SOURCE_URI_39="https://static.crates.io/crates/lazy_static/lazy_static-1.4.0.crate"
CHECKSUM_SHA256_39="e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
SOURCE_URI_40="https://static.crates.io/crates/parking_lot/parking_lot-0.11.2.crate"
CHECKSUM_SHA256_40="7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
SOURCE_URI_41="https://static.crates.io/crates/serial_test_derive/serial_test_derive-0.5.1.crate"
CHECKSUM_SHA256_41="b2acd6defeddb41eb60bb468f8825d0cfd0c2a76bc03bfd235b6a1dc4f6a1ad5"
SOURCE_URI_42="https://static.crates.io/crates/hermit-abi/hermit-abi-0.1.19.crate"
CHECKSUM_SHA256_42="62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
SOURCE_URI_43="https://static.crates.io/crates/rand_hc/rand_hc-0.2.0.crate"
CHECKSUM_SHA256_43="ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
SOURCE_URI_44="https://static.crates.io/crates/winapi-x86_64-pc-windows-gnu/winapi-x86_64-pc-windows-gnu-0.4.0.crate"
CHECKSUM_SHA256_44="712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
SOURCE_URI_45="https://static.crates.io/crates/winapi-i686-pc-windows-gnu/winapi-i686-pc-windows-gnu-0.4.0.crate"
CHECKSUM_SHA256_45="ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
SOURCE_URI_46="https://static.crates.io/crates/lock_api/lock_api-0.4.6.crate"
CHECKSUM_SHA256_46="88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b"
SOURCE_URI_47="https://static.crates.io/crates/parking_lot_core/parking_lot_core-0.8.5.crate"
CHECKSUM_SHA256_47="d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216"
SOURCE_URI_48="https://static.crates.io/crates/wasi/wasi-0.9.0+wasi-snapshot-preview1.crate"
CHECKSUM_SHA256_48="cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
SOURCE_URI_49="https://static.crates.io/crates/scopeguard/scopeguard-1.1.0.crate"
CHECKSUM_SHA256_49="d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
SOURCE_URI_50="https://static.crates.io/crates/smallvec/smallvec-1.8.0.crate"
CHECKSUM_SHA256_50="f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83"
SOURCE_URI_51="https://static.crates.io/crates/cloudabi/cloudabi-0.0.3.crate"
CHECKSUM_SHA256_51="ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
SOURCE_URI_52="https://static.crates.io/crates/os_str_bytes/os_str_bytes-6.0.0.crate"
CHECKSUM_SHA256_52="8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64"
SOURCE_URI_53="https://static.crates.io/crates/memchr/memchr-2.4.1.crate"
CHECKSUM_SHA256_53="308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
SOURCE_URI_54="https://static.crates.io/crates/fastrand/fastrand-1.7.0.crate"
CHECKSUM_SHA256_54="c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf"
SOURCE_URI_55="https://static.crates.io/crates/heck/heck-0.4.0.crate"
CHECKSUM_SHA256_55="2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
SOURCE_URI_56="https://static.crates.io/crates/instant/instant-0.1.12.crate"
CHECKSUM_SHA256_56="7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
SOURCE_URI_57="https://static.crates.io/crates/termcolor/termcolor-1.1.3.crate"
CHECKSUM_SHA256_57="bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
SOURCE_URI_58="https://static.crates.io/crates/winapi-util/winapi-util-0.1.5.crate"
CHECKSUM_SHA256_58="70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
ARCHITECTURES="all !x86_gcc2"
commandBinDir=$binDir
if [ "$targetArchitecture" = x86_gcc2 ]; then
SECONDARY_ARCHITECTURES="x86"
commandBinDir=$prefix/bin
fi
PROVIDES="
cbindgen$secondaryArchSuffix = $portVersion
cmd:cbindgen
"
REQUIRES="
haiku$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
"
BUILD_PREREQUIRES="
cmd:cargo$secondaryArchSuffix >= 0.70
cmd:gcc$secondaryArchSuffix
"
defineDebugInfoPackage cbindgen$secondaryArchSuffix \
"$commandBinDir"/cbindgen
BUILD()
{
export CARGO_HOME=$sourceDir/../cargo
vendor=$CARGO_HOME/haiku
mkdir -p "$vendor"
for i in $(seq 2 58); do
eval "srcDir=\$sourceDir$i"
eval "sha256sum=\$CHECKSUM_SHA256_$i"
set -- "$srcDir"/*
ln -sf "$1" "$vendor"
cat <<-EOF >"$vendor/${1##*/}/.cargo-checksum.json"
{
"package": "$sha256sum",
"files": {}
}
EOF
done
cat <<-EOF >"$CARGO_HOME"/config
[source.haiku]
directory = "$vendor"
[source.crates-io]
replace-with = "haiku"
EOF
cargo build --release --frozen
}
INSTALL()
{
install -m 755 -d "$commandBinDir" "$docDir"
install -m 755 target/release/cbindgen "$commandBinDir"
install -m 644 README.md "$docDir"
}
TEST()
{
export CARGO_HOME=$sourceDir/../cargo
cargo test --release --frozen
}