blob: 3e20eaaa185e8288ad74bfd53b99f55993ea4023 [file] [log] [blame]
/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import android.support.DacOptions
import android.support.LibraryVersions
import org.gradle.internal.os.OperatingSystem
def root = ext.supportRootFolder
ext.inAppToolkitProject = rootProject.name == "app-toolkit"
if (ext.inAppToolkitProject) {
apply from: "${ext.supportRootFolder}/buildSrc/init.gradle"
init.setSdkInLocalPropertiesFile()
}
def checkoutRoot = "${root}/../.."
ext.checkoutRoot = checkoutRoot
ext.prebuiltsRoot = "$checkoutRoot/prebuilts"
ext.prebuiltsRootUri = "file://${prebuiltsRoot}"
final String platform = OperatingSystem.current().isMacOsX() ? 'darwin' : 'linux'
final String fullSdkPath = new File("${checkoutRoot}/prebuilts/fullsdk-${platform}").getCanonicalPath()
System.setProperty('android.home', fullSdkPath)
File props = file("local.properties")
props.write "sdk.dir=${fullSdkPath}"
def buildDir
def distDir
def supportLibBuildDir
if (ext.runningInBuildServer) {
supportLibBuildDir = new File(System.env.OUT_DIR + '/gradle/frameworks/support/build').getCanonicalFile();
buildDir = new File(System.env.OUT_DIR + '/gradle/frameworks/app-toolkit/build').getCanonicalFile()
distDir = new File(System.env.DIST_DIR).getCanonicalFile()
} else {
supportLibBuildDir = file("${checkoutRoot}/out/host/gradle/frameworks/support/build")
buildDir = file("${checkoutRoot}/out/host/gradle/frameworks/app-toolkit/build")
distDir = file("${checkoutRoot}/out/dist")
}
def localMavenRepo = "file://${new File(buildDir, "flatfoot_repo").absolutePath}"
ext.testApkDistOut = distDir
ext.testResultsDistDir = new File(distDir, "host-test-reports")
ext.localMavenRepo = localMavenRepo
file(localMavenRepo).delete()
file(localMavenRepo).mkdirs()
ext.repoNames += ["file://${new File(supportLibBuildDir, "support_repo").absolutePath}"]
apply from: "${ext.supportRootFolder}/app-toolkit/dependencies.gradle"
// repository creation task
def buildServerAnchorTask = rootProject.tasks.create(name : "runBuildServerCompilationTasks",
description: "Anchor task for everything we want to run in build server.")
if (ext.inAppToolkitProject) {
// always build offline docs for flatfoot specific builds.
ext.docsDac = new DacOptions("android/arch", "ARCH_DATA")
repos.addMavenRepositories(repositories)
init.setupRepoOutAndBuildNumber()
init.configureSubProjects()
init.setupRelease()
init.enableDoclavaAndJDiff(this)
rootProject.tasks["generateDocs"].exclude '**/R.java'
}
// flatfoot docs
def zipFlatfootDocsTask = rootProject.tasks.create(name : "createFlatfootDocsArchive", type : Zip) {
from rootProject.docsDir
destinationDir distDir
baseName = "flatfoot-docs"
}
buildServerAnchorTask.dependsOn zipFlatfootDocsTask
zipFlatfootDocsTask.dependsOn rootProject.tasks["generateDocs"]
buildServerAnchorTask.dependsOn createDiffArchive
buildServerAnchorTask.dependsOn createArchive
subprojects {
repos.addMavenRepositories(project.repositories)
if (project.name == 'doclava' || project.name == 'jdiff') {
project.tasks.whenTaskAdded { task ->
if (task instanceof org.gradle.api.tasks.testing.Test) {
task.enabled = false
}
}
return
}
if (project.getPath().contains("integration-tests")) {
// disable upload tasks
project.tasks.whenTaskAdded { task ->
if (task instanceof Upload || task.name == "generateSourceProps") {
task.enabled = false
}
}
}
project.tasks.whenTaskAdded { task ->
if (task.name.startsWith("assembleAndroidTest")) {
buildServerAnchorTask.dependsOn task
}
if (task.name.startsWith("assembleDebug")) {
buildServerAnchorTask.dependsOn task
}
}
}