blob: fdc859002ada28bb2690f6e4abaddcd558217c18 [file] [log] [blame]
// Copyright 2013 The Flutter Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:platform/platform.dart';
import 'process_runner.dart';
import 'repository_package.dart';
/// Runs the appropriate `flutter build --config-only` command for the given
/// target platform and build mode, to ensure that all of the native build files
/// are present for that mode.
///
/// If [streamOutput] is false, output will only be printed if the command
/// fails.
Future<bool> runConfigOnlyBuild(
RepositoryPackage package,
ProcessRunner processRunner,
Platform platform,
FlutterPlatform targetPlatform, {
bool buildDebug = false,
List<String> extraArgs = const <String>[],
}) async {
final String flutterCommand = platform.isWindows ? 'flutter.bat' : 'flutter';
final String target = switch (targetPlatform) {
FlutterPlatform.android => 'apk',
FlutterPlatform.ios => 'ios',
FlutterPlatform.linux => 'linux',
FlutterPlatform.macos => 'macos',
FlutterPlatform.web => 'web',
FlutterPlatform.windows => 'windows',
};
final int exitCode = await processRunner.runAndStream(
flutterCommand,
<String>[
'build',
target,
if (buildDebug) '--debug',
'--config-only',
...extraArgs,
],
workingDir: package.directory);
return exitCode == 0;
}