Skip to content
Draft

2.0.0 #509

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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion FloconAndroid/.vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"java.configuration.updateBuildConfiguration": "interactive"
"java.configuration.updateBuildConfiguration": "automatic"
}
28 changes: 28 additions & 0 deletions FloconAndroid/build-logic/convention/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
plugins {
`kotlin-dsl`
}

group = "io.github.openflocon.buildlogic"

dependencies {
implementation(libs.android.gradlePlugin)
implementation(libs.kotlin.gradlePlugin)
implementation(libs.vanniktech.mavenPublish.gradlePlugin)
}

gradlePlugin {
plugins {
register("floconAndroidLibrary") {
id = "flocon.android.library"
implementationClass = "io.github.openflocon.buildlogic.FloconAndroidLibraryConventionPlugin"
}
register("floconKotlinMultiplatform") {
id = "flocon.kotlin.multiplatform"
implementationClass = "io.github.openflocon.buildlogic.FloconKotlinMultiplatformConventionPlugin"
}
register("floconPublish") {
id = "flocon.publish"
implementationClass = "io.github.openflocon.buildlogic.FloconPublishConventionPlugin"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package io.github.openflocon.buildlogic

import com.android.build.gradle.LibraryExtension
import org.gradle.api.JavaVersion
import org.gradle.api.Project
import org.gradle.kotlin.dsl.configure

internal fun Project.configureAndroidLibrary() {
extensions.configure<LibraryExtension> {
compileSdk = 36

defaultConfig {
minSdk = 23
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}

compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package io.github.openflocon.buildlogic

import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.withType
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

class FloconAndroidLibraryConventionPlugin : Plugin<Project> {
override fun apply(target: Project) {
with(target) {
with(pluginManager) {
apply("com.android.library")
apply("org.jetbrains.kotlin.android")
}

configureAndroidLibrary()

tasks.withType<KotlinCompile>().configureEach {
compilerOptions {
jvmTarget.set(JvmTarget.JVM_11)
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package io.github.openflocon.buildlogic

import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.configure
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension

class FloconKotlinMultiplatformConventionPlugin : Plugin<Project> {
override fun apply(target: Project) {
with(target) {
with(pluginManager) {
apply("org.jetbrains.kotlin.multiplatform")
apply("com.android.library")
}

configureAndroidLibrary()

extensions.configure<KotlinMultiplatformExtension> {
androidTarget {
compilerOptions {
jvmTarget.set(JvmTarget.JVM_11)
}
}

jvm()

iosX64()
iosArm64()
iosSimulatorArm64()

compilerOptions {
freeCompilerArgs.add("-XXLanguage:+ExpectRefinement")
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package io.github.openflocon.buildlogic

import com.vanniktech.maven.publish.MavenPublishBaseExtension
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.configure

class FloconPublishConventionPlugin : Plugin<Project> {
override fun apply(target: Project) {
with(target) {
with(pluginManager) {
apply("com.vanniktech.maven.publish")
}

extensions.configure<MavenPublishBaseExtension> {
publishToMavenCentral(automaticRelease = true)

if (project.hasProperty("signing.required") && project.property("signing.required") == "false") {
// Skip signing
} else {
signAllPublications()
}

pom {
name.set(project.name)
description.set(project.findProperty("floconDescription") as? String)
inceptionYear.set("2025")
url.set("https://github.com/openflocon/Flocon")
licenses {
license {
name.set("The Apache License, Version 2.0")
url.set("https://www.apache.org/licenses/LICENSE-2.0.txt")
distribution.set("https://www.apache.org/licenses/LICENSE-2.0.txt")
}
}
developers {
developer {
id.set("openflocon")
name.set("Open Flocon")
url.set("https://github.com/openflocon")
}
}
scm {
url.set("https://github.com/openflocon/Flocon")
connection.set("scm:git:git://github.com/openflocon/Flocon.git")
developerConnection.set("scm:git:ssh://git@github.com/openflocon/Flocon.git")
}
}
}
}
}
}
2 changes: 2 additions & 0 deletions FloconAndroid/build-logic/gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
kotlin.daemon.jvmargs=-Xmx1024m
15 changes: 15 additions & 0 deletions FloconAndroid/build-logic/settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
}
versionCatalogs {
create("libs") {
from(files("../gradle/libs.versions.toml"))
}
}
}

rootProject.name = "build-logic"

include(":convention")
2 changes: 1 addition & 1 deletion FloconAndroid/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ plugins {
alias(libs.plugins.android.library) apply false
alias(libs.plugins.ksp) apply false
alias(libs.plugins.vanniktech.maven.publish) apply false
id("com.google.protobuf") version "0.9.5" apply false
alias(libs.plugins.protobuf) apply false
}
49 changes: 49 additions & 0 deletions FloconAndroid/database/core-no-op/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
plugins {
id("flocon.kotlin.multiplatform")
id("flocon.publish")
}

kotlin {
sourceSets {
val commonMain by getting {
dependencies {
implementation(projects.flocon)
implementation(libs.kotlinx.coroutines.core)
}
}

val androidMain by getting {
dependencies {
}
}

val jvmMain by getting {
dependencies {
}
}

val iosX64Main by getting
val iosArm64Main by getting
val iosSimulatorArm64Main by getting
val iosMain by creating {
dependsOn(commonMain)
iosX64Main.dependsOn(this)
iosArm64Main.dependsOn(this)
iosSimulatorArm64Main.dependsOn(this)
}
}
}

android {
namespace = "io.github.openflocon.flocon.database.core.noop"
}


mavenPublishing {
coordinates(
groupId = project.property("floconGroupId") as String,
artifactId = "flocon-database-core-no-op",
version = System.getenv("PROJECT_VERSION_NAME") ?: project.property("floconVersion") as String
)
}

56 changes: 56 additions & 0 deletions FloconAndroid/database/core/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
plugins {
id("flocon.kotlin.multiplatform")
id("flocon.publish")
alias(libs.plugins.kotlin.serialization)
}

kotlin {
sourceSets {
val commonMain by getting {
dependencies {
api(projects.flocon)

implementation(libs.kotlinx.coroutines.core)
implementation(libs.kotlinx.serialization.json)
}
}

val androidMain by getting {
dependencies {
}
}

val jvmMain by getting {
dependencies {
implementation(libs.sqlite.jdbc)
}
}

val iosX64Main by getting
val iosArm64Main by getting
val iosSimulatorArm64Main by getting
val iosMain by creating {
dependsOn(commonMain)
iosX64Main.dependsOn(this)
iosArm64Main.dependsOn(this)
iosSimulatorArm64Main.dependsOn(this)
dependencies {
implementation(libs.androidx.sqlite.bundled)
}
}
}
}

android {
namespace = "io.github.openflocon.flocon.database.core"
}


mavenPublishing {
coordinates(
groupId = project.property("floconGroupId") as String,
artifactId = "flocon-database-core",
version = System.getenv("PROJECT_VERSION_NAME") ?: project.property("floconVersion") as String
)
}

Loading
Loading