Jackson Gardner 31209d04ff
flutter test --wasm support (#145347)
* Adds support for `flutter test --wasm`.
  * The test compilation flow is a bit different now, so that it supports compilers other than DDC. Specifically, when we run a set of unit tests, we generate a "switchboard" main function that imports each unit test and runs the main function for a specific one based off of a value set by the JS bootstrapping code. This way, there is one compile step and the same compile output is invoked for each unit test file.
* Also, removes all references to `dart:html` from flutter/flutter.
* Adds CI steps for running the framework unit tests with dart2wasm+skwasm
  * These steps are marked as `bringup: true`, so we don't know what kind of failures they will result in. Any failures they have will not block the tree at all yet while we're still in `bringup: true`. Once this PR is merged, I plan on looking at any failures and either fixing them or disabling them so we can get these CI steps running on presubmit.

This fixes https://github.com/flutter/flutter/issues/126692
2024-03-21 20:08:07 +00:00

151 lines
4.2 KiB
Cheetah

name: {{projectName}}
description: {{description}}
version: 0.0.1
homepage:
environment:
sdk: {{dartSdkVersionBounds}}
flutter: '>=3.3.0'
dependencies:
flutter:
sdk: flutter
{{#web}}
flutter_web_plugins:
sdk: flutter
web: ^0.5.1
{{/web}}
plugin_platform_interface: ^2.0.2
dev_dependencies:
{{#withFfi}}
ffi: ^2.1.0
ffigen: ^11.0.0
{{/withFfi}}
flutter_test:
sdk: flutter
flutter_lints: ^3.0.0
# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec
# The following section is specific to Flutter packages.
flutter:
# This section identifies this Flutter project as a plugin project.
# The 'pluginClass' specifies the class (in Java, Kotlin, Swift, Objective-C, etc.)
# which should be registered in the plugin registry. This is required for
# using method channels.
# The Android 'package' specifies package in which the registered class is.
# This is required for using method channels on Android.
# The 'ffiPlugin' specifies that native code should be built and bundled.
# This is required for using `dart:ffi`.
# All these are used by the tooling to maintain consistency when
# adding or updating assets for this project.
{{#withFfiPluginHook}}
#
# Please refer to README.md for a detailed explanation.
plugin:
platforms:
{{#no_platforms}}
# This FFI plugin project was generated without specifying any
# platforms with the `--platform` argument. If you see the `some_platform` map below, remove it and
# then add platforms following the instruction here:
# https://flutter.dev/docs/development/packages-and-plugins/developing-packages#plugin-platforms
# -------------------
some_platform:
ffiPlugin: true
# -------------------
{{/no_platforms}}
{{#android}}
android:
ffiPlugin: true
{{/android}}
{{#ios}}
ios:
ffiPlugin: true
{{/ios}}
{{#linux}}
linux:
ffiPlugin: true
{{/linux}}
{{#macos}}
macos:
ffiPlugin: true
{{/macos}}
{{#windows}}
windows:
ffiPlugin: true
{{/windows}}
{{/withFfiPluginHook}}
{{#withPlatformChannelPluginHook}}
plugin:
platforms:
{{#no_platforms}}
# This plugin project was generated without specifying any
# platforms with the `--platform` argument. If you see the `some_platform` map below, remove it and
# then add platforms following the instruction here:
# https://flutter.dev/docs/development/packages-and-plugins/developing-packages#plugin-platforms
# -------------------
some_platform:
pluginClass: somePluginClass
# -------------------
{{/no_platforms}}
{{#android}}
android:
package: {{androidIdentifier}}
pluginClass: {{pluginClass}}
{{/android}}
{{#ios}}
ios:
pluginClass: {{pluginClass}}
{{/ios}}
{{#linux}}
linux:
pluginClass: {{pluginClass}}
{{/linux}}
{{#macos}}
macos:
pluginClass: {{pluginClass}}
{{/macos}}
{{#windows}}
windows:
pluginClass: {{pluginClass}}CApi
{{/windows}}
{{#web}}
web:
pluginClass: {{pluginDartClass}}Web
fileName: {{projectName}}_web.dart
{{/web}}
{{/withPlatformChannelPluginHook}}
# To add assets to your plugin package, add an assets section, like this:
# assets:
# - images/a_dot_burr.jpeg
# - images/a_dot_ham.jpeg
#
# For details regarding assets in packages, see
# https://flutter.dev/assets-and-images/#from-packages
#
# An image asset can refer to one or more resolution-specific "variants", see
# https://flutter.dev/assets-and-images/#resolution-aware
# To add custom fonts to your plugin package, add a fonts section here,
# in this "flutter" section. Each entry in this list should have a
# "family" key with the font family name, and a "fonts" key with a
# list giving the asset and other descriptors for the font. For
# example:
# fonts:
# - family: Schyler
# fonts:
# - asset: fonts/Schyler-Regular.ttf
# - asset: fonts/Schyler-Italic.ttf
# style: italic
# - family: Trajan Pro
# fonts:
# - asset: fonts/TrajanPro.ttf
# - asset: fonts/TrajanPro_Bold.ttf
# weight: 700
#
# For details regarding fonts in packages, see
# https://flutter.dev/custom-fonts/#from-packages