Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: update plugin gradle script #5578

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 45 additions & 21 deletions vendor/gradle-plugin/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,12 @@ apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

def computeKotlinVersion = { -> project.hasProperty("kotlinVersion") ? kotlinVersion : "1.4.21" }
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we bump kotlinVersion without too much testing, or is 1.4.21 safer for now?

def computeCompileSdkVersion = { -> project.hasProperty("compileSdk") ? compileSdk : 28 as int }
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we change the default compileSdk from 28 to 30 (or perhaps newer)?

def computeTargetSdkVersion = { -> project.hasProperty("targetSdk") ? targetSdk : 28 as int }
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we change targetSdk to 30 or newer? Believe 30 is minimum from google right now.

def computeBuildToolsVersion = { ->
project.hasProperty("buildToolsVersion") ? buildToolsVersion : "28.0.3" as String
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With 8.2 - should we default to build tools 32?

}

buildscript {
def computeKotlinVersion = { -> project.hasProperty("kotlinVersion") ? kotlinVersion : "1.4.21" }
Expand Down Expand Up @@ -88,39 +94,36 @@ allprojects {
}


def computeCompileSdkVersion = { -> project.hasProperty("compileSdk") ? compileSdk : 28 }
def computeBuildToolsVersion = { ->
project.hasProperty("buildToolsVersion") ? buildToolsVersion : "28.0.3"
}

android {
kotlinOptions {
jvmTarget = '1.8'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to set the target to 1.8 with gradle7+? Officially recommended jdk is 11, so this might need to match that?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should be able to use more but was not tested https://kotlinlang.org/docs/faq.html#which-versions-of-jvm-does-kotlin-target
let s make it an ext property so we can test easily?

}
applyBeforePluginGradleConfiguration()

compileSdkVersion computeCompileSdkVersion()
buildToolsVersion computeBuildToolsVersion()

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
Comment on lines +107 to +108
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same question as jvmTarget

}

defaultConfig {
targetSdkVersion 26
targetSdkVersion computeTargetSdkVersion()
versionCode 1
versionName "1.0"
}
}

dependencies {
def supportVer = "28.0.0"
if (project.hasProperty("supportVersion")) {
supportVer = supportVersion
}
compileOnly "com.android.support:support-v4:$supportVer"
compileOnly "com.android.support:appcompat-v7:$supportVer"

configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group == "com.android.support" && !details.requested.name.startsWith("multidex")) {
details.useVersion supportVer
}
}
}
def androidXMultidexVersion = project.hasProperty("androidXMultidexVersion") ? project.androidXMultidexVersion : "2.0.1"
def androidxVersion = project.hasProperty("androidxVersion") ? project.androidxVersion : "1.2.0"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we use 1.7.0?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure about 1.7.0. Maybe 1.6.0

def androidXAppCompatVersion = project.hasProperty("androidXAppCompat") ? project.androidXAppCompat : "1.3.1"
farfromrefug marked this conversation as resolved.
Show resolved Hide resolved
def kotlinVersion = computeKotlinVersion()
implementation "androidx.multidex:multidex:$androidXMultidexVersion"
implementation "androidx.core:core:$androidxVersion"
implementation "androidx.appcompat:appcompat:$androidXAppCompatVersion"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion"
}

def applyBeforePluginGradleConfiguration() {
Expand All @@ -131,4 +134,25 @@ def applyBeforePluginGradleConfiguration() {
outLogger.withStyle(Style.SuccessHeader).println "\t ~ applying user-defined configuration from ${beforePluginGradle}"
apply from: pathToBeforePluginGradle
}
}
}

afterEvaluate {
def generateBuildConfig = project.hasProperty("generateBuildConfig") ? project.generateBuildConfig : false
def generateR = project.hasProperty("generateR") ? project.generateR : false
generateReleaseBuildConfig.enabled = generateBuildConfig
generateDebugBuildConfig.enabled = generateBuildConfig
generateReleaseResValues.enabled = generateR
generateDebugResValues.enabled = generateR
}
tasks.whenTaskAdded({ DefaultTask currentTask ->
if (currentTask.name == 'bundleRelease' || currentTask.name == 'bundleDebug') {
def generateBuildConfig = project.hasProperty("generateBuildConfig") ? project.generateBuildConfig : false
def generateR = project.hasProperty("generateR") ? project.generateR : false
if (!generateBuildConfig) {
currentTask.exclude '**/BuildConfig.class'
}
if (!generateR) {
currentTask.exclude '**/R.class', '**/R$*.class'
}
}
})
3 changes: 3 additions & 0 deletions vendor/gradle-plugin/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ org.gradle.jvmargs=-Xmx16384M

android.enableJetifier=true
android.useAndroidX=true
android.nonTransitiveRClass=true
android.namespacedRClass=true
android.enableSeparateRClassCompilation=true