gradle for support lib.
To build: 'gradle release'
This requires a local version of Gradle for now, until
we figure out where we'll put the wrapper.
Change-Id: I8cf57fd97d5213dbc28d3bf68ea175348fe9a11b
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..88ae4ca
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,49 @@
+buildscript {
+ repositories {
+ maven { url '../../prebuilts/gradle-plugin' }
+ maven { url '../../prebuilts/tools/common/m2/repository' }
+ maven { url '../../prebuilts/tools/common/m2/internal' }
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:0.5.7'
+ }
+}
+
+ext.version = '18.0.1'
+
+// ext.androidHostOut is shared by all tools/{base,build,swt} gradle projects/
+ext.androidHostOut = file("$rootDir/../../out")
+
+// rootProject.buildDir is specific to this gradle build.
+buildDir = new File(ext.androidHostOut, "host/gradle/frameworks/support/build")
+
+ext.androidRepoOut = new File(ext.androidHostOut, "host/support_repo/")
+
+task release(type: Copy) {
+ from "$rootDir/../../prebuilts/maven_repo/android"
+ into project.ext.androidRepoOut
+}
+
+subprojects {
+ // Change buildDir first so that all plugins pick up the new value.
+ project.buildDir = project.file("$project.parent.buildDir/../$project.name")
+
+ apply plugin: 'maven'
+
+ version = rootProject.ext.version
+ group = 'com.android.support'
+
+ task release(type: Upload) {
+ configuration = configurations.archives
+ repositories {
+ mavenDeployer {
+ repository(url: uri("$rootProject.ext.androidRepoOut"))
+ }
+ }
+ }
+ release.dependsOn rootProject.tasks.release
+}
+
+FileCollection getAndroidPrebuilt(String apiLevel) {
+ files("$rootDir/../../prebuilts/sdk/$apiLevel/android.jar")
+}
diff --git a/local.properties b/local.properties
new file mode 100644
index 0000000..5b31c8a
--- /dev/null
+++ b/local.properties
@@ -0,0 +1 @@
+android.dir=../../
\ No newline at end of file
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 0000000..7568f98
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1,6 @@
+include 'v4'
+include 'v13'
+include 'v7:gridlayout'
+include 'v7:appcompat'
+include 'v7:mediarouter'
+
diff --git a/v13/build.gradle b/v13/build.gradle
new file mode 100644
index 0000000..89359c7
--- /dev/null
+++ b/v13/build.gradle
@@ -0,0 +1,95 @@
+apply plugin: 'java'
+
+archivesBaseName = 'support-v13'
+
+sourceSets {
+ main.java.srcDir 'java'
+ ics.java.srcDir 'ics'
+ icsmr1.java.srcDir 'ics-mr1'
+ k.java.srcDir 'k'
+}
+
+dependencies {
+ icsCompile getAndroidPrebuilt('14')
+
+ icsmr1Compile getAndroidPrebuilt('15')
+
+ kCompile getAndroidPrebuilt('current')
+
+ // order is important as we need the API 13 before the API 4 so that it uses the latest one.
+ compile getAndroidPrebuilt('13')
+ compile project(':v4')
+ compile sourceSets.ics.output
+ compile sourceSets.icsmr1.output
+ compile sourceSets.k.output
+}
+
+jar {
+ from sourceSets.ics.output
+ from sourceSets.icsmr1.output
+ from sourceSets.k.output
+}
+
+uploadArchives {
+ repositories {
+ mavenDeployer {
+
+ repository(url: uri(project.parent.ext.androidRepoOut)) {
+ }
+
+ pom.project {
+ name 'Android Support Library v13'
+ description "The Support Library is a static library that you can add to your Android application in order to use APIs that are either not available for older platform versions or utility APIs that aren't a part of the framework APIs. Compatible on devices running API 13 or later."
+ url 'http://developer.android.com/tools/extras/support-library.html'
+ inceptionYear '2011'
+
+ licenses {
+ license {
+ name 'The Apache Software License, Version 2.0'
+ url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+ distribution 'repo'
+ }
+ }
+
+ scm {
+ url "http://source.android.com"
+ connection "scm:git:https://android.googlesource.com/platform/frameworks/support"
+ }
+ developers {
+ developer {
+ name 'The Android Open Source Project'
+ }
+ }
+ }
+ }
+ }
+}
+
+// configuration for the javadoc to include all source sets.
+javadoc {
+ source sourceSets.main.allJava
+ source sourceSets.ics.allJava
+ source sourceSets.icsmr1.allJava
+ source sourceSets.k.allJava
+}
+
+// custom tasks for creating source/javadoc jars
+task sourcesJar(type: Jar, dependsOn:classes) {
+ classifier = 'sources'
+ from sourceSets.main.allSource
+ from sourceSets.ics.allSource
+ from sourceSets.icsmr1.allSource
+ from sourceSets.k.allSource
+}
+
+task javadocJar(type: Jar, dependsOn:javadoc) {
+ classifier 'javadoc'
+ from javadoc.destinationDir
+}
+
+// add javadoc/source jar tasks as artifacts
+artifacts {
+ archives jar
+ archives sourcesJar
+ archives javadocJar
+}
diff --git a/v4/build.gradle b/v4/build.gradle
new file mode 100644
index 0000000..ee50866
--- /dev/null
+++ b/v4/build.gradle
@@ -0,0 +1,131 @@
+apply plugin: 'java'
+
+archivesBaseName = 'support-v4'
+
+sourceSets {
+ main.java.srcDir 'java'
+ eclair.java.srcDir 'eclair'
+ froyo.java.srcDir 'froyo'
+ gingerbread.java.srcDir 'gingerbread'
+ honeycomb.java.srcDir 'honeycomb'
+ honeycombmr2.java.srcDir 'honeycomb_mr2'
+ ics.java.srcDir 'ics'
+ icsmr1.java.srcDir 'ics-mr1'
+ jellybean.java.srcDir 'jellybean'
+ jellybeanmr1.java.srcDir 'jellybean-mr1'
+ jellybeanmr2.java.srcDir 'jellybean-mr2'
+}
+
+dependencies {
+ eclairCompile getAndroidPrebuilt('5')
+ froyoCompile getAndroidPrebuilt('8')
+ gingerbreadCompile getAndroidPrebuilt('9')
+ honeycombCompile getAndroidPrebuilt('11')
+ honeycombmr2Compile getAndroidPrebuilt('13')
+ icsCompile getAndroidPrebuilt('14')
+ icsmr1Compile getAndroidPrebuilt('15')
+ jellybeanCompile getAndroidPrebuilt('16')
+ jellybeanmr1Compile getAndroidPrebuilt('17')
+ jellybeanmr2Compile getAndroidPrebuilt('current')
+
+ compile getAndroidPrebuilt('4')
+ compile sourceSets.eclair.output
+ compile sourceSets.froyo.output
+ compile sourceSets.gingerbread.output
+ compile sourceSets.honeycomb.output
+ compile sourceSets.honeycombmr2.output
+ compile sourceSets.ics.output
+ compile sourceSets.icsmr1.output
+ compile sourceSets.jellybean.output
+ compile sourceSets.jellybeanmr1.output
+ compile sourceSets.jellybeanmr2.output
+}
+
+
+jar {
+ from sourceSets.eclair.output
+ from sourceSets.froyo.output
+ from sourceSets.gingerbread.output
+ from sourceSets.honeycomb.output
+ from sourceSets.honeycombmr2.output
+ from sourceSets.ics.output
+ from sourceSets.icsmr1.output
+ from sourceSets.jellybean.output
+ from sourceSets.jellybeanmr1.output
+ from sourceSets.jellybeanmr2.output
+}
+
+uploadArchives {
+ repositories {
+ mavenDeployer {
+ repository(url: uri(project.parent.ext.androidRepoOut)) {
+ }
+
+ pom.project {
+ name 'Android Support Library v4'
+ description "The Support Library is a static library that you can add to your Android application in order to use APIs that are either not available for older platform versions or utility APIs that aren't a part of the framework APIs. Compatible on devices running API 4 or later."
+ url 'http://developer.android.com/tools/extras/support-library.html'
+ inceptionYear '2011'
+
+ licenses {
+ license {
+ name 'The Apache Software License, Version 2.0'
+ url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+ distribution 'repo'
+ }
+ }
+
+ scm {
+ url "http://source.android.com"
+ connection "scm:git:https://android.googlesource.com/platform/frameworks/support"
+ }
+ developers {
+ developer {
+ name 'The Android Open Source Project'
+ }
+ }
+ }
+ }
+ }
+}
+
+// configuration for the javadoc to include all source sets.
+javadoc {
+ source sourceSets.main.allJava
+ source sourceSets.eclair.allJava
+ source sourceSets.froyo.allJava
+ source sourceSets.gingerbread.allJava
+ source sourceSets.honeycomb.allJava
+ source sourceSets.honeycombmr2.allJava
+ source sourceSets.ics.allJava
+ source sourceSets.icsmr1.allJava
+ source sourceSets.jellybean.allJava
+ source sourceSets.jellybeanmr1.allJava
+}
+
+// custom tasks for creating source/javadoc jars
+task sourcesJar(type: Jar, dependsOn:classes) {
+ classifier = 'sources'
+ from sourceSets.main.allSource
+ from sourceSets.eclair.allSource
+ from sourceSets.froyo.allSource
+ from sourceSets.gingerbread.allSource
+ from sourceSets.honeycomb.allSource
+ from sourceSets.honeycombmr2.allSource
+ from sourceSets.ics.allSource
+ from sourceSets.icsmr1.allSource
+ from sourceSets.jellybean.allSource
+ from sourceSets.jellybeanmr1.allSource
+}
+
+task javadocJar(type: Jar, dependsOn:javadoc) {
+ classifier 'javadoc'
+ from javadoc.destinationDir
+}
+
+// add javadoc/source jar tasks as artifacts
+artifacts {
+ archives jar
+ archives sourcesJar
+ archives javadocJar
+}
diff --git a/v7/appcompat/AndroidManifest.xml b/v7/appcompat/AndroidManifest.xml
index a77e640..dac4cb2 100644
--- a/v7/appcompat/AndroidManifest.xml
+++ b/v7/appcompat/AndroidManifest.xml
@@ -16,4 +16,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="android.support.v7.appcompat">
<uses-sdk android:minSdkVersion="7"/>
+ <application />
</manifest>
diff --git a/v7/appcompat/build.gradle b/v7/appcompat/build.gradle
new file mode 100644
index 0000000..5616d0d
--- /dev/null
+++ b/v7/appcompat/build.gradle
@@ -0,0 +1,26 @@
+apply plugin: 'android-library'
+
+archivesBaseName = 'appcompat-v7'
+
+dependencies {
+ compile project(':v4')
+}
+
+android {
+ compileSdkVersion "current"
+ buildToolsVersion "17"
+
+ sourceSets {
+ main.manifest.srcFile 'AndroidManifest.xml'
+ main.java.srcDir 'src'
+ main.res.srcDir 'res'
+ main.assets.srcDir 'assets'
+ main.resources.srcDir 'src'
+ instrumentTest.java.srcDir 'tests/src'
+
+ // this moves src/instrumentTest to tests so all folders follow:
+ // tests/java, tests/res, tests/assets, ...
+ // This is a *reset* so it replaces the default paths
+ instrumentTest.setRoot('tests')
+ }
+}
\ No newline at end of file
diff --git a/v7/gridlayout/AndroidManifest.xml b/v7/gridlayout/AndroidManifest.xml
index f07d1a8..97f7be8 100644
--- a/v7/gridlayout/AndroidManifest.xml
+++ b/v7/gridlayout/AndroidManifest.xml
@@ -16,4 +16,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="android.support.v7.gridlayout">
<uses-sdk android:minSdkVersion="7"/>
+ <application />
</manifest>
diff --git a/v7/gridlayout/build.gradle b/v7/gridlayout/build.gradle
new file mode 100644
index 0000000..4fc6b12
--- /dev/null
+++ b/v7/gridlayout/build.gradle
@@ -0,0 +1,22 @@
+apply plugin: 'android-library'
+
+archivesBaseName = 'gridlayout-v7'
+
+android {
+ compileSdkVersion "unstubbed"
+ buildToolsVersion "17"
+
+ sourceSets {
+ main.manifest.srcFile 'AndroidManifest.xml'
+ main.java.srcDir 'src'
+ main.res.srcDir 'res'
+ main.assets.srcDir 'assets'
+ main.resources.srcDir 'src'
+ instrumentTest.java.srcDir 'tests/src'
+
+ // this moves src/instrumentTest to tests so all folders follow:
+ // tests/java, tests/res, tests/assets, ...
+ // This is a *reset* so it replaces the default paths
+ instrumentTest.setRoot('tests')
+ }
+}
\ No newline at end of file
diff --git a/v7/gridlayout/project.properties b/v7/gridlayout/project.properties
index 5ca3505..1e106c3 100644
--- a/v7/gridlayout/project.properties
+++ b/v7/gridlayout/project.properties
@@ -12,4 +12,4 @@
# Project target.
target=android-7
-android.library=true
+android.library=true
\ No newline at end of file
diff --git a/v7/mediarouter/AndroidManifest.xml b/v7/mediarouter/AndroidManifest.xml
index f22f80f..e611947 100644
--- a/v7/mediarouter/AndroidManifest.xml
+++ b/v7/mediarouter/AndroidManifest.xml
@@ -16,4 +16,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="android.support.v7.mediarouter">
<uses-sdk android:minSdkVersion="7"/>
+ <application />
</manifest>
diff --git a/v7/mediarouter/build.gradle b/v7/mediarouter/build.gradle
new file mode 100644
index 0000000..5355e8e
--- /dev/null
+++ b/v7/mediarouter/build.gradle
@@ -0,0 +1,62 @@
+apply plugin: 'android-library'
+
+archivesBaseName = 'mediarouter-v7'
+
+dependencies {
+ compile project(':v7:appcompat')
+}
+
+// some of the source requires compiling against a newer API.
+// Right now, use normal Java source sets to compile those into a jar and
+// package it as a local dependencies inside the library aar.
+
+sourceSets {
+ jellybean.java.srcDir 'jellybean'
+ jellybeanmr1.java.srcDir 'jellybean-mr1'
+ jellybeanmr2.java.srcDir 'jellybean-mr2'
+}
+
+// create a jar task for the code above
+tasks.create(name: "jar", type: Jar) {
+ from sourceSets.jellybean.output
+ from sourceSets.jellybeanmr1.output
+ from sourceSets.jellybeanmr2.output
+ baseName "internal_impl"
+}
+
+
+dependencies {
+ jellybeanCompile getAndroidPrebuilt('16')
+
+ jellybeanmr1Compile getAndroidPrebuilt('17')
+ jellybeanmr1Compile sourceSets.jellybean.output
+
+ jellybeanmr2Compile getAndroidPrebuilt('current')
+ jellybeanmr2Compile sourceSets.jellybean.output
+ jellybeanmr2Compile sourceSets.jellybeanmr1.output
+
+ compile files(jar.archivePath)
+}
+
+android {
+ compileSdkVersion "current"
+ buildToolsVersion "17"
+
+ sourceSets {
+ main.manifest.srcFile 'AndroidManifest.xml'
+ main.java.srcDir 'src'
+ main.res.srcDir 'res'
+ main.assets.srcDir 'assets'
+ main.resources.srcDir 'src'
+ instrumentTest.java.srcDir 'tests/src'
+
+ // this moves src/instrumentTest to tests so all folders follow:
+ // tests/java, tests/res, tests/assets, ...
+ // This is a *reset* so it replaces the default paths
+ instrumentTest.setRoot('tests')
+ }
+}
+
+android.libraryVariants.all { variant ->
+ variant.javaCompile.dependsOn jar
+}
\ No newline at end of file