################################################################################
#
# host-flutter-sdk-bin
#
################################################################################

FLUTTER_SDK_BIN_VERSION = 3.19.5
FLUTTER_SDK_BIN_SITE = https://storage.googleapis.com/flutter_infra_release/releases/stable/linux
FLUTTER_SDK_BIN_SOURCE = flutter_linux_$(FLUTTER_SDK_BIN_VERSION)-stable.tar.xz
FLUTTER_SDK_BIN_LICENSE = BSD-3-Clause
FLUTTER_SDK_BIN_LICENSE_FILES = LICENSE

HOST_FLUTTER_SDK_BIN_SDK = $(HOST_DIR)/share/flutter/sdk
HOST_FLUTTER_SDK_BIN_DART_SDK = $(HOST_FLUTTER_SDK_BIN_SDK)/bin/cache/dart-sdk
HOST_FLUTTER_SDK_BIN_SDK_ENGINE = $(HOST_FLUTTER_SDK_BIN_SDK)/bin/cache/artifacts/engine

# We must set the home directory to the sdk directory or else flutter will
# place .dart, .dart-sdk, and .flutter in ~/.
HOST_FLUTTER_SDK_BIN_ENV = \
	HOME=$(HOST_FLUTTER_SDK_BIN_SDK) \
	PATH=$(BR_PATH):$(HOST_FLUTTER_SDK_BIN_SDK):$(HOST_FLUTTER_SDK_BIN_SDK)/bin \
	PUB_CACHE=$(FLUTTER_SDK_BIN_PUB_CACHE)

# The following config options must be ran one at a time.
HOST_FLUTTER_SDK_BIN_CONF_OPTS = \
	--clear-features \
	--no-analytics \
	--disable-analytics \
	--enable-custom-devices \
	--enable-linux-desktop \
	--no-enable-android \
	--no-enable-fuchsia \
	--no-enable-ios \
	--no-enable-macos-desktop \
	--no-enable-windows-desktop

define HOST_FLUTTER_SDK_BIN_CONFIGURE_CMDS
	$(foreach i,$(HOST_FLUTTER_SDK_BIN_CONF_OPTS),
		$(HOST_FLUTTER_SDK_BIN_ENV) $(@D)/bin/flutter config $(i); \
	)
	$(HOST_FLUTTER_SDK_BIN_ENV) $(@D)/bin/dart --disable-analytics
endef

define HOST_FLUTTER_SDK_BIN_BUILD_CMDS
	mkdir -p $(HOST_FLUTTER_SDK_BIN_SDK)
	cd $(@D) && \
		$(HOST_FLUTTER_SDK_BIN_ENV) $(@D)/bin/flutter precache;
endef

define HOST_FLUTTER_SDK_BIN_INSTALL_CMDS
	cp -rpdT $(@D)/. $(HOST_FLUTTER_SDK_BIN_SDK)/
endef

ifeq ($(FLUTTER_ENGINE_RUNTIME_MODE_PROFILE),y)
HOST_FLUTTER_SDK_BIN_PROFILE_FLAGS = --track-widget-creation
HOST_FLUTTER_SDK_BIN_SDK_PRODUCT = false
HOST_FLUTTER_SDK_BIN_SDK_ROOT = $(HOST_FLUTTER_SDK_BIN_SDK_ENGINE)/common/flutter_patched_sdk
HOST_FLUTTER_SDK_BIN_SDK_VM_PROFILE = true
else ifeq ($(BR2_ENABLE_RUNTIME_DEBUG),y)
HOST_FLUTTER_SDK_BIN_DEBUG_FLAGS = --enable-asserts
HOST_FLUTTER_SDK_BIN_SDK_PRODUCT = false
HOST_FLUTTER_SDK_BIN_SDK_ROOT = $(HOST_FLUTTER_SDK_BIN_SDK_ENGINE)/common/flutter_patched_sdk
HOST_FLUTTER_SDK_BIN_SDK_VM_PROFILE = false
else
HOST_FLUTTER_SDK_BIN_SDK_PRODUCT = true
HOST_FLUTTER_SDK_BIN_SDK_ROOT = $(HOST_FLUTTER_SDK_BIN_SDK_ENGINE)/common/flutter_patched_sdk_product
HOST_FLUTTER_SDK_BIN_SDK_VM_PROFILE = false
endif

# The Order matters.Taken from:
# https://github.com/meta-flutter/meta-flutter/blob/kirkstone/classes/flutter-app.inc
HOST_FLUTTER_SDK_BIN_DART_ARGS = \
	--verbose \
	--disable-analytics \
	--disable-dart-dev $(HOST_FLUTTER_SDK_BIN_SDK_ENGINE)/linux-x64/frontend_server.dart.snapshot \
	--sdk-root $(HOST_FLUTTER_SDK_BIN_SDK_ROOT) \
	--target=flutter \
	--no-print-incremental-dependencies \
	-Ddart.vm.profile=$(HOST_FLUTTER_SDK_BIN_SDK_VM_PROFILE) \
	-Ddart.vm.product=$(HOST_FLUTTER_SDK_BIN_SDK_PRODUCT) \
	$(HOST_FLUTTER_SDK_BIN_DEBUG_FLAGS) \
	$(HOST_FLUTTER_SDK_BIN_PROFILE_FLAGS) \
	--aot \
	--tfa \
	--target-os linux \
	--packages .dart_tool/package_config.json \
	--output-dill .dart_tool/flutter_build/*/app.dill \
	--depfile .dart_tool/flutter_build/*/kernel_snapshot.d

# Helper wrapper to run flutter when building flutter applications.
HOST_FLUTTER_SDK_BIN_FLUTTER = \
	$(HOST_FLUTTER_SDK_BIN_ENV) \
	$(HOST_FLUTTER_SDK_BIN_SDK)/bin/flutter

# Helper wrapper to run dart when building flutter applications.
HOST_FLUTTER_SDK_BIN_DART_BIN = \
	$(HOST_FLUTTER_SDK_BIN_ENV) \
	$(HOST_FLUTTER_SDK_BIN_DART_SDK)/bin/dart \
	$(HOST_FLUTTER_SDK_BIN_DART_ARGS)

$(eval $(host-generic-package))

# For target packages to locate said pub-cache
FLUTTER_SDK_BIN_PUB_CACHE = $(DL_DIR)/br-flutter-pub-cache
