diff --git a/build.gradle b/build.gradle index 32d0377..b3cae04 100644 --- a/build.gradle +++ b/build.gradle @@ -15,6 +15,11 @@ buildscript { classpath deps.plugins.android } } + +plugins { + id("de.fayard.buildSrcVersions") version "0.4.2" +} + apply from: "$rootDir/gradle/dependencies.gradle" allprojects { diff --git a/buildSrc/.gitignore b/buildSrc/.gitignore new file mode 100644 index 0000000..67bcc2f --- /dev/null +++ b/buildSrc/.gitignore @@ -0,0 +1,2 @@ +.gradle/ +build/ diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts new file mode 100644 index 0000000..5a41975 --- /dev/null +++ b/buildSrc/build.gradle.kts @@ -0,0 +1,7 @@ +repositories { + jcenter() +} + +plugins { + `kotlin-dsl` +} diff --git a/buildSrc/src/main/kotlin/Libs.kt b/buildSrc/src/main/kotlin/Libs.kt new file mode 100644 index 0000000..66e3df0 --- /dev/null +++ b/buildSrc/src/main/kotlin/Libs.kt @@ -0,0 +1,173 @@ +import kotlin.String + +/** + * Generated by https://github.com/jmfayard/buildSrcVersions + * + * Update this file with + * `$ ./gradlew buildSrcVersions` + */ +object Libs { + /** + * http://developer.android.com/tools/extras/support-library.html + */ + const val appcompat: String = "androidx.appcompat:appcompat:" + Versions.appcompat + + /** + * https://developer.android.com/testing + */ + const val espresso_core: String = "androidx.test.espresso:espresso-core:" + Versions.espresso_core + + /** + * https://developer.android.com/testing + */ + const val androidx_test_runner: String = "androidx.test:runner:" + Versions.androidx_test_runner + + /** + * https://github.com/robstoll/atrium + */ + const val atrium_cc_en_gb_robstoll_common: String = + "ch.tutteli.atrium:atrium-cc-en_GB-robstoll-common:" + Versions.ch_tutteli_atrium + + /** + * https://github.com/robstoll/atrium + */ + const val atrium_cc_en_gb_robstoll: String = "ch.tutteli.atrium:atrium-cc-en_GB-robstoll:" + + Versions.ch_tutteli_atrium + + /** + * https://developer.android.com/studio + */ + const val aapt2: String = "com.android.tools.build:aapt2:" + Versions.aapt2 + + /** + * https://developer.android.com/studio + */ + const val com_android_tools_build_gradle: String = "com.android.tools.build:gradle:" + + Versions.com_android_tools_build_gradle + + /** + * https://developer.android.com/studio + */ + const val lint_gradle: String = "com.android.tools.lint:lint-gradle:" + Versions.lint_gradle + + const val de_fayard_buildsrcversions_gradle_plugin: String = + "de.fayard.buildSrcVersions:de.fayard.buildSrcVersions.gradle.plugin:" + + Versions.de_fayard_buildsrcversions_gradle_plugin + + /** + * http://mockk.io + */ + const val mockk_common: String = "io.mockk:mockk-common:" + Versions.io_mockk + + /** + * http://mockk.io + */ + const val mockk: String = "io.mockk:mockk:" + Versions.io_mockk + + /** + * http://junit.org + */ + const val junit: String = "junit:junit:" + Versions.junit + + const val dokka_gradle_plugin: String = "org.jetbrains.dokka:dokka-gradle-plugin:" + + Versions.dokka_gradle_plugin + + /** + * https://kotlinlang.org/ + */ + const val kotlin_android_extensions_runtime: String = + "org.jetbrains.kotlin:kotlin-android-extensions-runtime:" + Versions.org_jetbrains_kotlin + + /** + * https://kotlinlang.org/ + */ + const val kotlin_android_extensions: String = "org.jetbrains.kotlin:kotlin-android-extensions:" + + Versions.org_jetbrains_kotlin + + /** + * https://kotlinlang.org/ + */ + const val kotlin_annotation_processing_gradle: String = + "org.jetbrains.kotlin:kotlin-annotation-processing-gradle:" + Versions.org_jetbrains_kotlin + + /** + * https://kotlinlang.org/ + */ + const val kotlin_gradle_plugin: String = "org.jetbrains.kotlin:kotlin-gradle-plugin:" + + Versions.org_jetbrains_kotlin + + /** + * https://kotlinlang.org/ + */ + const val kotlin_reflect: String = "org.jetbrains.kotlin:kotlin-reflect:" + + Versions.org_jetbrains_kotlin + + /** + * https://kotlinlang.org/ + */ + const val kotlin_scripting_compiler_embeddable: String = + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:" + Versions.org_jetbrains_kotlin + + /** + * https://kotlinlang.org/ + */ + const val kotlin_stdlib_common: String = "org.jetbrains.kotlin:kotlin-stdlib-common:" + + Versions.org_jetbrains_kotlin + + /** + * https://kotlinlang.org/ + */ + const val kotlin_stdlib_jdk8: String = "org.jetbrains.kotlin:kotlin-stdlib-jdk8:" + + Versions.org_jetbrains_kotlin + + /** + * https://kotlinlang.org/ + */ + const val kotlin_stdlib_js: String = "org.jetbrains.kotlin:kotlin-stdlib-js:" + + Versions.org_jetbrains_kotlin + + /** + * https://kotlinlang.org/ + */ + const val kotlin_stdlib: String = "org.jetbrains.kotlin:kotlin-stdlib:" + + Versions.org_jetbrains_kotlin + + /** + * https://kotlinlang.org/ + */ + const val kotlin_test_annotations_common: String = + "org.jetbrains.kotlin:kotlin-test-annotations-common:" + Versions.org_jetbrains_kotlin + + /** + * https://kotlinlang.org/ + */ + const val kotlin_test_common: String = "org.jetbrains.kotlin:kotlin-test-common:" + + Versions.org_jetbrains_kotlin + + /** + * https://kotlinlang.org/ + */ + const val kotlin_test_js: String = "org.jetbrains.kotlin:kotlin-test-js:" + + Versions.org_jetbrains_kotlin + + /** + * https://kotlinlang.org/ + */ + const val kotlin_test_junit: String = "org.jetbrains.kotlin:kotlin-test-junit:" + + Versions.org_jetbrains_kotlin + + /** + * https://kotlinlang.org/ + */ + const val kotlin_test: String = "org.jetbrains.kotlin:kotlin-test:" + + Versions.org_jetbrains_kotlin + + const val spek_dsl_jvm: String = "org.spekframework.spek2:spek-dsl-jvm:" + + Versions.org_spekframework_spek2 + + const val spek_dsl_metadata: String = "org.spekframework.spek2:spek-dsl-metadata:" + + Versions.org_spekframework_spek2 + + const val spek_runner_junit5: String = "org.spekframework.spek2:spek-runner-junit5:" + + Versions.org_spekframework_spek2 +} diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt new file mode 100644 index 0000000..2b923dc --- /dev/null +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -0,0 +1,58 @@ +import kotlin.String +import org.gradle.plugin.use.PluginDependenciesSpec +import org.gradle.plugin.use.PluginDependencySpec + +/** + * Generated by https://github.com/jmfayard/buildSrcVersions + * + * Find which updates are available by running + * `$ ./gradlew buildSrcVersions` + * This will only update the comments. + * + * YOU are responsible for updating manually the dependency version. + */ +object Versions { + const val appcompat: String = "1.1.0-rc01" + + const val espresso_core: String = "3.2.0" + + const val androidx_test_runner: String = "1.2.0" + + const val ch_tutteli_atrium: String = "0.8.0" + + const val aapt2: String = "3.5.0-5435860" + + const val com_android_tools_build_gradle: String = "3.5.0" + + const val lint_gradle: String = "26.5.0" + + const val de_fayard_buildsrcversions_gradle_plugin: String = "0.4.2" + + const val io_mockk: String = "1.9.3" + + const val junit: String = "4.12" + + const val dokka_gradle_plugin: String = "0.9.17" // available: "0.9.18" + + const val org_jetbrains_kotlin: String = "1.3.50" + + const val org_spekframework_spek2: String = "2.1.0-alpha.0.11+d97ef33" + // available: "2.1.0-alpha.0.24+0fdeb6e" + + /** + * + * See issue 19: How to update Gradle itself? + * https://github.com/jmfayard/buildSrcVersions/issues/19 + */ + const val gradleLatestVersion: String = "5.6.1" + + const val gradleCurrentVersion: String = "5.6.1" +} + +/** + * See issue #47: how to update buildSrcVersions itself + * https://github.com/jmfayard/buildSrcVersions/issues/47 + */ +val PluginDependenciesSpec.buildSrcVersions: PluginDependencySpec + inline get() = + id("de.fayard.buildSrcVersions").version(Versions.de_fayard_buildsrcversions_gradle_plugin) diff --git a/examples/counter/android/build.gradle b/examples/counter/android/build.gradle deleted file mode 100644 index aff7aab..0000000 --- a/examples/counter/android/build.gradle +++ /dev/null @@ -1,51 +0,0 @@ -apply plugin: 'com.android.application' - -apply plugin: 'kotlin-android' - -apply plugin: 'kotlin-android-extensions' - -apply plugin: 'kotlin-kapt' - - -android { - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - compileSdkVersion 29 - defaultConfig { - applicationId "org.reduxkotlin.example.counter" - minSdkVersion 26 - targetSdkVersion 29 - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - } - debug { - // MPP libraries don't currently get this resolution automatically - matchingFallbacks = ['release'] - } - } - packagingOptions { - exclude 'META-INF/*.kotlin_module' - } - tasks.lint.enabled = false -} - - -dependencies { - implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk8:$project.versions.kotlin" - implementation 'androidx.appcompat:appcompat:1.1.0-rc01' - - implementation project(':examples:counter:common') - implementation project(':lib') - - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' -} diff --git a/examples/counter/android/build.gradle.kts b/examples/counter/android/build.gradle.kts new file mode 100644 index 0000000..e92ab7b --- /dev/null +++ b/examples/counter/android/build.gradle.kts @@ -0,0 +1,44 @@ +plugins { + id("com.android.application") + kotlin("android") + kotlin("android.extensions") + kotlin("kapt") +} + +android { + compileSdkVersion(29) + defaultConfig { + applicationId = "org.reduxkotlin.example.counter" + minSdkVersion(26) + targetSdkVersion(29) + versionCode = 1 + versionName = "1.0" + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + buildTypes { + getByName("release") { + isMinifyEnabled = false + proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro") + } + getByName("debug") { + // MPP libraries don't currently get this resolution automatically + matchingFallbacks = listOf("release") + } + } + packagingOptions { + exclude("META-INF/*.kotlin_module") + } +} + + +dependencies { + implementation(Libs.kotlin_stdlib_jdk8) + implementation(Libs.appcompat) + + implementation(project(":examples:counter:common")) + implementation(project(":lib")) +} diff --git a/settings.gradle b/settings.gradle index 76f2e3b..fbc48dc 100644 --- a/settings.gradle +++ b/settings.gradle @@ -8,11 +8,13 @@ pluginManagement { } } -include ':lib', ':examples:counter:common', ':examples:counter:android' -rootProject.name='Redux-Kotlin' +include( + ':lib', + ':examples:counter:common', + ':examples:counter:android' +) +rootProject.name = 'Redux-Kotlin' -rootProject.name = 'test' enableFeaturePreview('GRADLE_METADATA') enableFeaturePreview('STABLE_PUBLISHING') -