195 lines
6.2 KiB
BlitzBasic
195 lines
6.2 KiB
BlitzBasic
#
|
|
# Copyright (c) 2020-2023 Joel Winarske. All rights reserved.
|
|
#
|
|
|
|
SUMMARY = "Membrane Example shared module"
|
|
HOMEPAGE = "https://github.com/jerel/membrane"
|
|
LICENSE = "Apache-2.0"
|
|
|
|
LIC_FILES_CHKSUM = "\
|
|
file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10 \
|
|
"
|
|
|
|
DEPENDS += "\
|
|
membrane-example-native \
|
|
"
|
|
|
|
DEPENDS:class-native += "\
|
|
flutter-sdk-native \
|
|
compiler-rt-native \
|
|
libcxx-native \
|
|
"
|
|
|
|
SRCREV = "402133efc123fbf86997118209b3a84007e4000d"
|
|
PV:append = ".AUTOINC+402133efc1"
|
|
SRC_URI = "git://github.com/jerel/membrane_template.git;lfs=0;branch=main;protocol=https;destsuffix=git"
|
|
|
|
SRC_URI += " \
|
|
crate://crates.io/addr2line/0.17.0 \
|
|
crate://crates.io/adler/1.0.2 \
|
|
crate://crates.io/aho-corasick/0.7.18 \
|
|
crate://crates.io/allo-isolate/0.1.13 \
|
|
crate://crates.io/ansi_term/0.12.1 \
|
|
crate://crates.io/anyhow/1.0.60 \
|
|
crate://crates.io/async-stream-impl/0.3.3 \
|
|
crate://crates.io/async-stream/0.3.3 \
|
|
crate://crates.io/atomic/0.5.1 \
|
|
crate://crates.io/atty/0.2.14 \
|
|
crate://crates.io/autocfg/1.1.0 \
|
|
crate://crates.io/backtrace/0.3.66 \
|
|
crate://crates.io/bcs/0.1.3 \
|
|
crate://crates.io/bincode/1.3.3 \
|
|
crate://crates.io/bitflags/1.3.2 \
|
|
crate://crates.io/cc/1.0.73 \
|
|
crate://crates.io/cfg-if/1.0.0 \
|
|
crate://crates.io/clap/2.34.0 \
|
|
crate://crates.io/ctor/0.1.23 \
|
|
crate://crates.io/failure/0.1.8 \
|
|
crate://crates.io/failure_derive/0.1.8 \
|
|
crate://crates.io/ffi_helpers/0.2.0 \
|
|
crate://crates.io/futures-channel/0.3.21 \
|
|
crate://crates.io/futures-core/0.3.21 \
|
|
crate://crates.io/futures-executor/0.3.21 \
|
|
crate://crates.io/futures-io/0.3.21 \
|
|
crate://crates.io/futures-macro/0.3.21 \
|
|
crate://crates.io/futures-sink/0.3.21 \
|
|
crate://crates.io/futures-task/0.3.21 \
|
|
crate://crates.io/futures-util/0.3.21 \
|
|
crate://crates.io/futures/0.3.21 \
|
|
crate://crates.io/getrandom/0.2.7 \
|
|
crate://crates.io/ghost/0.1.6 \
|
|
crate://crates.io/gimli/0.26.2 \
|
|
crate://crates.io/glob/0.3.0 \
|
|
crate://crates.io/hashbrown/0.12.3 \
|
|
crate://crates.io/heck/0.3.3 \
|
|
crate://crates.io/hermit-abi/0.1.19 \
|
|
crate://crates.io/include_dir/0.6.2 \
|
|
crate://crates.io/include_dir_impl/0.6.2 \
|
|
crate://crates.io/indexmap/1.9.1 \
|
|
crate://crates.io/inventory-impl/0.1.11 \
|
|
crate://crates.io/inventory/0.1.11 \
|
|
crate://crates.io/lazy_static/1.4.0 \
|
|
crate://crates.io/libc/0.2.129 \
|
|
crate://crates.io/linked-hash-map/0.5.6 \
|
|
crate://crates.io/maplit/1.0.2 \
|
|
crate://crates.io/memchr/2.5.0 \
|
|
crate://crates.io/miniz_oxide/0.5.3 \
|
|
crate://crates.io/num_cpus/1.13.1 \
|
|
crate://crates.io/object/0.29.0 \
|
|
crate://crates.io/once_cell/1.13.0 \
|
|
crate://crates.io/phf/0.10.1 \
|
|
crate://crates.io/phf_generator/0.10.0 \
|
|
crate://crates.io/phf_macros/0.10.0 \
|
|
crate://crates.io/phf_shared/0.10.0 \
|
|
crate://crates.io/pin-project-lite/0.2.9 \
|
|
crate://crates.io/pin-utils/0.1.0 \
|
|
crate://crates.io/ppv-lite86/0.2.16 \
|
|
crate://crates.io/proc-macro-error-attr/1.0.4 \
|
|
crate://crates.io/proc-macro-error/1.0.4 \
|
|
crate://crates.io/proc-macro-hack/0.5.19 \
|
|
crate://crates.io/proc-macro2/1.0.43 \
|
|
crate://crates.io/quote/1.0.21 \
|
|
crate://crates.io/rand/0.8.5 \
|
|
crate://crates.io/rand_chacha/0.3.1 \
|
|
crate://crates.io/rand_core/0.6.3 \
|
|
crate://crates.io/regex-syntax/0.6.27 \
|
|
crate://crates.io/regex/1.6.0 \
|
|
crate://crates.io/rustc-demangle/0.1.21 \
|
|
crate://crates.io/ryu/1.0.11 \
|
|
crate://crates.io/serde-generate/0.24.0 \
|
|
crate://crates.io/serde-reflection/0.3.6 \
|
|
crate://crates.io/serde/1.0.143 \
|
|
crate://crates.io/serde_bytes/0.11.7 \
|
|
crate://crates.io/serde_derive/1.0.143 \
|
|
crate://crates.io/serde_yaml/0.8.26 \
|
|
crate://crates.io/siphasher/0.3.10 \
|
|
crate://crates.io/slab/0.4.7 \
|
|
crate://crates.io/smawk/0.3.1 \
|
|
crate://crates.io/strsim/0.8.0 \
|
|
crate://crates.io/structopt-derive/0.4.18 \
|
|
crate://crates.io/structopt/0.3.26 \
|
|
crate://crates.io/syn/1.0.99 \
|
|
crate://crates.io/synstructure/0.12.6 \
|
|
crate://crates.io/textwrap/0.11.0 \
|
|
crate://crates.io/textwrap/0.13.4 \
|
|
crate://crates.io/thiserror-impl/1.0.32 \
|
|
crate://crates.io/thiserror/1.0.32 \
|
|
crate://crates.io/tokio/1.20.1 \
|
|
crate://crates.io/unicode-ident/1.0.3 \
|
|
crate://crates.io/unicode-segmentation/1.9.0 \
|
|
crate://crates.io/unicode-width/0.1.9 \
|
|
crate://crates.io/unicode-xid/0.2.3 \
|
|
crate://crates.io/vec_map/0.8.2 \
|
|
crate://crates.io/version_check/0.9.4 \
|
|
crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
|
|
crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
|
|
crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
|
|
crate://crates.io/winapi/0.3.9 \
|
|
crate://crates.io/yaml-rust/0.4.5 \
|
|
git://github.com/jerel/membrane;protocol=https;nobranch=1;name=membrane;destsuffix=membrane \
|
|
"
|
|
|
|
SRCREV_FORMAT .= "_membrane"
|
|
SRCREV_membrane = "4e788100fc71162ee4ac427620cc96e62c410bba"
|
|
EXTRA_OECARGO_PATHS += "${WORKDIR}/membrane"
|
|
|
|
S = "${WORKDIR}/git"
|
|
|
|
CARGO_SRC_DIR = "rust_example"
|
|
|
|
RUNTIME:class-native = "llvm"
|
|
TOOLCHAIN:class-native = "clang"
|
|
PREFERRED_PROVIDER_libgcc:class-native = "compiler-rt"
|
|
|
|
inherit cargo
|
|
|
|
#
|
|
# Dart generation
|
|
#
|
|
do_compile[network] = "1"
|
|
cargo_do_compile:class-native() {
|
|
|
|
export RUSTFLAGS
|
|
export RUST_BACKTRACE=full
|
|
export CARGO_TARGET_DIR=${S}/target
|
|
export CARGO_BUILD_TARGET="${HOST_SYS}"
|
|
|
|
export PUB_CACHE=${WORKDIR}/pub_cache
|
|
export MEMBRANE_LLVM_PATHS=${STAGING_DIR_NATIVE}/usr
|
|
export PATH="${STAGING_DIR_NATIVE}/usr/share/flutter/sdk/bin:$PATH"
|
|
|
|
cd ${S}/${CARGO_SRC_DIR}
|
|
|
|
# requires Dart
|
|
bbnote `dart --version`
|
|
|
|
# requires libclang.so
|
|
bbnote `find ${STAGING_DIR_NATIVE} -iname libclang.so*`
|
|
|
|
"${CARGO}" run -vv
|
|
}
|
|
|
|
cargo_do_install:class-native() {
|
|
|
|
install -d ${D}${datadir}/membrane/dart_example
|
|
|
|
cp -r ${S}/dart_example/* ${D}${datadir}/membrane/dart_example
|
|
}
|
|
|
|
cargo_do_install:append:class-target() {
|
|
|
|
rm -rf ${D}${bindir}
|
|
}
|
|
|
|
# remove symbol stripping from Cargo build - Yocto does it
|
|
cargo_do_compile:prepend:class-target() {
|
|
|
|
sed -i '/strip = \"symbols\"/d' ${S}/${CARGO_SRC_DIR}/Cargo.toml
|
|
}
|
|
|
|
FILES:${PN}:class-native = "${datadir}"
|
|
|
|
FILES:${PN} = "${libdir}"
|
|
|
|
BBCLASSEXTEND += "native"
|