Skip to content
This repository was archived by the owner on Sep 18, 2025. It is now read-only.
Merged
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
80 changes: 40 additions & 40 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,59 +3,59 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
mavenCentral()
gradlePluginPortal()
google()
}

dependencies {
classpath(Dependencies.androidGradlePlugin)
classpath(Dependencies.Kotlin.dokka)
classpath(Dependencies.Kotlin.gradlePlugin)
classpath(Dependencies.ktlint)
}
repositories {
mavenCentral()
gradlePluginPortal()
google()
}

dependencies {
classpath(Dependencies.androidGradlePlugin)
classpath(Dependencies.Kotlin.dokka)
classpath(Dependencies.Kotlin.gradlePlugin)
classpath(Dependencies.ktlint)
}
}

// See https://stackoverflow.com/questions/25324880/detect-ide-environment-with-gradle
val isRunningFromIde get() = project.properties["android.injected.invoked.from.ide"] == "true"

subprojects {
repositories {
google()
mavenCentral()
jcenter()
}

tasks.withType<KotlinCompile> {
kotlinOptions {
jvmTarget = "1.8"

// Allow warnings when running from IDE, makes it easier to experiment.
if (!isRunningFromIde) {
allWarningsAsErrors = true
}

// Required while Compose is built on a compiler that is somewhere in between Kotlin
// 1.3 and 1.4. Otherwise you'll see errors like "Runtime JAR file has version 1.3 which
// is older than required for API version 1.4"
apiVersion = "1.3"

freeCompilerArgs = listOf(
"-Xopt-in=kotlin.RequiresOptIn",
"-Xallow-jvm-ir-dependencies",
"-Xskip-prerelease-check"
)
}
repositories {
google()
mavenCentral()
jcenter()
}

tasks.withType<KotlinCompile> {
kotlinOptions {
jvmTarget = "1.8"

// Allow warnings when running from IDE, makes it easier to experiment.
if (!isRunningFromIde) {
allWarningsAsErrors = true
}

// Required while Compose is built on a compiler that is somewhere in between Kotlin
// 1.3 and 1.4. Otherwise you'll see errors like "Runtime JAR file has version 1.3 which
// is older than required for API version 1.4"
apiVersion = "1.3"

freeCompilerArgs = listOf(
"-Xopt-in=kotlin.RequiresOptIn",
"-Xallow-jvm-ir-dependencies",
"-Xskip-prerelease-check"
)
}
}
}

// Dokka config for grouped docs.

repositories {
jcenter()
jcenter()
}

plugins {
id("org.jetbrains.dokka")
id("org.jetbrains.dokka")
}
18 changes: 9 additions & 9 deletions buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
import org.jetbrains.kotlin.konan.properties.loadProperties

plugins {
`kotlin-dsl`
`kotlin-dsl-precompiled-script-plugins`
`kotlin-dsl`
`kotlin-dsl-precompiled-script-plugins`
}

repositories {
mavenCentral()
gradlePluginPortal()
google()
mavenCentral()
gradlePluginPortal()
google()
}

kotlinDslPluginOptions {
experimentalWarning.set(false)
experimentalWarning.set(false)
}

val versions = loadProperties("$projectDir/src/main/resources/versions.properties")
val agpVersion = versions["androidGradlePluginVersion"]
val kotlinVersion = versions["kotlinVersion"]
val dokkaVersion = versions["dokkaVersion"]
dependencies {
implementation("com.android.tools.build:gradle:$agpVersion")
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion")
implementation("org.jetbrains.dokka:dokka-gradle-plugin:$dokkaVersion")
implementation("com.android.tools.build:gradle:$agpVersion")
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion")
implementation("org.jetbrains.dokka:dokka-gradle-plugin:$dokkaVersion")
}
102 changes: 51 additions & 51 deletions buildSrc/src/main/java/Dependencies.kt
Original file line number Diff line number Diff line change
@@ -1,69 +1,69 @@
import org.jetbrains.kotlin.gradle.utils.loadPropertyFromResources

object Versions {
private const val versionsFile = "versions.properties"
private const val versionsFile = "versions.properties"

const val targetSdk = 29
val agp = loadPropertyFromResources(versionsFile, "androidGradlePluginVersion")
private val composeDev = loadPropertyFromResources(versionsFile, "composeDevVersion")
val compose = "1.0.0-$composeDev"
val kotlin = loadPropertyFromResources(versionsFile, "kotlinVersion")
val dokka = loadPropertyFromResources(versionsFile, "dokkaVersion")
const val targetSdk = 29
val agp = loadPropertyFromResources(versionsFile, "androidGradlePluginVersion")
private val composeDev = loadPropertyFromResources(versionsFile, "composeDevVersion")
val compose = "1.0.0-$composeDev"
val kotlin = loadPropertyFromResources(versionsFile, "kotlinVersion")
val dokka = loadPropertyFromResources(versionsFile, "dokkaVersion")
}

object Dependencies {
val androidGradlePlugin = "com.android.tools.build:gradle:${Versions.agp}"
val androidGradlePlugin = "com.android.tools.build:gradle:${Versions.agp}"

object AndroidX {
const val activity = "androidx.activity:activity:1.1.0"
const val annotations = "androidx.annotation:annotation:1.1.0"
const val appcompat = "androidx.appcompat:appcompat:1.1.0"
const val constraintLayout = "androidx.constraintlayout:constraintlayout:1.1.3"
const val fragment = "androidx.fragment:fragment:1.2.2"
object AndroidX {
const val activity = "androidx.activity:activity:1.1.0"
const val annotations = "androidx.annotation:annotation:1.1.0"
const val appcompat = "androidx.appcompat:appcompat:1.1.0"
const val constraintLayout = "androidx.constraintlayout:constraintlayout:1.1.3"
const val fragment = "androidx.fragment:fragment:1.2.2"

// Note that we're not using the actual androidx material dep yet, it's still alpha.
const val material = "com.google.android.material:material:1.1.0"
const val recyclerview = "androidx.recyclerview:recyclerview:1.1.0"
// Note that we're not using the actual androidx material dep yet, it's still alpha.
const val material = "com.google.android.material:material:1.1.0"
const val recyclerview = "androidx.recyclerview:recyclerview:1.1.0"

// Note that we are *not* using lifecycle-viewmodel-savedstate, which at this
// writing is still in beta and still fixing bad bugs. Probably we'll never bother to,
// it doesn't really add value for us.
const val savedstate = "androidx.savedstate:savedstate:1.0.0"
const val transition = "androidx.transition:transition:1.3.1"
const val viewbinding = "androidx.databinding:viewbinding:3.6.1"
// Note that we are *not* using lifecycle-viewmodel-savedstate, which at this
// writing is still in beta and still fixing bad bugs. Probably we'll never bother to,
// it doesn't really add value for us.
const val savedstate = "androidx.savedstate:savedstate:1.0.0"
const val transition = "androidx.transition:transition:1.3.1"
const val viewbinding = "androidx.databinding:viewbinding:3.6.1"

const val junitExt = "androidx.test.ext:junit:1.1.1"
}
const val junitExt = "androidx.test.ext:junit:1.1.1"
}

object Compose {
val foundation = "androidx.compose.foundation:foundation:${Versions.compose}"
val icons = "androidx.compose.material:material-icons-extended:${Versions.compose}"
val material = "androidx.compose.material:material:${Versions.compose}"
val savedstate = "androidx.compose.runtime:runtime-saved-instance-state:${Versions.compose}"
val test = "androidx.ui:ui-test:${Versions.compose}"
val tooling = "androidx.ui:ui-tooling:${Versions.compose}"
val util = "androidx.compose.ui:ui-util:${Versions.compose}"
}
object Compose {
val foundation = "androidx.compose.foundation:foundation:${Versions.compose}"
val icons = "androidx.compose.material:material-icons-extended:${Versions.compose}"
val material = "androidx.compose.material:material:${Versions.compose}"
val savedstate = "androidx.compose.runtime:runtime-saved-instance-state:${Versions.compose}"
val test = "androidx.ui:ui-test:${Versions.compose}"
val tooling = "androidx.ui:ui-tooling:${Versions.compose}"
val util = "androidx.compose.ui:ui-util:${Versions.compose}"
}

object Kotlin {
const val binaryCompatibilityValidatorPlugin =
"org.jetbrains.kotlinx:binary-compatibility-validator:0.2.1"
val dokka = "org.jetbrains.dokka:dokka-gradle-plugin:${Versions.dokka}"
val gradlePlugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.kotlin}"
val reflect = "org.jetbrains.kotlin:kotlin-reflect:${Versions.kotlin}"

object Test {
const val common = "org.jetbrains.kotlin:kotlin-test-common"
const val annotations = "org.jetbrains.kotlin:kotlin-test-annotations-common"
const val jdk = "org.jetbrains.kotlin:kotlin-test-junit"
const val mockito = "com.nhaarman:mockito-kotlin-kt1.1:1.6.0"
}
}
object Kotlin {
const val binaryCompatibilityValidatorPlugin =
"org.jetbrains.kotlinx:binary-compatibility-validator:0.2.1"
val dokka = "org.jetbrains.dokka:dokka-gradle-plugin:${Versions.dokka}"
val gradlePlugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.kotlin}"
val reflect = "org.jetbrains.kotlin:kotlin-reflect:${Versions.kotlin}"

object Test {
const val junit = "junit:junit:4.13"
const val truth = "com.google.truth:truth:1.0.1"
const val common = "org.jetbrains.kotlin:kotlin-test-common"
const val annotations = "org.jetbrains.kotlin:kotlin-test-annotations-common"
const val jdk = "org.jetbrains.kotlin:kotlin-test-junit"
const val mockito = "com.nhaarman:mockito-kotlin-kt1.1:1.6.0"
}
}

