1################################################################################ 2# 3# host-flutter-sdk-bin 4# 5################################################################################ 6 7FLUTTER_SDK_BIN_VERSION = 3.19.5 8FLUTTER_SDK_BIN_SITE = https://storage.googleapis.com/flutter_infra_release/releases/stable/linux 9FLUTTER_SDK_BIN_SOURCE = flutter_linux_$(FLUTTER_SDK_BIN_VERSION)-stable.tar.xz 10FLUTTER_SDK_BIN_LICENSE = BSD-3-Clause 11FLUTTER_SDK_BIN_LICENSE_FILES = LICENSE 12 13HOST_FLUTTER_SDK_BIN_SDK = $(HOST_DIR)/share/flutter/sdk 14HOST_FLUTTER_SDK_BIN_DART_SDK = $(HOST_FLUTTER_SDK_BIN_SDK)/bin/cache/dart-sdk 15HOST_FLUTTER_SDK_BIN_SDK_ENGINE = $(HOST_FLUTTER_SDK_BIN_SDK)/bin/cache/artifacts/engine 16 17# We must set the home directory to the sdk directory or else flutter will 18# place .dart, .dart-sdk, and .flutter in ~/. 19HOST_FLUTTER_SDK_BIN_ENV = \ 20 HOME=$(HOST_FLUTTER_SDK_BIN_SDK) \ 21 PATH=$(BR_PATH):$(HOST_FLUTTER_SDK_BIN_SDK):$(HOST_FLUTTER_SDK_BIN_SDK)/bin \ 22 PUB_CACHE=$(FLUTTER_SDK_BIN_PUB_CACHE) 23 24# The following config options must be ran one at a time. 25HOST_FLUTTER_SDK_BIN_CONF_OPTS = \ 26 --clear-features \ 27 --no-analytics \ 28 --disable-analytics \ 29 --enable-custom-devices \ 30 --enable-linux-desktop \ 31 --no-enable-android \ 32 --no-enable-fuchsia \ 33 --no-enable-ios \ 34 --no-enable-macos-desktop \ 35 --no-enable-windows-desktop 36 37define HOST_FLUTTER_SDK_BIN_CONFIGURE_CMDS 38 $(foreach i,$(HOST_FLUTTER_SDK_BIN_CONF_OPTS), 39 $(HOST_FLUTTER_SDK_BIN_ENV) $(@D)/bin/flutter config $(i); \ 40 ) 41 $(HOST_FLUTTER_SDK_BIN_ENV) $(@D)/bin/dart --disable-analytics 42endef 43 44define HOST_FLUTTER_SDK_BIN_BUILD_CMDS 45 mkdir -p $(HOST_FLUTTER_SDK_BIN_SDK) 46 cd $(@D) && \ 47 $(HOST_FLUTTER_SDK_BIN_ENV) $(@D)/bin/flutter precache; 48endef 49 50define HOST_FLUTTER_SDK_BIN_INSTALL_CMDS 51 cp -rpdT $(@D)/. $(HOST_FLUTTER_SDK_BIN_SDK)/ 52endef 53 54ifeq ($(FLUTTER_ENGINE_RUNTIME_MODE_PROFILE),y) 55HOST_FLUTTER_SDK_BIN_PROFILE_FLAGS = --track-widget-creation 56HOST_FLUTTER_SDK_BIN_SDK_PRODUCT = false 57HOST_FLUTTER_SDK_BIN_SDK_ROOT = $(HOST_FLUTTER_SDK_BIN_SDK_ENGINE)/common/flutter_patched_sdk 58HOST_FLUTTER_SDK_BIN_SDK_VM_PROFILE = true 59else ifeq ($(BR2_ENABLE_RUNTIME_DEBUG),y) 60HOST_FLUTTER_SDK_BIN_DEBUG_FLAGS = --enable-asserts 61HOST_FLUTTER_SDK_BIN_SDK_PRODUCT = false 62HOST_FLUTTER_SDK_BIN_SDK_ROOT = $(HOST_FLUTTER_SDK_BIN_SDK_ENGINE)/common/flutter_patched_sdk 63HOST_FLUTTER_SDK_BIN_SDK_VM_PROFILE = false 64else 65HOST_FLUTTER_SDK_BIN_SDK_PRODUCT = true 66HOST_FLUTTER_SDK_BIN_SDK_ROOT = $(HOST_FLUTTER_SDK_BIN_SDK_ENGINE)/common/flutter_patched_sdk_product 67HOST_FLUTTER_SDK_BIN_SDK_VM_PROFILE = false 68endif 69 70# The Order matters.Taken from: 71# https://github.com/meta-flutter/meta-flutter/blob/kirkstone/classes/flutter-app.inc 72HOST_FLUTTER_SDK_BIN_DART_ARGS = \ 73 --verbose \ 74 --disable-analytics \ 75 --disable-dart-dev $(HOST_FLUTTER_SDK_BIN_SDK_ENGINE)/linux-x64/frontend_server.dart.snapshot \ 76 --sdk-root $(HOST_FLUTTER_SDK_BIN_SDK_ROOT) \ 77 --target=flutter \ 78 --no-print-incremental-dependencies \ 79 -Ddart.vm.profile=$(HOST_FLUTTER_SDK_BIN_SDK_VM_PROFILE) \ 80 -Ddart.vm.product=$(HOST_FLUTTER_SDK_BIN_SDK_PRODUCT) \ 81 $(HOST_FLUTTER_SDK_BIN_DEBUG_FLAGS) \ 82 $(HOST_FLUTTER_SDK_BIN_PROFILE_FLAGS) \ 83 --aot \ 84 --tfa \ 85 --target-os linux \ 86 --packages .dart_tool/package_config.json \ 87 --output-dill .dart_tool/flutter_build/*/app.dill \ 88 --depfile .dart_tool/flutter_build/*/kernel_snapshot.d 89 90# Helper wrapper to run flutter when building flutter applications. 91HOST_FLUTTER_SDK_BIN_FLUTTER = \ 92 $(HOST_FLUTTER_SDK_BIN_ENV) \ 93 $(HOST_FLUTTER_SDK_BIN_SDK)/bin/flutter 94 95# Helper wrapper to run dart when building flutter applications. 96HOST_FLUTTER_SDK_BIN_DART_BIN = \ 97 $(HOST_FLUTTER_SDK_BIN_ENV) \ 98 $(HOST_FLUTTER_SDK_BIN_DART_SDK)/bin/dart \ 99 $(HOST_FLUTTER_SDK_BIN_DART_ARGS) 100 101$(eval $(host-generic-package)) 102 103# For target packages to locate said pub-cache 104FLUTTER_SDK_BIN_PUB_CACHE = $(DL_DIR)/br-flutter-pub-cache 105