Skip to content

Commit

Permalink
refactor - Main: move vcu to build-logic and cleanup build-logic
Browse files Browse the repository at this point in the history
  • Loading branch information
gouvinb committed May 13, 2023
1 parent edcb104 commit d28d894
Show file tree
Hide file tree
Showing 19 changed files with 104 additions and 83 deletions.
10 changes: 5 additions & 5 deletions application/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
plugins {
kotlin("multiplatform")

id("io.github.gouvinb.wwmaccompanist.gradle.project.base.main")
id("io.github.gouvinb.wwmaccompanist.gradle.project.base.dokka")
id("io.github.gouvinb.wwmaccompanist.gradle.project.base.spotless.java")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.main")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.dokka")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.spotless.java")
}

group = "io.github.gouvinb.wwmaccompanist.application"
version = "0.3.0"
version = "0.4.0"

/*
* Here's the main hierarchy of variants. Any `expect` functions in one level of the tree are
Expand All @@ -34,7 +34,7 @@ version = "0.3.0"
* platforms and as a test source set on the JVM platform.
*/
kotlin {
configureOrCreateNativePlatforms(jsCompilerType = IR)
configureOrCreateNativePlatforms()
.forEach { kotlinTarget ->
when (kotlinTarget) {
is KotlinNativeTarget -> kotlinTarget.apply {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import io.github.gouvinb.wwmaccompanist.audio.command.AudioCommand
import io.github.gouvinb.wwmaccompanist.backlight.command.BacklightCommand
import io.github.gouvinb.wwmaccompanist.logger.data.model.LoggerLevel
import io.github.gouvinb.wwmaccompanist.logger.presentation.Logger
import io.github.gouvinb.wwmaccompanist.screenshot.command.ScreenshotCommand
import platform.posix.STDIN_FILENO
import platform.posix.isatty

Expand All @@ -27,7 +28,7 @@ class App : CliktCommand(
name = NAME,
epilog = "See '$NAME <command> --help' for more information on a specific command.",
help = "A custom collection of tools for Wayland WM",
helpTags = mapOf("version" to "0.3.0"),
helpTags = mapOf("version" to "0.4.0"),
) {
private val loggerLevel by option("--verbose", "-v", help = "Set the verbose level")
.enum<LoggerLevel>(key = { it.name.lowercase() })
Expand All @@ -43,6 +44,7 @@ class App : CliktCommand(

private val audioCommand = AudioCommand()
private val backlightCommand = BacklightCommand()
private val screenshotCommand = ScreenshotCommand()

init {
context {
Expand All @@ -52,6 +54,7 @@ class App : CliktCommand(
subcommands(
audioCommand,
backlightCommand,
screenshotCommand,
completionCommand,
)
}
Expand Down
33 changes: 21 additions & 12 deletions build-logic/plugins/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,34 +6,43 @@ plugins {
group = "io.github.gouvinb.wwmaccompanist.gradle"

dependencies {
implementation(libs.android.gradlePlugin)
implementation(libs.dokka.gradlePlugin)
implementation(libs.kotlin.gradlePlugin)
implementation(libs.spotless.gradlePlugin)
compileOnly(libs.android.gradlePlugin)
compileOnly(libs.dokka.gradlePlugin)
compileOnly(libs.kotlin.gradlePlugin)
compileOnly(libs.spotless.gradlePlugin)
compileOnly(libs.dependencies.versions.gradlePlugin)
compileOnly(libs.dependencies.versions.update.gradlePlugin)

}

gradlePlugin {
plugins {
// Main
register("main") {
id = "io.github.gouvinb.wwmaccompanist.gradle.project.base.main"
implementationClass = "io.github.gouvinb.wwmaccompanist.gradle.project.base.MainPlugin"
id = "io.github.gouvinb.wwmaccompanist.gradle.project.plugins.main"
implementationClass = "io.github.gouvinb.wwmaccompanist.gradle.project.plugins.MainPlugin"
}

// Dokka
register("dokka") {
id = "io.github.gouvinb.wwmaccompanist.gradle.project.base.dokka"
implementationClass = "io.github.gouvinb.wwmaccompanist.gradle.project.base.DokkaPlugin"
id = "io.github.gouvinb.wwmaccompanist.gradle.project.plugins.dokka"
implementationClass = "io.github.gouvinb.wwmaccompanist.gradle.project.plugins.DokkaPlugin"
}

// Spotless
register("javaSpotless") {
id = "io.github.gouvinb.wwmaccompanist.gradle.project.base.spotless.java"
implementationClass = "io.github.gouvinb.wwmaccompanist.gradle.project.base.SpotlessJavaPlugin"
id = "io.github.gouvinb.wwmaccompanist.gradle.project.plugins.spotless.java"
implementationClass = "io.github.gouvinb.wwmaccompanist.gradle.project.plugins.SpotlessJavaPlugin"
}
register("androidSpotless") {
id = "io.github.gouvinb.wwmaccompanist.gradle.project.base.spotless.android"
implementationClass = "io.github.gouvinb.wwmaccompanist.gradle.project.base.SpotlessAndroidPlugin"
id = "io.github.gouvinb.wwmaccompanist.gradle.project.plugins.spotless.android"
implementationClass = "io.github.gouvinb.wwmaccompanist.gradle.project.plugins.SpotlessAndroidPlugin"
}

// Version Catalog
register("dependencies") {
id = "io.github.gouvinb.wwmaccompanist.gradle.project.plugins.dependencies"
implementationClass = "io.github.gouvinb.wwmaccompanist.gradle.project.plugins.DependenciesPlugin"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package io.github.gouvinb.wwmaccompanist.gradle.project.plugins

import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask
import nl.littlerobots.vcu.plugin.VersionCatalogUpdateExtension
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.withType

class DependenciesPlugin : Plugin<Project> {
override fun apply(target: Project) {
with(target) {
pluginManager.apply("com.github.ben-manes.versions")
pluginManager.apply("nl.littlerobots.version-catalog-update")

// https://github.com/ben-manes/gradle-versions-plugin
tasks.withType<DependencyUpdatesTask>().configureEach {
fun isNonStable(version: String): Boolean {
val stableKeyword = listOf("RELEASE", "FINAL", "GA").any { version.uppercase().contains(it) }
val regex = "^[0-9,.v-]+(-r)?$".toRegex()
val isStable = stableKeyword || regex.matches(version)
return isStable.not()
}

rejectVersionIf {
isNonStable(candidate.version)
}
}

extensions.configure<VersionCatalogUpdateExtension> {
keep {
version
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.github.gouvinb.wwmaccompanist.gradle.project.base
package io.github.gouvinb.wwmaccompanist.gradle.project.plugins

import org.gradle.api.JavaVersion
import org.gradle.api.Plugin
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.github.gouvinb.wwmaccompanist.gradle.project.base
package io.github.gouvinb.wwmaccompanist.gradle.project.plugins

import org.gradle.api.JavaVersion
import org.gradle.api.Plugin
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.github.gouvinb.wwmaccompanist.gradle.project.base
package io.github.gouvinb.wwmaccompanist.gradle.project.plugins

import com.diffplug.gradle.spotless.SpotlessExtension
import org.gradle.api.Plugin
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,10 @@ package io.github.gouvinb.wwmaccompanist.gradle.project.utils.extenstion

import io.github.gouvinb.wwmaccompanist.gradle.project.utils.SelectedTarget
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
import org.jetbrains.kotlin.gradle.plugin.KotlinJsCompilerType
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget

@Suppress("unused")
fun KotlinMultiplatformExtension.configureOrCreateNativePlatforms(
jsCompilerType: KotlinJsCompilerType = KotlinJsCompilerType.BOTH,
) = ArrayList<KotlinTarget>().apply {
fun KotlinMultiplatformExtension.configureOrCreateNativePlatforms() = ArrayList<KotlinTarget>().apply {
val selectedTarget = SelectedTarget.getFromProperty()

if (selectedTarget.matchWith(SelectedTarget.NATIVE)) {
Expand Down
31 changes: 3 additions & 28 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,10 +1,3 @@
import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask
import nl.littlerobots.vcu.plugin.versionCatalogUpdate

plugins {
`version-catalog`
}

buildscript {
repositories {
google()
Expand All @@ -22,25 +15,7 @@ buildscript {
}
}

apply(plugin = "com.github.ben-manes.versions")
apply(plugin = "nl.littlerobots.version-catalog-update")

// https://github.com/ben-manes/gradle-versions-plugin
tasks.withType<DependencyUpdatesTask> {
fun isNonStable(version: String): Boolean {
val stableKeyword = listOf("RELEASE", "FINAL", "GA").any { version.uppercase().contains(it) }
val regex = "^[0-9,.v-]+(-r)?$".toRegex()
val isStable = stableKeyword || regex.matches(version)
return isStable.not()
}

rejectVersionIf {
isNonStable(candidate.version)
}
}

versionCatalogUpdate {
keep {
version
}
plugins {
`version-catalog`
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.dependencies")
}
6 changes: 3 additions & 3 deletions library/accompanist-util/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import io.github.gouvinb.wwmaccompanist.gradle.project.utils.extenstion.createSo
plugins {
kotlin("multiplatform")

id("io.github.gouvinb.wwmaccompanist.gradle.project.base.main")
id("io.github.gouvinb.wwmaccompanist.gradle.project.base.dokka")
id("io.github.gouvinb.wwmaccompanist.gradle.project.base.spotless.java")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.main")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.dokka")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.spotless.java")
}

group = "io.github.gouvinb.wwmaccompanist.util"
Expand Down
6 changes: 3 additions & 3 deletions library/audio/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import io.github.gouvinb.wwmaccompanist.gradle.project.utils.extenstion.createSo
plugins {
kotlin("multiplatform")

id("io.github.gouvinb.wwmaccompanist.gradle.project.base.main")
id("io.github.gouvinb.wwmaccompanist.gradle.project.base.dokka")
id("io.github.gouvinb.wwmaccompanist.gradle.project.base.spotless.java")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.main")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.dokka")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.spotless.java")
}

group = "io.github.gouvinb.wwmaccompanist.audio.command.audio"
Expand Down
6 changes: 3 additions & 3 deletions library/backlight/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import io.github.gouvinb.wwmaccompanist.gradle.project.utils.extenstion.createSo
plugins {
kotlin("multiplatform")

id("io.github.gouvinb.wwmaccompanist.gradle.project.base.main")
id("io.github.gouvinb.wwmaccompanist.gradle.project.base.dokka")
id("io.github.gouvinb.wwmaccompanist.gradle.project.base.spotless.java")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.main")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.dokka")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.spotless.java")
}

group = "io.github.gouvinb.wwmaccompanist.audio.command.backlight"
Expand Down
6 changes: 3 additions & 3 deletions library/bar/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import io.github.gouvinb.wwmaccompanist.gradle.project.utils.extenstion.createSo
plugins {
kotlin("multiplatform")

id("io.github.gouvinb.wwmaccompanist.gradle.project.base.main")
id("io.github.gouvinb.wwmaccompanist.gradle.project.base.dokka")
id("io.github.gouvinb.wwmaccompanist.gradle.project.base.spotless.java")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.main")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.dokka")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.spotless.java")
}

group = "io.github.gouvinb.wwmaccompanist.audio.command.bar"
Expand Down
6 changes: 3 additions & 3 deletions library/environment/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ import io.github.gouvinb.wwmaccompanist.gradle.project.utils.extenstion.createSo
plugins {
kotlin("multiplatform")

id("io.github.gouvinb.wwmaccompanist.gradle.project.base.main")
id("io.github.gouvinb.wwmaccompanist.gradle.project.base.dokka")
id("io.github.gouvinb.wwmaccompanist.gradle.project.base.spotless.java")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.main")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.dokka")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.spotless.java")
}

group = "io.github.gouvinb.wwmaccompanist.environment"
Expand Down
6 changes: 3 additions & 3 deletions library/launcher/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import io.github.gouvinb.wwmaccompanist.gradle.project.utils.extenstion.createSo
plugins {
kotlin("multiplatform")

id("io.github.gouvinb.wwmaccompanist.gradle.project.base.main")
id("io.github.gouvinb.wwmaccompanist.gradle.project.base.dokka")
id("io.github.gouvinb.wwmaccompanist.gradle.project.base.spotless.java")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.main")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.dokka")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.spotless.java")
}

group = "io.github.gouvinb.wwmaccompanist.audio.command.launcher"
Expand Down
6 changes: 3 additions & 3 deletions library/logger/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import io.github.gouvinb.wwmaccompanist.gradle.project.utils.extenstion.createSo
plugins {
kotlin("multiplatform")

id("io.github.gouvinb.wwmaccompanist.gradle.project.base.main")
id("io.github.gouvinb.wwmaccompanist.gradle.project.base.dokka")
id("io.github.gouvinb.wwmaccompanist.gradle.project.base.spotless.java")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.main")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.dokka")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.spotless.java")
}

group = "io.github.gouvinb.wwmaccompanist.logger"
Expand Down
6 changes: 3 additions & 3 deletions library/screenshot/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import io.github.gouvinb.wwmaccompanist.gradle.project.utils.extenstion.createSo
plugins {
kotlin("multiplatform")

id("io.github.gouvinb.wwmaccompanist.gradle.project.base.main")
id("io.github.gouvinb.wwmaccompanist.gradle.project.base.dokka")
id("io.github.gouvinb.wwmaccompanist.gradle.project.base.spotless.java")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.main")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.dokka")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.spotless.java")
}

group = "io.github.gouvinb.wwmaccompanist.audio.command.screenshot"
Expand Down
6 changes: 3 additions & 3 deletions library/theme/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import io.github.gouvinb.wwmaccompanist.gradle.project.utils.extenstion.createSo
plugins {
kotlin("multiplatform")

id("io.github.gouvinb.wwmaccompanist.gradle.project.base.main")
id("io.github.gouvinb.wwmaccompanist.gradle.project.base.dokka")
id("io.github.gouvinb.wwmaccompanist.gradle.project.base.spotless.java")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.main")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.dokka")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.spotless.java")
}

group = "io.github.gouvinb.wwmaccompanist.audio.command.theme"
Expand Down
6 changes: 3 additions & 3 deletions library/wallpaper/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import io.github.gouvinb.wwmaccompanist.gradle.project.utils.extenstion.createSo
plugins {
kotlin("multiplatform")

id("io.github.gouvinb.wwmaccompanist.gradle.project.base.main")
id("io.github.gouvinb.wwmaccompanist.gradle.project.base.dokka")
id("io.github.gouvinb.wwmaccompanist.gradle.project.base.spotless.java")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.main")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.dokka")
id("io.github.gouvinb.wwmaccompanist.gradle.project.plugins.spotless.java")
}

group = "io.github.gouvinb.wwmaccompanist.audio.command.wallpaper"
Expand Down

0 comments on commit d28d894

Please sign in to comment.