Expose the engine-src-path flag in the Gradle plugin

This commit is contained in:
Jason Simmons 2016-03-23 13:33:11 -07:00
parent 9cce0833ea
commit d5b30f68ce

View file

@ -18,6 +18,7 @@ import org.gradle.api.tasks.TaskAction
class FlutterPlugin implements Plugin<Project> { class FlutterPlugin implements Plugin<Project> {
private File sdkDir private File sdkDir
private File engineSrcDir
@Override @Override
void apply(Project project) { void apply(Project project) {
@ -42,6 +43,14 @@ class FlutterPlugin implements Plugin<Project> {
throw new GradleException("flutter.sdk must point to the Flutter SDK directory") throw new GradleException("flutter.sdk must point to the Flutter SDK directory")
} }
String engineSrcPath = properties.getProperty("flutter.engineSrcPath")
if (engineSrcPath != null) {
engineSrcDir = project.file(engineSrcPath)
if (!engineSrcDir.isDirectory()) {
throw new GradleException("flutter.engineSrcPath must be a Flutter engine source directory")
}
}
project.extensions.create("flutter", FlutterExtension) project.extensions.create("flutter", FlutterExtension)
project.dependencies.add("compile", flutterEngine) project.dependencies.add("compile", flutterEngine)
project.afterEvaluate this.&addFlutterTask project.afterEvaluate this.&addFlutterTask
@ -56,6 +65,7 @@ class FlutterPlugin implements Plugin<Project> {
sdkDir this.sdkDir sdkDir this.sdkDir
sourceDir project.file(project.flutter.source) sourceDir project.file(project.flutter.source)
intermediateDir project.file("${project.buildDir}/${AndroidProject.FD_INTERMEDIATES}/flutter") intermediateDir project.file("${project.buildDir}/${AndroidProject.FD_INTERMEDIATES}/flutter")
engineSrcDir this.engineSrcDir
} }
project.android.applicationVariants.all { variant -> project.android.applicationVariants.all { variant ->
@ -83,6 +93,8 @@ class FlutterTask extends DefaultTask {
@OutputDirectory @OutputDirectory
File intermediateDir File intermediateDir
File engineSrcDir
String getFlxPath() { String getFlxPath() {
return "${intermediateDir}/app.flx" return "${intermediateDir}/app.flx"
} }
@ -97,6 +109,9 @@ class FlutterTask extends DefaultTask {
project.exec { project.exec {
executable "${sdkDir}/bin/flutter" executable "${sdkDir}/bin/flutter"
workingDir sourceDir workingDir sourceDir
if (engineSrcDir != null) {
args "--engine-src-path", engineSrcDir
}
args "build", "flx" args "build", "flx"
args "-o", flxPath args "-o", flxPath
args "--snapshot", "${intermediateDir}/snapshot_blob.bin" args "--snapshot", "${intermediateDir}/snapshot_blob.bin"