object Test {
const val junit = "junit:junit:4.13"
const val truth = "com.google.truth:truth:1.0.1"
}

const val ktlint = "org.jlleitschuh.gradle:ktlint-gradle:9.2.0"
const val ktlint = "org.jlleitschuh.gradle:ktlint-gradle:9.2.0"
}
37 changes: 18 additions & 19 deletions buildSrc/src/main/java/default-android-config.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,31 +3,30 @@
import com.android.build.gradle.BaseExtension

plugins {
id("com.android.base")
id("com.android.base")
}

configure<BaseExtension> {
compileSdkVersion(Versions.targetSdk)
buildToolsVersion = "29.0.2"
compileSdkVersion(Versions.targetSdk)

compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}

defaultConfig {
minSdkVersion(21)
targetSdkVersion(Versions.targetSdk)
versionCode = 1
versionName = "1.0"
defaultConfig {
minSdkVersion(21)
targetSdkVersion(Versions.targetSdk)
versionCode = 1
versionName = "1.0"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}

buildFeatures.compose = true
buildFeatures.compose = true

composeOptions {
kotlinCompilerVersion = Versions.kotlin
kotlinCompilerExtensionVersion = Versions.compose
}
composeOptions {
kotlinCompilerVersion = Versions.kotlin
kotlinCompilerExtensionVersion = Versions.compose
}
}
Loading