diff --git a/build.gradle.kts b/build.gradle.kts index 5c8dabb4..c775dcd8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -47,6 +47,7 @@ dependencies { library(projects.bsonMultiplatform) library(projects.bsonTests) library(projects.dsl) + library(projects.driverApi) library(projects.driverSharedOfficial) library(projects.driverSharedKmongo) library(projects.driverSync) diff --git a/docs/website/build.gradle.kts b/docs/website/build.gradle.kts index 6c69946f..10906ebb 100644 --- a/docs/website/build.gradle.kts +++ b/docs/website/build.gradle.kts @@ -26,6 +26,7 @@ dependencies { dokka(projects.bsonOfficial) dokka(projects.bsonMultiplatform) dokka(projects.dsl) + dokka(projects.driverApi) dokka(projects.driverSharedOfficial) dokka(projects.driverSharedKmongo) dokka(projects.driverSync) diff --git a/driver-api/build.gradle.kts b/driver-api/build.gradle.kts new file mode 100644 index 00000000..a633b574 --- /dev/null +++ b/driver-api/build.gradle.kts @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2025-2026, OpenSavvy and contributors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +plugins { + alias(opensavvyConventions.plugins.base) + alias(opensavvyConventions.plugins.kotlin.library) + alias(libsCommon.plugins.kotlinx.serialization) + alias(libsCommon.plugins.testBalloon) +} + +kotlin { + jvm() + js { + nodejs() + } + // linuxX64() + // linuxArm64() + // macosX64() + // macosArm64() + // iosArm64() + // iosX64() + // iosSimulatorArm64() + // watchosX64() + // watchosArm32() + // watchosArm64() + // watchosSimulatorArm64() + // tvosX64() + // tvosArm64() + // tvosSimulatorArm64() + // mingwX64() + // wasmJs { + // nodejs() + // } + + sourceSets.commonMain.dependencies { + api(projects.dsl) + implementation(libs.kotlinx.coroutines) + } + + sourceSets.commonTest.dependencies { + implementation(libsCommon.opensavvy.prepared.testBalloon) + implementation(libsCommon.kotlin.test) + } +} + +library { + name.set("KtMongo: MongoDB driver for Kotlin • API") + description.set("Kotlin-first MongoDB driver: shared API between the various driver implementations") + homeUrl.set("https://ktmongo.opensavvy.dev") + + license.set { + name.set("Apache 2.0") + url.set("https://www.apache.org/licenses/LICENSE-2.0.txt") + } + + coverage.set(50) // TODO: Increase in the future +} diff --git a/settings.gradle.kts b/settings.gradle.kts index d94a10b4..ef48450b 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -85,6 +85,7 @@ include( "dsl", "dsl-template", + "driver-api", "driver-shared-official", "driver-shared-kmongo", "driver-sync",