1apply plugin: 'android-library' 2 3archivesBaseName = 'mediarouter-v7' 4 5 6dependencies { 7 compile project(':support-appcompat-v7') 8} 9 10// some of the source requires compiling against a newer API. 11// Right now, use normal Java source sets to compile those into a jar and 12// package it as a local dependencies inside the library aar. 13 14sourceSets { 15 jellybean.java.srcDir 'jellybean' 16 jellybeanmr1.java.srcDir 'jellybean-mr1' 17 jellybeanmr2.java.srcDir 'jellybean-mr2' 18} 19 20// create a jar task for the code above 21tasks.create(name: "jar", type: Jar) { 22 from sourceSets.jellybean.output 23 from sourceSets.jellybeanmr1.output 24 from sourceSets.jellybeanmr2.output 25 baseName "internal_impl" 26} 27 28 29dependencies { 30 jellybeanCompile getAndroidPrebuilt('16') 31 32 jellybeanmr1Compile getAndroidPrebuilt('17') 33 jellybeanmr1Compile sourceSets.jellybean.output 34 35 jellybeanmr2Compile getAndroidPrebuilt('current') 36 jellybeanmr2Compile sourceSets.jellybean.output 37 jellybeanmr2Compile sourceSets.jellybeanmr1.output 38 39 compile files(jar.archivePath) 40} 41 42android { 43 compileSdkVersion 'current' 44 45 sourceSets { 46 main.manifest.srcFile 'AndroidManifest.xml' 47 main.java.srcDir 'src' 48 main.res.srcDir 'res' 49 main.assets.srcDir 'assets' 50 main.resources.srcDir 'src' 51 52 // this moves src/instrumentTest to tests so all folders follow: 53 // tests/java, tests/res, tests/assets, ... 54 // This is a *reset* so it replaces the default paths 55 androidTest.setRoot('tests') 56 androidTest.java.srcDir 'tests/src' 57 } 58 59 lintOptions { 60 // TODO: fix errors and reenable. 61 abortOnError false 62 } 63} 64 65android.libraryVariants.all { variant -> 66 variant.javaCompile.dependsOn jar 67 68 def name = variant.buildType.name 69 70 if (name.equals(com.android.builder.core.BuilderConstants.DEBUG)) { 71 return; // Skip debug builds. 72 } 73 def suffix = name.capitalize() 74 75 def jarTask = project.tasks.create(name: "jar${suffix}", type: Jar){ 76 dependsOn variant.javaCompile 77 from variant.javaCompile.destinationDir 78 from 'LICENSE.txt' 79 } 80 def javadocTask = project.tasks.create(name: "javadoc${suffix}", type: Javadoc) { 81 source android.sourceSets.main.java 82 classpath = files(variant.javaCompile.classpath.files) + files( 83 "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar") 84 } 85 86 def javadocJarTask = project.tasks.create(name: "javadocJar${suffix}", type: Jar) { 87 classifier = 'javadoc' 88 from 'build/docs/javadoc' 89 } 90 91 def sourcesJarTask = project.tasks.create(name: "sourceJar${suffix}", type: Jar) { 92 classifier = 'sources' 93 from android.sourceSets.main.java.srcDirs 94 } 95 96 javadocTask.source project.sourceSets.jellybean.java 97 sourcesJarTask.from project.sourceSets.jellybean.java.srcDirs 98 javadocTask.source project.sourceSets.jellybeanmr1.java 99 sourcesJarTask.from project.sourceSets.jellybeanmr1.java.srcDirs 100 javadocTask.source project.sourceSets.jellybeanmr2.java 101 sourcesJarTask.from project.sourceSets.jellybeanmr2.java.srcDirs 102 103 artifacts.add('archives', javadocJarTask); 104 artifacts.add('archives', sourcesJarTask); 105} 106 107uploadArchives { 108 repositories { 109 mavenDeployer { 110 repository(url: uri(rootProject.ext.supportRepoOut)) { 111 } 112 113 pom.project { 114 name 'Android Support Library v4' 115 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." 116 url 'http://developer.android.com/tools/extras/support-library.html' 117 inceptionYear '2011' 118 119 licenses { 120 license { 121 name 'The Apache Software License, Version 2.0' 122 url 'http://www.apache.org/licenses/LICENSE-2.0.txt' 123 distribution 'repo' 124 } 125 } 126 127 scm { 128 url "http://source.android.com" 129 connection "scm:git:https://android.googlesource.com/platform/frameworks/support" 130 } 131 developers { 132 developer { 133 name 'The Android Open Source Project' 134 } 135 } 136 } 137 } 138 } 139} 140