kendricku cd3f114a3f [Release] Updated minSdkVersion to 23.
PiperOrigin-RevId: 845841935
2025-12-18 15:24:52 +00:00

173 lines
5.0 KiB
Groovy

buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath libs.android.gradle.plugin
}
}
allprojects {
repositories {
google()
mavenCentral()
mavenLocal()
}
}
ext {
compileSdkVersion = 35
minSdkVersion = 23
targetSdkVersion = 33
// Enforce the use of prebuilt dependencies in all sub-projects. This is
// required for the doclava dependency.
usePrebuilts = "true"
mavenRepoUrl = (project.hasProperty('mavenRepoUrl')
? project.property('mavenRepoUrl') : '/tmp/myRepo/')
// Current version of the library (could be in-development/unreleased).
mdcLibraryVersion = '1.14.0-alpha08'
mdcLibraryPackage = "com.google.android.material"
mdcLibraryDir = "com/google/android/material"
}
task clean(type: Delete) {
delete rootProject.buildDir
}
private def getTransformedProjectPath(projectPath) {
def pathComponents = projectPath.tokenize('/')
def result = ''
def currentPath = ''
pathComponents.each { component ->
if (currentPath == '') {
currentPath += component
} else {
currentPath += '-' + component
}
result += ':' + currentPath
}
return result
}
/**
* Return the project dependency for the given project path.
*/
def fromPath(path) {
return getTransformedProjectPath(path)
}
def getArchivesBaseName(name) {
if (name == 'lib') {
return 'material'
}
def pathComponents = name.tokenize('-')
def knownComponents = ['lib', 'java', 'com', 'google', 'android', 'material']
def firstUnknownComponent = knownComponents.size();
for (def i = 0; i < knownComponents.size() && i < pathComponents.size(); i++) {
if (pathComponents[i] != knownComponents[i]) {
firstUnknownComponent = i;
break;
}
}
def result = 'material'
for (def i = firstUnknownComponent; i < pathComponents.size(); i++) {
result = result + '-' + pathComponents[i];
}
return result;
}
subprojects {
tasks.withType(Test) {
maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1
forkEvery = 80
maxHeapSize = "2048m"
minHeapSize = "1024m"
}
}
subprojects {
version = rootProject.ext.mdcLibraryVersion
group = 'com.google.android.material'
// Disable strict dependency resolution version constraints for test projects
if (project.name.contains("tests")) {
project.configurations.all {
dependencyConstraints.configureEach { dependencyConstraint ->
dependencyConstraint.version { versionConstraint ->
versionConstraint.strictly("")
}
}
}
}
project.plugins.whenPluginAdded { plugin ->
def isAndroidLibrary = "com.android.build.gradle.LibraryPlugin".equals(plugin.class.name)
def isAndroidApp = "com.android.build.gradle.AppPlugin".equals(plugin.class.name)
def isAndroidTest = "com.android.build.gradle.TestPlugin".equals(plugin.class.name)
if (isAndroidLibrary || isAndroidApp) {
// Enable code coverage for debug builds only if we are not running inside the IDE,
// since enabling coverage reports breaks the method parameter resolution in the IDE
// debugger. Note that we avoid doing this for Android Test projects as it causes
// crashes on Dalvik ('Class ref in pre-verified class resolved to unexpected implementation')
project.android.buildTypes.debug.testCoverageEnabled = !hasProperty('android.injected.invoked.from.ide')
}
if (isAndroidLibrary || isAndroidApp || isAndroidTest) {
project.android {
compileSdkVersion rootProject.ext.compileSdkVersion
defaultConfig.minSdkVersion rootProject.ext.minSdkVersion
defaultConfig.targetSdkVersion rootProject.ext.targetSdkVersion
// This disables the builds tools automatic vector -> PNG generation
defaultConfig.generatedDensities = []
compileOptions.sourceCompatibility JavaVersion.VERSION_1_8
compileOptions.targetCompatibility JavaVersion.VERSION_1_8
aaptOptions.additionalParameters "--no-version-vectors"
android {
lint {
checkOnly 'NewApi'
}
}
if (isAndroidLibrary) {
def JAVA_RESOURCES_TEMP_DIR = "$buildDir/javaResources"
task writeVersionFile() {
def versionFileDir = JAVA_RESOURCES_TEMP_DIR + '/META-INF'
def versionFileName = mdcLibraryPackage + '_' + getArchivesBaseName(project.name) + '.version'
new File(versionFileDir).mkdirs()
new File(versionFileDir + '/' + versionFileName).text = mdcLibraryVersion + "\n"
}
libraryVariants.all {
it.processJavaResourcesProvider.get().dependsOn(writeVersionFile)
}
project.android.sourceSets.main.resources.srcDir JAVA_RESOURCES_TEMP_DIR
}
}
if (isAndroidLibrary) {
project.afterEvaluate {
project.tasks.all({
if (it instanceof com.android.build.gradle.tasks.GenerateBuildConfig) {
// Disable generating BuildConfig.java
it.enabled = false
}
})
}
}
}
}
}