diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d8c5fce66f..a240abd4e7 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -56,14 +56,6 @@ val selectableVariants = listOf( "websiteProdRelease" ) -val signalBuildToolsVersion: String by rootProject.extra -val signalCompileSdkVersion: String by rootProject.extra -val signalTargetSdkVersion: Int by rootProject.extra -val signalMinSdkVersion: Int by rootProject.extra -val signalNdkVersion: String by rootProject.extra -val signalJavaVersion: JavaVersion by rootProject.extra -val signalKotlinJvmTarget: String by rootProject.extra - wire { kotlin { javaInterop = true @@ -87,9 +79,9 @@ ktlint { android { namespace = "org.thoughtcrime.securesms" - buildToolsVersion = signalBuildToolsVersion - compileSdkVersion = signalCompileSdkVersion - ndkVersion = signalNdkVersion + buildToolsVersion = libs.versions.buildTools.get() + compileSdkVersion = libs.versions.compileSdk.get() + ndkVersion = libs.versions.ndk.get() flavorDimensions += listOf("distribution", "environment") testBuildType = "instrumentation" @@ -97,7 +89,7 @@ android { android.bundle.language.enableSplit = false kotlinOptions { - jvmTarget = signalKotlinJvmTarget + jvmTarget = libs.versions.kotlinJvmTarget.get() freeCompilerArgs = listOf("-Xjvm-default=all") suppressWarnings = true } @@ -142,8 +134,8 @@ android { compileOptions { isCoreLibraryDesugaringEnabled = true - sourceCompatibility = signalJavaVersion - targetCompatibility = signalJavaVersion + sourceCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get()) + targetCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get()) } packaging { @@ -187,8 +179,8 @@ android { versionCode = (canonicalVersionCode * maxHotfixVersions) + possibleHotfixVersions[currentHotfixVersion] versionName = canonicalVersionName - minSdk = signalMinSdkVersion - targetSdk = signalTargetSdkVersion + minSdk = libs.versions.minSdk.get().toInt() + targetSdk = libs.versions.targetSdk.get().toInt() vectorDrawables.useSupportLibrary = true project.ext.set("archivesBaseName", "Signal") diff --git a/benchmark/build.gradle.kts b/benchmark/build.gradle.kts index b3166a98c7..0e9f9220de 100644 --- a/benchmark/build.gradle.kts +++ b/benchmark/build.gradle.kts @@ -6,13 +6,6 @@ import org.gradle.kotlin.dsl.extra val benchmarkLibs = the() -val signalBuildToolsVersion: String by rootProject.extra -val signalCompileSdkVersion: String by rootProject.extra -val signalTargetSdkVersion: Int by rootProject.extra -val signalMinSdkVersion: Int by rootProject.extra -val signalJavaVersion: JavaVersion by rootProject.extra -val signalKotlinJvmTarget: String by rootProject.extra - plugins { id("com.android.test") id("org.jetbrains.kotlin.android") @@ -20,20 +13,20 @@ plugins { android { namespace = "org.signal.benchmark" - compileSdkVersion = signalCompileSdkVersion + compileSdkVersion = libs.versions.compileSdk.get() compileOptions { - sourceCompatibility = signalJavaVersion - targetCompatibility = signalJavaVersion + sourceCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get()) + targetCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get()) } kotlinOptions { - jvmTarget = signalKotlinJvmTarget + jvmTarget = libs.versions.kotlinJvmTarget.get() } defaultConfig { minSdk = 23 - targetSdk = signalTargetSdkVersion + targetSdk = libs.versions.targetSdk.get().toInt() testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" diff --git a/build-logic/build.gradle.kts b/build-logic/build.gradle.kts index 6faa8b0e1f..dd11aa28c4 100644 --- a/build-logic/build.gradle.kts +++ b/build-logic/build.gradle.kts @@ -9,5 +9,3 @@ buildscript { } } -apply(from = "${rootDir}/../constants.gradle.kts") - diff --git a/build-logic/plugins/build.gradle.kts b/build-logic/plugins/build.gradle.kts index 1bb7570aa9..f1da4be921 100644 --- a/build-logic/plugins/build.gradle.kts +++ b/build-logic/plugins/build.gradle.kts @@ -1,22 +1,17 @@ -import org.gradle.kotlin.dsl.extra - plugins { `kotlin-dsl` alias(libs.plugins.ktlint) id("groovy-gradle-plugin") } -val signalJavaVersion: JavaVersion by rootProject.extra -val signalKotlinJvmTarget: String by rootProject.extra - java { - sourceCompatibility = signalJavaVersion - targetCompatibility = signalJavaVersion + sourceCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get()) + targetCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get()) } kotlin { jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(signalKotlinJvmTarget)) + languageVersion.set(JavaLanguageVersion.of(libs.versions.kotlinJvmTarget.get())) } compilerOptions { suppressWarnings = true diff --git a/build-logic/plugins/src/main/java/signal-library.gradle.kts b/build-logic/plugins/src/main/java/signal-library.gradle.kts index 2e238df397..e36cf008b3 100644 --- a/build-logic/plugins/src/main/java/signal-library.gradle.kts +++ b/build-logic/plugins/src/main/java/signal-library.gradle.kts @@ -3,18 +3,10 @@ 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() val testLibs = the() -val signalBuildToolsVersion: String by rootProject.extra -val signalCompileSdkVersion: String by rootProject.extra -val signalTargetSdkVersion: Int by rootProject.extra -val signalMinSdkVersion: Int by rootProject.extra -val signalJavaVersion: JavaVersion by rootProject.extra -val signalKotlinJvmTarget: String by rootProject.extra - plugins { // We cannot use the version catalog in the plugins block in convention plugins (it's not supported). // Instead, plugin versions are controlled through the dependencies block in the build.gradle.kts. @@ -24,22 +16,22 @@ plugins { } android { - buildToolsVersion = signalBuildToolsVersion - compileSdkVersion = signalCompileSdkVersion + buildToolsVersion = libs.versions.buildTools.get() + compileSdkVersion = libs.versions.compileSdk.get() defaultConfig { - minSdk = signalMinSdkVersion + minSdk = libs.versions.minSdk.get().toInt() vectorDrawables.useSupportLibrary = true } compileOptions { isCoreLibraryDesugaringEnabled = true - sourceCompatibility = signalJavaVersion - targetCompatibility = signalJavaVersion + sourceCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get()) + targetCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get()) } kotlinOptions { - jvmTarget = signalKotlinJvmTarget + jvmTarget = libs.versions.kotlinJvmTarget.get() suppressWarnings = true } diff --git a/build-logic/plugins/src/main/java/signal-sample-app.gradle.kts b/build-logic/plugins/src/main/java/signal-sample-app.gradle.kts index b70094b7d4..7da40ee4e5 100644 --- a/build-logic/plugins/src/main/java/signal-sample-app.gradle.kts +++ b/build-logic/plugins/src/main/java/signal-sample-app.gradle.kts @@ -3,20 +3,11 @@ 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() val testLibs = the() -val signalBuildToolsVersion: String by rootProject.extra -val signalCompileSdkVersion: String by rootProject.extra -val signalTargetSdkVersion: Int by rootProject.extra -val signalMinSdkVersion: Int by rootProject.extra -val signalJavaVersion: JavaVersion by rootProject.extra -val signalKotlinJvmTarget: String by rootProject.extra - plugins { // We cannot use the version catalog in the plugins block in convention plugins (it's not supported). // Instead, plugin versions are controlled through the dependencies block in the build.gradle.kts. @@ -26,25 +17,25 @@ plugins { } android { - buildToolsVersion = signalBuildToolsVersion - compileSdkVersion = signalCompileSdkVersion + buildToolsVersion = libs.versions.buildTools.get() + compileSdkVersion = libs.versions.compileSdk.get() defaultConfig { versionCode = 1 versionName = "1.0" - minSdk = signalMinSdkVersion - targetSdk = signalTargetSdkVersion + minSdk = libs.versions.minSdk.get().toInt() + targetSdk = libs.versions.targetSdk.get().toInt() } compileOptions { isCoreLibraryDesugaringEnabled = true - sourceCompatibility = signalJavaVersion - targetCompatibility = signalJavaVersion + sourceCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get()) + targetCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get()) } kotlinOptions { - jvmTarget = signalKotlinJvmTarget + jvmTarget = libs.versions.kotlinJvmTarget.get() suppressWarnings = true } diff --git a/build-logic/tools/build.gradle.kts b/build-logic/tools/build.gradle.kts index 9a63555e79..238080c66c 100644 --- a/build-logic/tools/build.gradle.kts +++ b/build-logic/tools/build.gradle.kts @@ -4,17 +4,14 @@ plugins { alias(libs.plugins.ktlint) } -val signalJavaVersion: JavaVersion by rootProject.extra -val signalKotlinJvmTarget: String by rootProject.extra - java { - sourceCompatibility = signalJavaVersion - targetCompatibility = signalJavaVersion + sourceCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get()) + targetCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get()) } kotlin { jvmToolchain { - languageVersion = JavaLanguageVersion.of(signalKotlinJvmTarget) + languageVersion = JavaLanguageVersion.of(libs.versions.kotlinJvmTarget.get()) } } diff --git a/build.gradle.kts b/build.gradle.kts index 65e451d29d..9d34231028 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -46,8 +46,6 @@ tasks.withType { distributionType = Wrapper.DistributionType.ALL } -apply(from = "$rootDir/constants.gradle.kts") - subprojects { if (JavaVersion.current().isJava8Compatible) { allprojects { @@ -126,7 +124,8 @@ tasks.register("checkStopship") { val excludedDirectories = listOf( "app/build", - "libsignal-service/build" + "libsignal-service/build", + ".idea" ) val allowedExtensions = setOf("kt", "kts", "java", "xml") diff --git a/constants.gradle.kts b/constants.gradle.kts deleted file mode 100644 index 64a079262d..0000000000 --- a/constants.gradle.kts +++ /dev/null @@ -1,7 +0,0 @@ -val signalBuildToolsVersion by extra("35.0.0") -val signalCompileSdkVersion by extra("android-36") -val signalTargetSdkVersion by extra(35) -val signalMinSdkVersion by extra(23) -val signalNdkVersion by extra("28.0.13004108") -val signalJavaVersion by extra(JavaVersion.VERSION_17) -val signalKotlinJvmTarget by extra("17") diff --git a/core-models/build.gradle.kts b/core-models/build.gradle.kts index d4ccfa6aa4..07f220e73f 100644 --- a/core-models/build.gradle.kts +++ b/core-models/build.gradle.kts @@ -3,9 +3,6 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -val signalJavaVersion: JavaVersion by rootProject.extra -val signalKotlinJvmTarget: String by rootProject.extra - plugins { id("java-library") id("org.jetbrains.kotlin.jvm") @@ -13,13 +10,13 @@ plugins { } java { - sourceCompatibility = signalJavaVersion - targetCompatibility = signalJavaVersion + sourceCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get()) + targetCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get()) } kotlin { jvmToolchain { - languageVersion = JavaLanguageVersion.of(signalKotlinJvmTarget) + languageVersion = JavaLanguageVersion.of(libs.versions.kotlinJvmTarget.get()) } } diff --git a/core-util-jvm/build.gradle.kts b/core-util-jvm/build.gradle.kts index a59efc47f2..32493ac7f0 100644 --- a/core-util-jvm/build.gradle.kts +++ b/core-util-jvm/build.gradle.kts @@ -5,9 +5,6 @@ import org.gradle.api.tasks.SourceSetContainer -val signalJavaVersion: JavaVersion by rootProject.extra -val signalKotlinJvmTarget: String by rootProject.extra - plugins { id("java-library") id("org.jetbrains.kotlin.jvm") @@ -16,13 +13,13 @@ plugins { } java { - sourceCompatibility = signalJavaVersion - targetCompatibility = signalJavaVersion + sourceCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get()) + targetCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get()) } kotlin { jvmToolchain { - languageVersion = JavaLanguageVersion.of(signalKotlinJvmTarget) + languageVersion = JavaLanguageVersion.of(libs.versions.kotlinJvmTarget.get()) } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e5b129045a..c25dff3e04 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,6 +2,19 @@ # ./gradlew --write-verification-metadata sha256 qa --rerun-tasks [versions] +# SDK & Build Versions +buildTools = "35.0.0" +compileSdk = "android-36" +targetSdk = "35" +minSdk = "23" +ndk = "28.0.13004108" +javaVersion = "17" +kotlinJvmTarget = "17" +gradle = "8.9.0" +kotlin = "2.2.20" +android-gradle-plugin = "8.10.1" + +# Other versions androidx-appcompat = "1.7.0" androidx-activity = "1.12.0" androidx-camera = "1.3.4" @@ -13,11 +26,8 @@ androidx-navigation = "2.8.5" androidx-navigation3-core = "1.0.0" androidx-window = "1.3.0" glide = "4.15.1" -gradle = "8.9.0" -kotlin = "2.2.20" libsignal-client = "0.86.8" mp4parser = "1.9.39" -android-gradle-plugin = "8.10.1" accompanist = "0.28.0" nanohttpd = "2.3.1" navigation-safe-args-gradle-plugin = "2.8.5" diff --git a/libsignal-service/build.gradle.kts b/libsignal-service/build.gradle.kts index 1c95447482..46b1e88848 100644 --- a/libsignal-service/build.gradle.kts +++ b/libsignal-service/build.gradle.kts @@ -18,24 +18,17 @@ plugins { id("com.squareup.wire") } -val signalBuildToolsVersion: String by rootProject.extra -val signalCompileSdkVersion: String by rootProject.extra -val signalTargetSdkVersion: Int by rootProject.extra -val signalMinSdkVersion: Int by rootProject.extra -val signalJavaVersion: JavaVersion by rootProject.extra -val signalKotlinJvmTarget: String by rootProject.extra - java { withJavadocJar() withSourcesJar() - sourceCompatibility = signalJavaVersion - targetCompatibility = signalJavaVersion + sourceCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get()) + targetCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get()) } tasks.withType().configureEach { kotlin { compilerOptions { - jvmTarget = JvmTarget.fromTarget(signalKotlinJvmTarget) + jvmTarget = JvmTarget.fromTarget(libs.versions.kotlinJvmTarget.get()) freeCompilerArgs = listOf("-Xjvm-default=all") suppressWarnings = true } diff --git a/lintchecks/build.gradle.kts b/lintchecks/build.gradle.kts index 06e6fd64bc..c0373b67c8 100644 --- a/lintchecks/build.gradle.kts +++ b/lintchecks/build.gradle.kts @@ -1,19 +1,16 @@ -val signalJavaVersion: JavaVersion by rootProject.extra -val signalKotlinJvmTarget: String by rootProject.extra - plugins { id("java-library") id("org.jetbrains.kotlin.jvm") } java { - sourceCompatibility = signalJavaVersion - targetCompatibility = signalJavaVersion + sourceCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get()) + targetCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get()) } kotlin { jvmToolchain { - languageVersion = JavaLanguageVersion.of(signalKotlinJvmTarget) + languageVersion = JavaLanguageVersion.of(libs.versions.kotlinJvmTarget.get()) } } diff --git a/microbenchmark/build.gradle.kts b/microbenchmark/build.gradle.kts index 4f2a539710..06b0089a9c 100644 --- a/microbenchmark/build.gradle.kts +++ b/microbenchmark/build.gradle.kts @@ -7,29 +7,22 @@ plugins { id("ktlint") } -val signalBuildToolsVersion: String by rootProject.extra -val signalCompileSdkVersion: String by rootProject.extra -val signalTargetSdkVersion: Int by rootProject.extra -val signalMinSdkVersion: Int by rootProject.extra -val signalJavaVersion: JavaVersion by rootProject.extra -val signalKotlinJvmTarget: String by rootProject.extra - android { namespace = "org.signal.microbenchmark" - compileSdkVersion = signalCompileSdkVersion + compileSdkVersion = libs.versions.compileSdk.get() compileOptions { isCoreLibraryDesugaringEnabled = true - sourceCompatibility = signalJavaVersion - targetCompatibility = signalJavaVersion + sourceCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get()) + targetCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get()) } kotlinOptions { - jvmTarget = signalKotlinJvmTarget + jvmTarget = libs.versions.kotlinJvmTarget.get() } defaultConfig { - minSdk = signalMinSdkVersion + minSdk = libs.versions.minSdk.get().toInt() testInstrumentationRunner = "androidx.benchmark.junit4.AndroidBenchmarkRunner" } diff --git a/video/app/build.gradle.kts b/video/app/build.gradle.kts index c7de7670bf..52ffc2b526 100644 --- a/video/app/build.gradle.kts +++ b/video/app/build.gradle.kts @@ -8,21 +8,14 @@ plugins { alias(libs.plugins.compose.compiler) } -val signalBuildToolsVersion: String by rootProject.extra -val signalCompileSdkVersion: String by rootProject.extra -val signalTargetSdkVersion: Int by rootProject.extra -val signalMinSdkVersion: Int by rootProject.extra -val signalJavaVersion: JavaVersion by rootProject.extra -val signalKotlinJvmTarget: String by rootProject.extra - android { namespace = "org.thoughtcrime.video.app" - compileSdkVersion = signalCompileSdkVersion + compileSdkVersion = libs.versions.compileSdk.get() defaultConfig { applicationId = "org.thoughtcrime.video.app" minSdk = 23 - targetSdk = signalTargetSdkVersion + targetSdk = libs.versions.targetSdk.get().toInt() versionCode = 1 versionName = "1.0" @@ -39,11 +32,11 @@ android { } } compileOptions { - sourceCompatibility = signalJavaVersion - targetCompatibility = signalJavaVersion + sourceCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get()) + targetCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get()) } kotlinOptions { - jvmTarget = signalKotlinJvmTarget + jvmTarget = libs.versions.kotlinJvmTarget.get() } buildFeatures { compose = true