// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. package com.flutter.gradle.tasks import org.gradle.api.DefaultTask import org.gradle.api.tasks.Input import org.gradle.api.tasks.Internal import org.gradle.api.tasks.Optional import org.gradle.api.tasks.OutputFiles import java.io.File // IMPORTANT: Do not add logic to the methods in this class directly, // instead add logic to [BaseFlutterTaskHelper]. /** * Base implementation of a Gradle task. Gradle tasks can not be instantiated for testing, * so this class delegates all logic to [BaseFlutterTaskHelper]. */ open class BaseFlutterTask : DefaultTask() { @Internal var flutterRoot: File? = null @Internal var flutterExecutable: File? = null @Input var buildMode: String? = null @Input var minSdkVersion: Int? = null @Optional @Input var localEngine: String? = null @Optional @Input var localEngineHost: String? = null @Optional @Input var localEngineSrcPath: String? = null @Input var targetPath: String? = null @Optional @Input var verbose: Boolean? = null @Optional @Input var fileSystemRoots: Array? = null @Optional @Input var fileSystemScheme: String? = null @Input var trackWidgetCreation: Boolean? = null @Optional @Input var targetPlatformValues: List? = null @Internal var sourceDir: File? = null @Internal var intermediateDir: File? = null @Optional @Input var frontendServerStarterPath: String? = null @Optional @Input var extraFrontEndOptions: String? = null @Optional @Input var extraGenSnapshotOptions: String? = null @Optional @Input var splitDebugInfo: String? = null @Optional @Input var treeShakeIcons: Boolean? = null @Optional @Input var dartObfuscation: Boolean? = null @Optional @Input var dartDefines: String? = null @Optional @Input var bundleSkSLPath: String? = null @Optional @Input var codeSizeDirectory: String? = null @Optional @Input var performanceMeasurementFile: String? = null @Optional @Input var deferredComponents: Boolean? = null @Optional @Input var validateDeferredComponents: Boolean? = null @Optional @Input var skipDependencyChecks: Boolean? = null @Optional @Input var flavor: String? = null /** * Gets the dependency file(s) by calling [com.flutter.gradle.tasks.BaseFlutterTaskHelper.getDependenciesFiles]. * * @return the dependency file(s) based on the current intermediate directory path. */ @OutputFiles fun getDependenciesFiles() = BaseFlutterTaskHelper.getDependenciesFiles(baseFlutterTask = this) /** * Builds a Flutter Android application bundle by verifying the Flutter source directory, * creating an intermediate build directory if necessary, and running flutter assemble by * configuring and executing with a set of build configurations. */ fun buildBundle() = BaseFlutterTaskHelper.buildBundle(baseFlutterTask = this) }