Skip to content

Commit

Permalink
Switch to DCL file for gradle-client project
Browse files Browse the repository at this point in the history
  • Loading branch information
tresat committed Feb 21, 2025
1 parent c6c9c0f commit 349e641
Show file tree
Hide file tree
Showing 23 changed files with 60 additions and 92 deletions.
3 changes: 3 additions & 0 deletions declarative/gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ detekt = { module = "io.gitlab.arturbosch.detekt:detekt-gradle-plugin", version.
jetbrains-compose = { module = "org.jetbrains.compose:compose-gradle-plugin", version.ref = "compose-plugin" }
kotlin-compose = { module = "org.jetbrains.kotlin.plugin.compose:org.jetbrains.kotlin.plugin.compose.gradle.plugin", version.ref = "kotlin" }
kotlin-multiplatform = { module = "org.jetbrains.kotlin.multiplatform:org.jetbrains.kotlin.multiplatform.gradle.plugin", version.ref = "kotlin" }
kotlin-serialization = { module = "org.jetbrains.kotlin.plugin.serialization:org.jetbrains.kotlin.plugin.serialization.gradle.plugin", version.ref = "kotlin" }
sqldelight = { module = "app.cash.sqldelight:gradle-plugin", version.ref = "sqldelight" }
sqldelight-runtime = { module = "app.cash.sqldelight:runtime", version.ref = "sqldelight" }
sqldelight-extensions-coroutines = { module = "app.cash.sqldelight:coroutines-extensions", version.ref = "sqldelight" }
Expand All @@ -22,3 +23,5 @@ jetbrains-compose = { id = "org.jetbrains.compose", version.ref = "compose-plugi
kmp-ecosystem = { id = "org.gradle.experimental.kmp-ecosystem", version.ref = "declarative" }
kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
sqldelight = { id = "app.cash.sqldelight", version.ref = "sqldelight" }
kotlinSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }

8 changes: 5 additions & 3 deletions declarative/plugins/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// TODO: This file must unfortunately remain non-DCL, until we can create a new plugin project ecosystem type in the prototype
plugins {
id("java-gradle-plugin")
}
Expand All @@ -6,11 +7,12 @@ description = "Declarative plugins containing custom software types for the grad

dependencies {
api(libs.declarative)
api(libs.detekt)
api(libs.jetbrains.compose)
api(libs.kotlin.compose)
api(libs.kotlin.multiplatform)
api(libs.kotlin.serialization)
api(libs.kotlin.compose)
api(libs.jetbrains.compose)
api(libs.sqldelight)
api(libs.detekt)
}

gradlePlugin {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
import org.gradle.declarative.dsl.model.annotations.Configuring;
import org.gradle.declarative.dsl.model.annotations.Restricted;

@Restricted
public interface CustomDesktopComposeApplication {
@Restricted
Property<String> getGroup();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ public void apply(Project project) {
project.setVersion(dslModel.getVersion());

wireKMPApplication(project, dslModel.getKotlinApplication());
project.getPlugins().apply("org.jetbrains.kotlin.plugin.serialization");

wireDetekt(project, dslModel.getDetekt());

/*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import org.gradle.declarative.dsl.model.annotations.Configuring;
import org.gradle.declarative.dsl.model.annotations.Restricted;

@Restricted
public interface BuildType {
@Nested
Proguard getProguard();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import org.gradle.declarative.dsl.model.annotations.Configuring;
import org.gradle.declarative.dsl.model.annotations.Restricted;

@Restricted
public interface BuildTypes {
@Nested
BuildType getRelease();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import org.gradle.declarative.dsl.model.annotations.Configuring;
import org.gradle.declarative.dsl.model.annotations.Restricted;

@Restricted
public interface Compose {
@Restricted
Property<String> getMainClass();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

import kotlin.Unit;
import org.gradle.api.Project;
import org.gradle.api.provider.Property;
import org.gradle.client.softwaretype.CustomDesktopComposeApplication;
import org.jetbrains.compose.ComposeExtension;
import org.jetbrains.compose.desktop.DesktopExtension;
import org.jetbrains.compose.desktop.application.dsl.*;
import org.jetbrains.compose.desktop.application.dsl.TargetFormat;
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension;

import java.io.IOException;
Expand Down Expand Up @@ -61,7 +61,7 @@ private static void wireBuildType(BuildType buildTypeModel, JvmApplicationBuildT
}

private static void wireNativeDistribution(NativeDistributions nativeDistributionsModel, JvmApplicationDistributions nativeDistributions) {
nativeDistributions.setTargetFormats(EnumSet.copyOf(nativeDistributionsModel.getTargetFormats().stream().map(TargetFormat::getValue).map(Property::get).collect(Collectors.toList())));
nativeDistributions.setTargetFormats(EnumSet.copyOf(nativeDistributionsModel.getTargetFormats().get().stream().map(TargetFormat::valueOf).collect(Collectors.toList())));

nativeDistributions.setPackageName(nativeDistributionsModel.getPackageName().get());
nativeDistributions.setPackageVersion(nativeDistributionsModel.getPackageVersion().get());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import org.gradle.api.provider.Property;
import org.gradle.declarative.dsl.model.annotations.Restricted;

@Restricted
public interface JvmArg extends Named {
@Restricted
Property<String> getValue();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import org.gradle.api.file.RegularFileProperty;
import org.gradle.declarative.dsl.model.annotations.Restricted;

@Restricted
public interface Linux {
@Restricted
RegularFileProperty getIconFile();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import org.gradle.api.provider.Property;
import org.gradle.declarative.dsl.model.annotations.Restricted;

@Restricted
public interface MacOS {
@Restricted
RegularFileProperty getIconFile();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import org.gradle.api.provider.Property;
import org.gradle.declarative.dsl.model.annotations.Restricted;

@Restricted
public interface Module extends Named {
@Restricted
Property<String> getValue();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,15 @@
import org.gradle.api.Action;
import org.gradle.api.NamedDomainObjectContainer;
import org.gradle.api.file.DirectoryProperty;
import org.gradle.api.provider.ListProperty;
import org.gradle.api.provider.Property;
import org.gradle.api.tasks.Nested;
import org.gradle.declarative.dsl.model.annotations.Configuring;
import org.gradle.declarative.dsl.model.annotations.Restricted;

import java.time.Year;

@Restricted
public interface NativeDistributions {
NamedDomainObjectContainer<TargetFormat> getTargetFormats();
@Restricted
ListProperty<String> getTargetFormats();

@Restricted
Property<String> getPackageName();
Expand All @@ -27,7 +26,7 @@ public interface NativeDistributions {
Property<String> getVendor();

@Restricted
Property<Year> getCopyrightYear();
Property<String> getCopyrightYear();

@Restricted
DirectoryProperty getAppResourcesRootDir();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
package org.gradle.client.softwaretype.compose;

import org.gradle.api.file.ConfigurableFileCollection;
import org.gradle.api.file.RegularFile;
import org.gradle.api.provider.ListProperty;
import org.gradle.api.provider.Property;
import org.gradle.declarative.dsl.model.annotations.Restricted;

@Restricted
public interface Proguard {
@Restricted
Property<Boolean> getOptimize();

@Restricted
Property<Boolean> getObfuscate();

ConfigurableFileCollection getConfigurationFiles();
@Restricted
ListProperty<RegularFile> getConfigurationFiles();
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import org.gradle.api.provider.Property;
import org.gradle.declarative.dsl.model.annotations.Restricted;

@Restricted
public interface Windows {
@Restricted
RegularFileProperty getIconFile();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
package org.gradle.client.softwaretype.detekt;

import org.gradle.api.file.ConfigurableFileCollection;
import org.gradle.api.file.Directory;
import org.gradle.api.file.RegularFile;
import org.gradle.api.provider.ListProperty;
import org.gradle.api.provider.Property;
import org.gradle.declarative.dsl.model.annotations.Restricted;

@Restricted
public interface Detekt {
@Restricted
ConfigurableFileCollection getSource();
ListProperty<Directory> getSource();

@Restricted
ConfigurableFileCollection getConfig();
ListProperty<RegularFile> getConfig();

@Restricted
Property<Boolean> getParallel();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ public static void wireDetekt(Project project, Detekt dslModel) {

project.afterEvaluate(p -> {
DetektExtension detekt = project.getExtensions().findByType(DetektExtension.class);
assert detekt != null;
detekt.getSource().from(dslModel.getSource());
detekt.getConfig().from(dslModel.getConfig());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import org.gradle.api.provider.Property;
import org.gradle.declarative.dsl.model.annotations.Restricted;

@Restricted
public interface Database extends Named {
@Restricted
Property<String> getPackageName();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import org.gradle.api.NamedDomainObjectContainer;
import org.gradle.declarative.dsl.model.annotations.Restricted;

@Restricted
public interface SqlDelight {
NamedDomainObjectContainer<Database> getDatabases();
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@
import org.gradle.api.Project;
import org.gradle.client.softwaretype.CustomDesktopComposeApplication;

@SuppressWarnings("UnstableApiUsage")
public final class SqlDelightSupport {
private SqlDelightSupport() { /* not instantiable */ }

public static boolean needToWireSqlDelight(CustomDesktopComposeApplication dslModel) {
return !dslModel.getSqlDelight().getDatabases().isEmpty();
}

@SuppressWarnings("CodeBlock2Expr")
public static void wireSqlDelight(Project project, CustomDesktopComposeApplication dslModel) {
project.getPluginManager().apply("app.cash.sqldelight");

Expand Down
3 changes: 0 additions & 3 deletions declarative/settings.gradle.dcl
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,6 @@ dependencyResolutionManagement {
}
}

// Check out this project as a sibling to now-in-android, that contains the declarative prototype project to use this
// includeBuild("../../now-in-android/declarative-gradle/unified-prototype/unified-plugin")

rootProject.name = "declarative"

include("plugins")
Loading

0 comments on commit 349e641

Please sign in to comment.