Convert build-logic build.gradle to kotlin.

This commit is contained in:
Greyson Parrelli 2023-02-27 19:44:51 -05:00
parent 40f86ed2be
commit f91c400f6c
15 changed files with 246 additions and 167 deletions

View file

@ -84,15 +84,15 @@ def selectableVariants = [
android {
namespace 'org.thoughtcrime.securesms'
buildToolsVersion BUILD_TOOLS_VERSION
compileSdkVersion COMPILE_SDK_VERSION
buildToolsVersion = signalBuildToolsVersion
compileSdkVersion = signalCompileSdkVersion
flavorDimensions 'distribution', 'environment'
useLibrary 'org.apache.http.legacy'
testBuildType 'instrumentation'
kotlinOptions {
jvmTarget = "1.8"
jvmTarget = "11"
freeCompilerArgs = ["-Xallow-result-return-type"]
}
@ -139,9 +139,10 @@ android {
compileOptions {
coreLibraryDesugaringEnabled true
sourceCompatibility JAVA_VERSION
targetCompatibility JAVA_VERSION
sourceCompatibility signalJavaVersion
targetCompatibility signalJavaVersion
}
packagingOptions {
resources {
excludes += ['LICENSE.txt', 'LICENSE', 'NOTICE', 'asm-license.txt', 'META-INF/LICENSE', 'META-INF/NOTICE', 'META-INF/proguard/androidx-annotations.pro', 'libsignal_jni.dylib', 'signal_jni.dll']
@ -162,8 +163,8 @@ android {
versionCode canonicalVersionCode * postFixSize
versionName canonicalVersionName
minSdkVersion MIN_SDK_VERSION
targetSdkVersion TARGET_SDK_VERSION
minSdkVersion signalMinSdkVersion
targetSdkVersion signalTargetSdkVersion
multiDexEnabled true

View file

@ -1,9 +0,0 @@
plugins {
id "groovy-gradle-plugin"
}
dependencies {
implementation libs.android.library
implementation libs.android.application
implementation project(':tools')
}

View file

@ -0,0 +1,28 @@
plugins {
`kotlin-dsl`
id("groovy-gradle-plugin")
id("org.jlleitschuh.gradle.ktlint") version "11.1.0"
}
java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
kotlinDslPluginOptions {
jvmTarget.set("11")
}
dependencies {
implementation(libs.kotlin.gradle.plugin)
implementation(libs.android.library)
implementation(libs.android.application)
implementation(project(":tools"))
implementation(libs.ktlint)
// These allow us to reference the dependency catalog inside of our compiled plugins
implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location))
implementation(files(testLibs.javaClass.superclass.protectionDomain.codeSource.location))
}

View file

@ -1,9 +0,0 @@
ext {
BUILD_TOOLS_VERSION = '32.0.0'
COMPILE_SDK_VERSION = 33
TARGET_SDK_VERSION = 31
MIN_SDK_VERSION = 21
JAVA_VERSION = JavaVersion.VERSION_1_8
}

View file

@ -0,0 +1,5 @@
val signalBuildToolsVersion by extra("32.0.0")
val signalCompileSdkVersion by extra("android-33")
val signalTargetSdkVersion by extra(31)
val signalMinSdkVersion by extra(21)
val signalJavaVersion by extra(JavaVersion.VERSION_11)

View file

@ -1,62 +0,0 @@
plugins {
id 'com.android.library'
id 'kotlin-android'
id 'org.jlleitschuh.gradle.ktlint'
id 'android-constants'
}
android {
buildToolsVersion BUILD_TOOLS_VERSION
compileSdkVersion COMPILE_SDK_VERSION
defaultConfig {
minSdkVersion MIN_SDK_VERSION
targetSdkVersion TARGET_SDK_VERSION
multiDexEnabled true
}
compileOptions {
coreLibraryDesugaringEnabled true
sourceCompatibility JAVA_VERSION
targetCompatibility JAVA_VERSION
}
kotlinOptions {
jvmTarget = '1.8'
}
lint {
disable 'InvalidVectorPath'
}
}
ktlint {
// Use a newer version to resolve https://github.com/JLLeitschuh/ktlint-gradle/issues/507
version = "0.47.1"
}
dependencies {
lintChecks project(':lintchecks')
coreLibraryDesugaring libs.android.tools.desugar
implementation libs.androidx.core.ktx
implementation libs.androidx.fragment.ktx
implementation libs.androidx.annotation
implementation libs.androidx.appcompat
implementation libs.rxjava3.rxandroid
implementation libs.rxjava3.rxjava
implementation libs.rxjava3.rxkotlin
implementation libs.androidx.multidex
implementation libs.kotlin.stdlib.jdk8
ktlintRuleset libs.ktlint.twitter.compose
testImplementation testLibs.junit.junit
testImplementation testLibs.mockito.core
testImplementation testLibs.mockito.android
testImplementation testLibs.mockito.kotlin
testImplementation testLibs.robolectric.robolectric
testImplementation testLibs.androidx.test.core
testImplementation testLibs.androidx.test.core.ktx
}

View file

@ -0,0 +1,78 @@
@file:Suppress("UnstableApiUsage")
import org.gradle.accessors.dm.LibrariesForLibs
import org.gradle.accessors.dm.LibrariesForTestLibs
import org.gradle.api.JavaVersion
import org.gradle.kotlin.dsl.extra
val libs = the<LibrariesForLibs>()
val testLibs = the<LibrariesForTestLibs>()
val signalBuildToolsVersion: String by extra
val signalCompileSdkVersion: String by extra
val signalTargetSdkVersion: Int by extra
val signalMinSdkVersion: Int by extra
val signalJavaVersion: JavaVersion by extra
plugins {
id("com.android.library")
id("kotlin-android")
id("org.jlleitschuh.gradle.ktlint")
id("android-constants")
}
android {
buildToolsVersion = signalBuildToolsVersion
compileSdkVersion = signalCompileSdkVersion
defaultConfig {
minSdk = signalMinSdkVersion
targetSdk = signalTargetSdkVersion
multiDexEnabled = true
}
compileOptions {
isCoreLibraryDesugaringEnabled = true
sourceCompatibility = signalJavaVersion
targetCompatibility = signalJavaVersion
}
kotlinOptions {
jvmTarget = "11"
}
lint {
disable += "InvalidVectorPath"
}
}
ktlint {
// Use a newer version to resolve https://github.com/JLLeitschuh/ktlint-gradle/issues/507
version.set("0.47.1")
}
dependencies {
lintChecks(project(":lintchecks"))
coreLibraryDesugaring(libs.android.tools.desugar)
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.fragment.ktx)
implementation(libs.androidx.annotation)
implementation(libs.androidx.appcompat)
implementation(libs.rxjava3.rxandroid)
implementation(libs.rxjava3.rxjava)
implementation(libs.rxjava3.rxkotlin)
implementation(libs.androidx.multidex)
implementation(libs.kotlin.stdlib.jdk8)
ktlintRuleset(libs.ktlint.twitter.compose)
testImplementation(testLibs.junit.junit)
testImplementation(testLibs.mockito.core)
testImplementation(testLibs.mockito.android)
testImplementation(testLibs.mockito.kotlin)
testImplementation(testLibs.robolectric.robolectric)
testImplementation(testLibs.androidx.test.core)
testImplementation(testLibs.androidx.test.core.ktx)
}

View file

@ -1,65 +0,0 @@
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'org.jlleitschuh.gradle.ktlint'
id 'android-constants'
}
android {
buildToolsVersion BUILD_TOOLS_VERSION
compileSdkVersion COMPILE_SDK_VERSION
defaultConfig {
versionCode 1
versionName "1.0"
minSdkVersion MIN_SDK_VERSION
targetSdkVersion TARGET_SDK_VERSION
multiDexEnabled true
}
kotlinOptions {
jvmTarget = '1.8'
}
compileOptions {
coreLibraryDesugaringEnabled true
sourceCompatibility JAVA_VERSION
targetCompatibility JAVA_VERSION
}
}
ktlint {
// Use a newer version to resolve https://github.com/JLLeitschuh/ktlint-gradle/issues/507
version = "0.47.1"
}
dependencies {
coreLibraryDesugaring libs.android.tools.desugar
implementation project(':core-util')
coreLibraryDesugaring libs.android.tools.desugar
implementation libs.androidx.core.ktx
implementation libs.androidx.fragment.ktx
implementation libs.androidx.annotation
implementation libs.androidx.appcompat
implementation libs.rxjava3.rxandroid
implementation libs.rxjava3.rxjava
implementation libs.rxjava3.rxkotlin
implementation libs.androidx.multidex
implementation libs.material.material
implementation libs.androidx.constraintlayout
implementation libs.kotlin.stdlib.jdk8
ktlintRuleset libs.ktlint.twitter.compose
testImplementation testLibs.junit.junit
testImplementation testLibs.mockito.core
testImplementation testLibs.mockito.android
testImplementation testLibs.mockito.kotlin
testImplementation testLibs.robolectric.robolectric
testImplementation testLibs.androidx.test.core
testImplementation testLibs.androidx.test.core.ktx
}

View file

@ -0,0 +1,83 @@
@file:Suppress("UnstableApiUsage")
import org.gradle.accessors.dm.LibrariesForLibs
import org.gradle.accessors.dm.LibrariesForTestLibs
import org.gradle.api.JavaVersion
import org.gradle.kotlin.dsl.extra
import org.gradle.kotlin.dsl.provideDelegate
import org.gradle.kotlin.dsl.the
val libs = the<LibrariesForLibs>()
val testLibs = the<LibrariesForTestLibs>()
val signalBuildToolsVersion: String by extra
val signalCompileSdkVersion: String by extra
val signalTargetSdkVersion: Int by extra
val signalMinSdkVersion: Int by extra
val signalJavaVersion: JavaVersion by extra
plugins {
id("com.android.application")
id("kotlin-android")
id("org.jlleitschuh.gradle.ktlint")
id("android-constants")
}
android {
buildToolsVersion = signalBuildToolsVersion
compileSdkVersion = signalCompileSdkVersion
defaultConfig {
versionCode = 1
versionName = "1.0"
minSdk = signalMinSdkVersion
targetSdk = signalTargetSdkVersion
multiDexEnabled = true
}
compileOptions {
isCoreLibraryDesugaringEnabled = true
sourceCompatibility = signalJavaVersion
targetCompatibility = signalJavaVersion
}
kotlinOptions {
jvmTarget = "11"
}
}
ktlint {
// Use a newer version to resolve https://github.com/JLLeitschuh/ktlint-gradle/issues/507
version.set("0.47.1")
}
dependencies {
coreLibraryDesugaring(libs.android.tools.desugar)
implementation(project(":core-util"))
coreLibraryDesugaring(libs.android.tools.desugar)
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.fragment.ktx)
implementation(libs.androidx.annotation)
implementation(libs.androidx.appcompat)
implementation(libs.rxjava3.rxandroid)
implementation(libs.rxjava3.rxjava)
implementation(libs.rxjava3.rxkotlin)
implementation(libs.androidx.multidex)
implementation(libs.material.material)
implementation(libs.androidx.constraintlayout)
implementation(libs.kotlin.stdlib.jdk8)
ktlintRuleset(libs.ktlint.twitter.compose)
testImplementation(testLibs.junit.junit)
testImplementation(testLibs.mockito.core)
testImplementation(testLibs.mockito.android)
testImplementation(testLibs.mockito.kotlin)
testImplementation(testLibs.robolectric.robolectric)
testImplementation(testLibs.androidx.test.core)
testImplementation(testLibs.androidx.test.core.ktx)
}

View file

@ -1,21 +1,21 @@
plugins {
id "org.jetbrains.kotlin.jvm" version "1.8.0"
id "java-library"
id "org.jlleitschuh.gradle.ktlint" version "11.1.0"
id("org.jetbrains.kotlin.jvm") version "1.6.21"
id("java-library")
id("org.jlleitschuh.gradle.ktlint") version "11.1.0"
}
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
// NOTE: For now, in order to run ktlint on this project, you have to manually run ./gradlew :build-logic:tools:ktlintFormat
// Gotta figure out how to get it auto-included in the normal ./gradlew ktlintFormat
ktlint {
// Use a newer version to resolve https://github.com/JLLeitschuh/ktlint-gradle/issues/507
version = "0.47.1"
version.set("0.47.1")
}
dependencies {
implementation libs.dnsjava
implementation(libs.dnsjava)
}

View file

@ -22,7 +22,7 @@ buildscript {
classpath 'androidx.navigation:navigation-safe-args-gradle-plugin:2.5.2'
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.17'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jlleitschuh.gradle:ktlint-gradle:11.1.0"
classpath libs.ktlint
classpath 'app.cash.exhaustive:exhaustive-gradle:0.1.1'
classpath ('com.squareup.wire:wire-gradle-plugin:4.4.3') {
exclude group: 'com.squareup.wire', module: 'wire-swift-generator'

View file

@ -33,6 +33,8 @@ dependencyResolutionManagement {
// Kotlin
alias('kotlin-stdlib-jdk8').to('org.jetbrains.kotlin', 'kotlin-stdlib-jdk8').versionRef('kotlin')
alias('kotlin-reflect').to('org.jetbrains.kotlin', 'kotlin-reflect').versionRef('kotlin')
alias('kotlin-gradle-plugin').to('org.jetbrains.kotlin', 'kotlin-gradle-plugin').versionRef('kotlin')
alias('ktlint').to('org.jlleitschuh.gradle:ktlint-gradle:11.1.0')
// Android X
alias('androidx-activity-ktx').to('androidx.activity:activity-ktx:1.5.1')

View file

@ -2886,6 +2886,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
<sha256 value="e1c814fd04492a27c38e0317eabeaa1b3e950ec8010239e400fe90ad6c9107b4" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.guava" name="guava" version="29.0-jre">
<artifact name="guava-29.0-jre.jar">
<sha256 value="b22c5fb66d61e7b9522531d04b2f915b5158e80aa0b40ee7282c8bfb07b0da25" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.guava" name="guava" version="30.0-android">
<artifact name="guava-30.0-android.jar">
<sha256 value="3345c82c2cc70a0053e8db9031edc6d71625ef0dea6a2c8f5ebd6cb76d2bf843" origin="Generated by Gradle"/>
@ -4310,6 +4315,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
<sha256 value="11d134b245e9cacc474514d2d66b5b8618f8039a1465cdc55bbc0b34e0008b7a" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.checkerframework" name="checker-qual" version="2.11.1">
<artifact name="checker-qual-2.11.1.jar">
<sha256 value="015224a4b1dc6de6da053273d4da7d39cfea20e63038169fc45ac0d1dc9c5938" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.checkerframework" name="checker-qual" version="2.5.2">
<artifact name="checker-qual-2.5.2.jar">
<sha256 value="64b02691c8b9d4e7700f8ee2e742dce7ea2c6e81e662b7522c9ee3bf568c040a" origin="Generated by Gradle"/>
@ -4513,6 +4523,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
<sha256 value="4a6a9f483388d461b81aa9a28c685b8b74c0597993bf1884b04eddbca95f48fe" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.gradle.kotlin" name="gradle-kotlin-dsl-plugins" version="2.3.3">
<artifact name="gradle-kotlin-dsl-plugins-2.3.3.jar">
<sha256 value="ba63ebb9e874a798510b5888a159622ef4e4d59f82e54d755ddcf5e60bf1257f" origin="Generated by Gradle"/>
</artifact>
<artifact name="gradle-kotlin-dsl-plugins-2.3.3.module">
<sha256 value="7b6bac1405119485fc9d694771024be4a509e874efcf38b22f947b85f99c8a9c" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.greenrobot" name="eventbus" version="3.0.0">
<artifact name="eventbus-3.0.0.jar">
<sha256 value="180d4212467df06f2fbc9c8d8a2984533ac79c87769ad883bc421612f0b4e17c" origin="Generated by Gradle"/>
@ -5009,6 +5027,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
<sha256 value="afe70b6faf6c23f6fedcb0cf88b07cb1778139f4b744ae13b23eb8bbc4ee09f8" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-sam-with-receiver" version="1.6.21">
<artifact name="kotlin-sam-with-receiver-1.6.21.jar">
<sha256 value="7735eef8f8fb7a782c727718c7e0caad91b616959d393949be1dc0ef569586fd" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-script-runtime" version="1.5.20">
<artifact name="kotlin-script-runtime-1.5.20.jar">
<sha256 value="e8a44d7195dc7ee4abb5cda5791e37aacd20b1b76378b13da109dd626536380f" origin="Generated by Gradle"/>

View file

@ -7,19 +7,23 @@ apply plugin: 'signing'
apply plugin: 'idea'
apply plugin: 'org.jlleitschuh.gradle.ktlint'
sourceCompatibility = 1.8
archivesBaseName = "signal-service-java"
version = lib_signal_service_version_number
group = lib_signal_service_group_info
archivesBaseName = "signal-service-java"
version = lib_signal_service_version_number
group = lib_signal_service_group_info
java {
targetCompatibility = 1.8
withJavadocJar()
withSourcesJar()
}
kotlin {
jvmToolchain {
languageVersion.set(JavaLanguageVersion.of(11))
}
}
compileJava {
options.release = 8
options.release = 11
}
configurations {

View file

@ -1,5 +1,5 @@
apply plugin: 'java'
sourceCompatibility = 1.8
sourceCompatibility = 11
version = '0.1.0'
dependencies {