blob: fec49b662aafd7c2c76fda5e3c7011d0c70f92cc [file] [log] [blame]
buildscript {
repositories {
maven { url '../../../../../out/repo' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.12.2'
}
}
apply plugin: 'com.android.application'
import com.android.builder.model.ArtifactMetaData
import com.android.builder.model.SourceProvider
// create a configuration to allow dependencies specific to the Java artifact
configurations {
foo
}
// Register an artifact type and tie it to the name "__test__".
// This name will show up in Studio. It must be unique
android.registerArtifactType("__test__", false, ArtifactMetaData.TYPE_JAVA)
// register a new SourceProvider per build type, and associate it with the artifact
// registered above.
android.buildTypes.all { type ->
project.android.registerBuildTypeSourceProvider(
"__test__", // registered name of the artifact type
type, // associate it with a BuildType
getProvider("buildType:$type.name")) // the source provider
}
// Same with ProductFlavor
android.productFlavors.all { flavor ->
project.android.registerProductFlavorSourceProvider(
"__test__", // registered name of the artifact type
flavor, // associate it with a ProductFlavor
getProvider("productFlavor:$flavor.name")) // the source provider
}
// now register a new (java) artifact for each variant, still associated
// with the artifact type registered above.
android.applicationVariants.all { variant ->
project.android.registerJavaArtifact(
"__test__", // registered name of the artifact type
variant, // associate it with a variant
"assemble:$variant.name", // name of the assemble task for this artifact
"compile:$variant.name", // name of the java compile task for this artifact
configurations.foo,
new File("classesFolder:$variant.name"), // location of the classes folder (compile output)
getProvider("provider:$variant.name")) // source provider specific to this variant for the artifact.
}
// after the artifact is created, add a dependency
dependencies {
foo files('libs/util-1.0.jar')
}
android {
compileSdkVersion 19
buildToolsVersion '19.1.0'
flavorDimensions "pricing", "releaseType"
productFlavors {
beta {
flavorDimension "releaseType"
}
normal {
flavorDimension "releaseType"
}
free {
flavorDimension "pricing"
}
paid {
flavorDimension "pricing"
}
}
}
public class SourceProviderImpl implements SourceProvider, Serializable {
private static final long serialVersionUID = 1L;
private final String name;
SourceProviderImpl(String name) {
this.name = name
}
String getName() {
return name
}
File getManifestFile() {
return new File(name)
}
Collection<File> getJavaDirectories() {
return Collections.emptyList()
}
Collection<File> getResourcesDirectories() {
return Collections.emptyList()
}
Collection<File> getAidlDirectories() {
return Collections.emptyList()
}
Collection<File> getRenderscriptDirectories() {
return Collections.emptyList()
}
Collection<File> getJniDirectories() {
return Collections.emptyList()
}
Collection<File> getJniLibsDirectories() {
return Collections.emptyList()
}
Collection<File> getResDirectories() {
return Collections.emptyList()
}
Collection<File> getAssetsDirectories() {
return Collections.emptyList()
}
}
SourceProvider getProvider(String name) {
return new SourceProviderImpl(name)
}