mirror of
https://github.com/flutter/packages.git
synced 2025-06-03 09:41:19 +08:00
[flutter_plugin_tool] Add support for building UWP plugins (#4047)
This allows building UWP plugin examples with `build-examples --winuwp`. As with previous pre-stable-template desktop support, this avoids the issue of unstable app templates by running `flutter create` on the fly before trying to build, so a template that will bitrot doesn't need to be checked in. Also adds no-op "support" for `drive-examples --winuwp`, with warnings about it not doing anything. This is to handle the fact that the LUCI recipe is shared between Win32 and UWP, and didn't conditionalize `drive`. Rather than change that, then change it back later, this just adds the no-op support now (since changing the tooling is much easier than changing LUCI recipes currently). This required some supporting tool changes: - Adds the ability to check for the new platform variants in a pubspec - Adds the ability to write test pubspecs that include variants, for testing Part of https://github.com/flutter/flutter/issues/82817
This commit is contained in:
@ -57,8 +57,8 @@ void main() {
|
||||
group('iOS', () {
|
||||
test('skip if iOS is not supported', () async {
|
||||
createFakePlugin('plugin', packagesDir,
|
||||
platformSupport: <String, PlatformSupport>{
|
||||
kPlatformMacos: PlatformSupport.inline,
|
||||
platformSupport: <String, PlatformDetails>{
|
||||
kPlatformMacos: const PlatformDetails(PlatformSupport.inline),
|
||||
});
|
||||
|
||||
final List<String> output =
|
||||
@ -70,8 +70,8 @@ void main() {
|
||||
|
||||
test('skip if iOS is implemented in a federated package', () async {
|
||||
createFakePlugin('plugin', packagesDir,
|
||||
platformSupport: <String, PlatformSupport>{
|
||||
kPlatformIos: PlatformSupport.federated
|
||||
platformSupport: <String, PlatformDetails>{
|
||||
kPlatformIos: const PlatformDetails(PlatformSupport.federated)
|
||||
});
|
||||
|
||||
final List<String> output =
|
||||
@ -83,8 +83,8 @@ void main() {
|
||||
|
||||
test('runs for iOS plugin', () async {
|
||||
final Directory pluginDirectory = createFakePlugin(
|
||||
'plugin', packagesDir, platformSupport: <String, PlatformSupport>{
|
||||
kPlatformIos: PlatformSupport.inline
|
||||
'plugin', packagesDir, platformSupport: <String, PlatformDetails>{
|
||||
kPlatformIos: const PlatformDetails(PlatformSupport.inline)
|
||||
});
|
||||
|
||||
final Directory pluginExampleDirectory =
|
||||
@ -126,8 +126,8 @@ void main() {
|
||||
|
||||
test('fails if xcrun fails', () async {
|
||||
createFakePlugin('plugin', packagesDir,
|
||||
platformSupport: <String, PlatformSupport>{
|
||||
kPlatformIos: PlatformSupport.inline
|
||||
platformSupport: <String, PlatformDetails>{
|
||||
kPlatformIos: const PlatformDetails(PlatformSupport.inline)
|
||||
});
|
||||
|
||||
processRunner.mockProcessesForExecutable['xcrun'] = <io.Process>[
|
||||
@ -172,8 +172,8 @@ void main() {
|
||||
|
||||
test('skip if macOS is implemented in a federated package', () async {
|
||||
createFakePlugin('plugin', packagesDir,
|
||||
platformSupport: <String, PlatformSupport>{
|
||||
kPlatformMacos: PlatformSupport.federated,
|
||||
platformSupport: <String, PlatformDetails>{
|
||||
kPlatformMacos: const PlatformDetails(PlatformSupport.federated),
|
||||
});
|
||||
|
||||
final List<String> output = await runCapturingPrint(
|
||||
@ -186,8 +186,8 @@ void main() {
|
||||
test('runs for macOS plugin', () async {
|
||||
final Directory pluginDirectory1 = createFakePlugin(
|
||||
'plugin', packagesDir,
|
||||
platformSupport: <String, PlatformSupport>{
|
||||
kPlatformMacos: PlatformSupport.inline,
|
||||
platformSupport: <String, PlatformDetails>{
|
||||
kPlatformMacos: const PlatformDetails(PlatformSupport.inline),
|
||||
});
|
||||
|
||||
final Directory pluginExampleDirectory =
|
||||
@ -223,8 +223,8 @@ void main() {
|
||||
|
||||
test('fails if xcrun fails', () async {
|
||||
createFakePlugin('plugin', packagesDir,
|
||||
platformSupport: <String, PlatformSupport>{
|
||||
kPlatformMacos: PlatformSupport.inline,
|
||||
platformSupport: <String, PlatformDetails>{
|
||||
kPlatformMacos: const PlatformDetails(PlatformSupport.inline),
|
||||
});
|
||||
|
||||
processRunner.mockProcessesForExecutable['xcrun'] = <io.Process>[
|
||||
@ -253,9 +253,9 @@ void main() {
|
||||
test('runs both iOS and macOS when supported', () async {
|
||||
final Directory pluginDirectory1 = createFakePlugin(
|
||||
'plugin', packagesDir,
|
||||
platformSupport: <String, PlatformSupport>{
|
||||
kPlatformIos: PlatformSupport.inline,
|
||||
kPlatformMacos: PlatformSupport.inline,
|
||||
platformSupport: <String, PlatformDetails>{
|
||||
kPlatformIos: const PlatformDetails(PlatformSupport.inline),
|
||||
kPlatformMacos: const PlatformDetails(PlatformSupport.inline),
|
||||
});
|
||||
|
||||
final Directory pluginExampleDirectory =
|
||||
@ -313,8 +313,8 @@ void main() {
|
||||
test('runs only macOS for a macOS plugin', () async {
|
||||
final Directory pluginDirectory1 = createFakePlugin(
|
||||
'plugin', packagesDir,
|
||||
platformSupport: <String, PlatformSupport>{
|
||||
kPlatformMacos: PlatformSupport.inline,
|
||||
platformSupport: <String, PlatformDetails>{
|
||||
kPlatformMacos: const PlatformDetails(PlatformSupport.inline),
|
||||
});
|
||||
|
||||
final Directory pluginExampleDirectory =
|
||||
@ -354,8 +354,8 @@ void main() {
|
||||
|
||||
test('runs only iOS for a iOS plugin', () async {
|
||||
final Directory pluginDirectory = createFakePlugin(
|
||||
'plugin', packagesDir, platformSupport: <String, PlatformSupport>{
|
||||
kPlatformIos: PlatformSupport.inline
|
||||
'plugin', packagesDir, platformSupport: <String, PlatformDetails>{
|
||||
kPlatformIos: const PlatformDetails(PlatformSupport.inline)
|
||||
});
|
||||
|
||||
final Directory pluginExampleDirectory =
|
||||
|
Reference in New Issue
Block a user