-
Notifications
You must be signed in to change notification settings - Fork 61
/
flutter-app.inc
71 lines (51 loc) · 2.53 KB
/
flutter-app.inc
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#
# Copyright (c) 2020-2024 Joel Winarske. All rights reserved.
#
# Helper class for building Flutter Applications.
# Assumes that:
# - S is defined and points to source directory.
# - PUBSPEC_APPNAME is defined correctly. This is the name value from pubspec.yml.
#
require conf/include/flutter-version.inc
require conf/include/app-utils.inc
require conf/include/common.inc
DEPENDS += " \
flutter-engine \
"
BUILD_TYPE = "app"
FLUTTER_BUILD_ARGS ??= "bundle"
do_install() {
# determine build type based on what flutter-engine installed
FLUTTER_RUNTIME_MODES="$(ls ${STAGING_DIR_TARGET}${datadir}/flutter/${FLUTTER_SDK_VERSION})"
for FLUTTER_RUNTIME_MODE in $FLUTTER_RUNTIME_MODES; do
if ! echo "${FLUTTER_APP_RUNTIME_MODES}" | grep -qw "$FLUTTER_RUNTIME_MODE"; then
bbnote "Skipping install for: ${FLUTTER_RUNTIME_MODE}"
continue
fi
bbnote "[${FLUTTER_RUNTIME_MODE}] Flutter Bundle Assets: Installing"
# App artifacts
install -d ${D}${FLUTTER_INSTALL_DIR}/${FLUTTER_SDK_VERSION}/${FLUTTER_RUNTIME_MODE}/data/flutter_assets
install -d ${D}${FLUTTER_INSTALL_DIR}/${FLUTTER_SDK_VERSION}/${FLUTTER_RUNTIME_MODE}/lib
cp -r ${S}/${FLUTTER_APPLICATION_PATH}/build/flutter_assets/* \
${D}${FLUTTER_INSTALL_DIR}/${FLUTTER_SDK_VERSION}/${FLUTTER_RUNTIME_MODE}/data/flutter_assets/
if [ "${FLUTTER_RUNTIME_MODE}" = "release" ] || [ "${FLUTTER_RUNTIME_MODE}" = "profile" ]; then
bbnote "[${FLUTTER_RUNTIME_MODE}] Flutter AOT: Installing ${FLUTTER_RUNTIME_MODE}"
install -d ${D}${FLUTTER_INSTALL_DIR}/${FLUTTER_SDK_VERSION}/${FLUTTER_RUNTIME_MODE}/lib
cp ${S}/${FLUTTER_APPLICATION_PATH}/libapp.so \
${D}${FLUTTER_INSTALL_DIR}/${FLUTTER_SDK_VERSION}/${FLUTTER_RUNTIME_MODE}/lib/
fi
bbnote "[${FLUTTER_RUNTIME_MODE}] Flutter Bundle Symlink: Installing"
# Engine artifact symlinks
ln -sfr ${D}${datadir}/flutter/${FLUTTER_SDK_VERSION}/${FLUTTER_RUNTIME_MODE}/data/icudtl.dat \
${D}${FLUTTER_INSTALL_DIR}/${FLUTTER_SDK_VERSION}/${FLUTTER_RUNTIME_MODE}/data/icudtl.dat
ln -sfr ${D}${datadir}/flutter/${FLUTTER_SDK_VERSION}/${FLUTTER_RUNTIME_MODE}/lib/libflutter_engine.so \
${D}${FLUTTER_INSTALL_DIR}/${FLUTTER_SDK_VERSION}/${FLUTTER_RUNTIME_MODE}/lib/libflutter_engine.so
done
}
INSANE_SKIP:${PN} += " ldflags libdir dev-so"
FILES:${PN} = "\
${bindir} \
${libdir} \
${FLUTTER_INSTALL_DIR} \
"
RDEPENDS:${PN} = "flutter-engine"