diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a9b2d7b..b190252 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -70,7 +70,7 @@ jobs: path: | ~/.android/avd/* ~/.android/adb* - key: avd-34 + key: avd-35 - name: Create AVD and Generate Snapshot for Caching if: steps.avd-cache.outputs.cache-hit != 'true' @@ -154,10 +154,10 @@ jobs: run: ./gradlew :sqllin-dsl:mingwX64MainKlibrary - name: Run sqllin-dsl MinGW X64 Tests - run: ./gradlew :sqllin-dsl:cleanMingwX64Test && ./gradlew :sqllin-dsl:mingwX64Test --stacktrace + run: ./gradlew :sqllin-dsl-test:cleanMingwX64Test && ./gradlew :sqllin-dsl-test:mingwX64Test --stacktrace - name: Run sqllin-dsl JVM Unit Tests on MinGW X64 - run: ./gradlew :sqllin-dsl:cleanJvmTest && ./gradlew :sqllin-dsl:jvmTest --stacktrace + run: ./gradlew :sqllin-dsl-test:cleanJvmTest && ./gradlew :sqllin-dsl-test:jvmTest --stacktrace - name: Upload sqllin-driver Reports uses: actions/upload-artifact@v4 diff --git a/.gitignore b/.gitignore index e182c15..857e32e 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ local.properties /sqllin-driver/build /sqllin-dsl/build /sqllin-processor/build +/sqllin-dsl-test/build /sample/build *.podspec .kotlin \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 99fc365..dade522 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,16 @@ - Date format: YYYY-MM-dd +## v1.4.3 / 2025-06-02 + +### All + +* Update `Kotlin`'s version to `2.1.21` + +### sqllin-processor + +* Update `KSP`'s version to `2.1.21-2.0.1` + ## v1.4.2 / 2025-04-23 ### All diff --git a/gradle.properties b/gradle.properties index 2c737c6..42555fb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ -VERSION=1.4.2 +VERSION=1.4.3 GROUP=com.ctrip.kotlin -#Maven Publish Information +#Maven Publishing Information githubURL=https://github.com/ctripcorp/SQLlin licenseName=The Apache License, Version 2.0 licenseURL=https://www.apache.org/licenses/LICENSE-2.0.txt diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 144e61e..e48f925 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,8 +1,8 @@ [versions] -kotlin = "2.1.20" -agp = "8.9.2" -ksp = "2.1.20-1.0.32" +kotlin = "2.1.21" +agp = "8.9.3" +ksp = "2.1.21-2.0.1" serialization = "1.8.1" coroutines = "1.10.2" androidx-annotation = "1.9.1" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 23e529c..6c046e8 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Tue Mar 08 15:11:46 CST 2022 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index be2fdda..d7ae4a7 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -2,6 +2,7 @@ rootProject.name = "SQLlin" include(":sqllin-driver") include(":sqllin-dsl") include(":sqllin-processor") +include(":sqllin-dsl-test") include(":sample") pluginManagement { diff --git a/sqllin-dsl-test/README.md b/sqllin-dsl-test/README.md new file mode 100644 index 0000000..7acaf5c --- /dev/null +++ b/sqllin-dsl-test/README.md @@ -0,0 +1,5 @@ +# Test Module for _sqllin-dsl_ + +中文版请见[这里](README_CN.md) + +>**Note: This is not an unit test tool for _sqllin-dsl_, it's the main implementations of unit tests for _sqllin-dsl_. Due to KSP doesn't support generating code for `commonTest` at the moment, I put all code of _sqllin-dsl_'s unit tests in this module.** \ No newline at end of file diff --git a/sqllin-dsl-test/README_CN.md b/sqllin-dsl-test/README_CN.md new file mode 100644 index 0000000..e2b8106 --- /dev/null +++ b/sqllin-dsl-test/README_CN.md @@ -0,0 +1,3 @@ +# _sqllin-dsl_ 的测试模块 + +>**注意:这不是 _sqllin-dsl_ 的单元测试工具,而是 _sqllin-dsl_ 单元测试的主要实现。由于 KSP 当前不支持为 `commonTest` 生成代码,因此我将 _sqllin-dsl_ 的单元测试的所有代码都放在了本模块中。** \ No newline at end of file diff --git a/sqllin-dsl-test/build.gradle.kts b/sqllin-dsl-test/build.gradle.kts new file mode 100644 index 0000000..d5f468f --- /dev/null +++ b/sqllin-dsl-test/build.gradle.kts @@ -0,0 +1,121 @@ +import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSetTree +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget +import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask +import org.jetbrains.kotlin.konan.target.HostManager +import kotlin.collections.plusAssign + +plugins { + alias(libs.plugins.kotlin.multiplatform) + alias(libs.plugins.kotlinx.serialization) + alias(libs.plugins.android.library) + alias(libs.plugins.ksp) +} + +version = "1.0" + +@OptIn(ExperimentalKotlinGradlePluginApi::class) +kotlin { + jvmToolchain(21) + androidTarget { + publishLibraryVariants("release") + instrumentedTestVariant.sourceSetTree.set(KotlinSourceSetTree.test) + } + + jvm { + compilerOptions.jvmTarget.set(JvmTarget.JVM_11) + } + + listOf( + iosX64(), + iosArm64(), + iosSimulatorArm64(), + + macosX64(), + macosArm64(), + + watchosArm32(), + watchosArm64(), + watchosX64(), + watchosSimulatorArm64(), + watchosDeviceArm64(), + + tvosArm64(), + tvosX64(), + tvosSimulatorArm64(), + + linuxX64(), + linuxArm64(), + + mingwX64(), + ).forEach { + it.setupNativeConfig() + } + + compilerOptions { + freeCompilerArgs.add("-Xexpect-actual-classes") + } + + sourceSets { + all { + languageSettings.optIn("kotlin.RequiresOptIn") + } + commonMain { + kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") + dependencies { + implementation(project(":sqllin-dsl")) + implementation(libs.kotlinx.serialization) + implementation(libs.kotlinx.coroutines) + } + } + commonTest.dependencies { + implementation(kotlin("test")) + } + androidInstrumentedTest { + dependencies { + implementation(libs.androidx.test.core) + implementation(libs.androidx.test.runner) + implementation(libs.androidx.test.rules) + } + } + } +} + +android { + namespace = "com.ctrip.sqllin.dsl.test" + compileSdk = 35 + defaultConfig { + minSdk = 23 + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + compileOptions { + isCoreLibraryDesugaringEnabled = true + } +} + +fun KotlinNativeTarget.setupNativeConfig() { + binaries { + all { + linkerOpts += when { + HostManager.hostIsLinux -> listOf("-lsqlite3", "-L$rootDir/libs/linux", "-L/usr/lib/x86_64-linux-gnu", "-L/usr/lib", "-L/usr/lib64") + HostManager.hostIsMingw -> listOf("-Lc:\\msys64\\mingw64\\lib", "-L$rootDir\\libs\\windows", "-lsqlite3") + else -> listOf("-lsqlite3") + } + } + } +} + +dependencies { + coreLibraryDesugaring(libs.desugar.jdk.libs) + add("kspCommonMainMetadata", project(":sqllin-processor")) +} + +afterEvaluate { // WORKAROUND: both register() and named() fail – https://github.com/gradle/gradle/issues/9331 + tasks { + withType> { + if (name != "kspCommonMainKotlinMetadata") + dependsOn("kspCommonMainKotlinMetadata") + } + } +} \ No newline at end of file diff --git a/sqllin-dsl/src/androidInstrumentedTest/kotlin/com/ctrip/sqllin/dsl/AndroidTest.kt b/sqllin-dsl-test/src/androidInstrumentedTest/kotlin/com/ctrip/sqllin/dsl/test/AndroidTest.kt similarity index 75% rename from sqllin-dsl/src/androidInstrumentedTest/kotlin/com/ctrip/sqllin/dsl/AndroidTest.kt rename to sqllin-dsl-test/src/androidInstrumentedTest/kotlin/com/ctrip/sqllin/dsl/test/AndroidTest.kt index f1c99cf..f2003a6 100644 --- a/sqllin-dsl/src/androidInstrumentedTest/kotlin/com/ctrip/sqllin/dsl/AndroidTest.kt +++ b/sqllin-dsl-test/src/androidInstrumentedTest/kotlin/com/ctrip/sqllin/dsl/test/AndroidTest.kt @@ -1,20 +1,4 @@ -/* - * Copyright (C) 2022 Ctrip.com. - * - * 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. - */ - -package com.ctrip.sqllin.dsl +package com.ctrip.sqllin.dsl.test import android.content.Context import androidx.test.core.app.ApplicationProvider diff --git a/sqllin-dsl-test/src/androidMain/AndroidManifest.xml b/sqllin-dsl-test/src/androidMain/AndroidManifest.xml new file mode 100644 index 0000000..53dee27 --- /dev/null +++ b/sqllin-dsl-test/src/androidMain/AndroidManifest.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/sqllin-dsl/src/appleTest/kotlin/com/ctrip/sqllin/dsl/PlatformApple.kt b/sqllin-dsl-test/src/appleTest/kotlin/com/ctrip/sqllin/dsl/test/PlatformApple.kt similarity index 97% rename from sqllin-dsl/src/appleTest/kotlin/com/ctrip/sqllin/dsl/PlatformApple.kt rename to sqllin-dsl-test/src/appleTest/kotlin/com/ctrip/sqllin/dsl/test/PlatformApple.kt index e11b152..aa056a6 100644 --- a/sqllin-dsl/src/appleTest/kotlin/com/ctrip/sqllin/dsl/PlatformApple.kt +++ b/sqllin-dsl-test/src/appleTest/kotlin/com/ctrip/sqllin/dsl/test/PlatformApple.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.ctrip.sqllin.dsl +package com.ctrip.sqllin.dsl.test import kotlinx.cinterop.UnsafeNumber import platform.Foundation.NSDocumentDirectory diff --git a/sqllin-dsl/src/commonTestCode/kotlin/com/ctrip/sqllin/dsl/Entities.kt b/sqllin-dsl-test/src/commonMain/kotlin/com/ctrip/sqllin/dsl/test/Entities.kt similarity index 97% rename from sqllin-dsl/src/commonTestCode/kotlin/com/ctrip/sqllin/dsl/Entities.kt rename to sqllin-dsl-test/src/commonMain/kotlin/com/ctrip/sqllin/dsl/test/Entities.kt index 445e731..98ff08d 100644 --- a/sqllin-dsl/src/commonTestCode/kotlin/com/ctrip/sqllin/dsl/Entities.kt +++ b/sqllin-dsl-test/src/commonMain/kotlin/com/ctrip/sqllin/dsl/test/Entities.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.ctrip.sqllin.dsl +package com.ctrip.sqllin.dsl.test import com.ctrip.sqllin.dsl.annotation.DBRow import kotlinx.serialization.Serializable diff --git a/sqllin-dsl/src/commonTestCode/kotlin/com/ctrip/sqllin/dsl/TestPrimitiveTypeForKSP.kt b/sqllin-dsl-test/src/commonMain/kotlin/com/ctrip/sqllin/dsl/test/TestPrimitiveTypeForKSP.kt similarity index 97% rename from sqllin-dsl/src/commonTestCode/kotlin/com/ctrip/sqllin/dsl/TestPrimitiveTypeForKSP.kt rename to sqllin-dsl-test/src/commonMain/kotlin/com/ctrip/sqllin/dsl/test/TestPrimitiveTypeForKSP.kt index d6b8516..9544853 100644 --- a/sqllin-dsl/src/commonTestCode/kotlin/com/ctrip/sqllin/dsl/TestPrimitiveTypeForKSP.kt +++ b/sqllin-dsl-test/src/commonMain/kotlin/com/ctrip/sqllin/dsl/test/TestPrimitiveTypeForKSP.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.ctrip.sqllin.dsl +package com.ctrip.sqllin.dsl.test import com.ctrip.sqllin.dsl.annotation.DBRow import kotlinx.serialization.Serializable diff --git a/sqllin-dsl/src/commonTestCode/kotlin/com/ctrip/sqllin/dsl/CommonBasicTest.kt b/sqllin-dsl-test/src/commonTest/kotlin/com/ctrip/sqllin/dsl/test/CommonBasicTest.kt similarity index 99% rename from sqllin-dsl/src/commonTestCode/kotlin/com/ctrip/sqllin/dsl/CommonBasicTest.kt rename to sqllin-dsl-test/src/commonTest/kotlin/com/ctrip/sqllin/dsl/test/CommonBasicTest.kt index 3816949..89972fd 100644 --- a/sqllin-dsl/src/commonTestCode/kotlin/com/ctrip/sqllin/dsl/CommonBasicTest.kt +++ b/sqllin-dsl-test/src/commonTest/kotlin/com/ctrip/sqllin/dsl/test/CommonBasicTest.kt @@ -14,10 +14,11 @@ * limitations under the License. */ -package com.ctrip.sqllin.dsl +package com.ctrip.sqllin.dsl.test import com.ctrip.sqllin.driver.DatabaseConfiguration import com.ctrip.sqllin.driver.DatabasePath +import com.ctrip.sqllin.dsl.Database import com.ctrip.sqllin.dsl.sql.X import com.ctrip.sqllin.dsl.sql.clause.* import com.ctrip.sqllin.dsl.sql.clause.OrderByWay.ASC diff --git a/sqllin-dsl/src/jvmTest/kotlin/com/ctrip/sqllin/dsl/JvmTest.kt b/sqllin-dsl-test/src/jvmTest/kotlin/com/ctrip/sqllin/dsl/test/JvmTest.kt similarity index 69% rename from sqllin-dsl/src/jvmTest/kotlin/com/ctrip/sqllin/dsl/JvmTest.kt rename to sqllin-dsl-test/src/jvmTest/kotlin/com/ctrip/sqllin/dsl/test/JvmTest.kt index b2096d0..b8ae245 100644 --- a/sqllin-dsl/src/jvmTest/kotlin/com/ctrip/sqllin/dsl/JvmTest.kt +++ b/sqllin-dsl-test/src/jvmTest/kotlin/com/ctrip/sqllin/dsl/test/JvmTest.kt @@ -1,20 +1,4 @@ -/* - * Copyright (C) 2023 Ctrip.com. - * - * 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. - */ - -package com.ctrip.sqllin.dsl +package com.ctrip.sqllin.dsl.test import com.ctrip.sqllin.driver.deleteDatabase import com.ctrip.sqllin.driver.toDatabasePath diff --git a/sqllin-dsl/src/linuxTest/kotlin/com/ctrip/sqllin/dsl/PlatformLinux.kt b/sqllin-dsl-test/src/linuxTest/kotlin/com/ctrip/sqllin/dsl/test/PlatformLinux.kt similarity index 96% rename from sqllin-dsl/src/linuxTest/kotlin/com/ctrip/sqllin/dsl/PlatformLinux.kt rename to sqllin-dsl-test/src/linuxTest/kotlin/com/ctrip/sqllin/dsl/test/PlatformLinux.kt index 80bd9ec..91348a3 100644 --- a/sqllin-dsl/src/linuxTest/kotlin/com/ctrip/sqllin/dsl/PlatformLinux.kt +++ b/sqllin-dsl-test/src/linuxTest/kotlin/com/ctrip/sqllin/dsl/test/PlatformLinux.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.ctrip.sqllin.dsl +package com.ctrip.sqllin.dsl.test import kotlinx.cinterop.ExperimentalForeignApi import kotlinx.cinterop.toKString diff --git a/sqllin-dsl/src/mingwTest/kotlin/com/ctrip/sqllin/dsl/PlatformMingw.kt b/sqllin-dsl-test/src/mingwTest/kotlin/com/ctrip/sqllin/dsl/test/PlatformMingw.kt similarity index 96% rename from sqllin-dsl/src/mingwTest/kotlin/com/ctrip/sqllin/dsl/PlatformMingw.kt rename to sqllin-dsl-test/src/mingwTest/kotlin/com/ctrip/sqllin/dsl/test/PlatformMingw.kt index e87a3de..062c256 100644 --- a/sqllin-dsl/src/mingwTest/kotlin/com/ctrip/sqllin/dsl/PlatformMingw.kt +++ b/sqllin-dsl-test/src/mingwTest/kotlin/com/ctrip/sqllin/dsl/test/PlatformMingw.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.ctrip.sqllin.dsl +package com.ctrip.sqllin.dsl.test import kotlinx.cinterop.* import platform.posix._wgetcwd diff --git a/sqllin-dsl/src/nativeTestCode/kotlin/com/ctrip/sqllin/dsl/NativeTest.kt b/sqllin-dsl-test/src/nativeTest/kotlin/com/ctrip/sqllin/dsl/test/NativeTest.kt similarity index 98% rename from sqllin-dsl/src/nativeTestCode/kotlin/com/ctrip/sqllin/dsl/NativeTest.kt rename to sqllin-dsl-test/src/nativeTest/kotlin/com/ctrip/sqllin/dsl/test/NativeTest.kt index a2943dd..9b51de1 100644 --- a/sqllin-dsl/src/nativeTestCode/kotlin/com/ctrip/sqllin/dsl/NativeTest.kt +++ b/sqllin-dsl-test/src/nativeTest/kotlin/com/ctrip/sqllin/dsl/test/NativeTest.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.ctrip.sqllin.dsl +package com.ctrip.sqllin.dsl.test import com.ctrip.sqllin.driver.deleteDatabase import com.ctrip.sqllin.driver.toDatabasePath diff --git a/sqllin-dsl/src/nativeTest/kotlin/com/ctrip/sqllin/dsl/Platform.kt b/sqllin-dsl-test/src/nativeTest/kotlin/com/ctrip/sqllin/dsl/test/Platform.kt similarity index 96% rename from sqllin-dsl/src/nativeTest/kotlin/com/ctrip/sqllin/dsl/Platform.kt rename to sqllin-dsl-test/src/nativeTest/kotlin/com/ctrip/sqllin/dsl/test/Platform.kt index b9a0505..f704349 100644 --- a/sqllin-dsl/src/nativeTest/kotlin/com/ctrip/sqllin/dsl/Platform.kt +++ b/sqllin-dsl-test/src/nativeTest/kotlin/com/ctrip/sqllin/dsl/test/Platform.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.ctrip.sqllin.dsl +package com.ctrip.sqllin.dsl.test /** * Some platform-related functions diff --git a/sqllin-dsl/build.gradle.kts b/sqllin-dsl/build.gradle.kts index 51021b6..9af470f 100644 --- a/sqllin-dsl/build.gradle.kts +++ b/sqllin-dsl/build.gradle.kts @@ -1,8 +1,4 @@ -import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet -import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSetTree -import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget import org.jetbrains.kotlin.konan.target.HostManager plugins { @@ -20,44 +16,38 @@ val VERSION: String by project group = GROUP version = VERSION -@OptIn(ExperimentalKotlinGradlePluginApi::class) kotlin { explicitApi() jvmToolchain(21) androidTarget { publishLibraryVariants("release") - instrumentedTestVariant.sourceSetTree.set(KotlinSourceSetTree.test) } jvm { compilerOptions.jvmTarget.set(JvmTarget.JVM_11) } - listOf( - iosX64(), - iosArm64(), - iosSimulatorArm64(), + iosX64() + iosArm64() + iosSimulatorArm64() - macosX64(), - macosArm64(), + macosX64() + macosArm64() - watchosArm32(), - watchosArm64(), - watchosX64(), - watchosSimulatorArm64(), - watchosDeviceArm64(), + watchosArm32() + watchosArm64() + watchosX64() + watchosSimulatorArm64() + watchosDeviceArm64() - tvosArm64(), - tvosX64(), - tvosSimulatorArm64(), + tvosArm64() + tvosX64() + tvosSimulatorArm64() - linuxX64(), - linuxArm64(), + linuxX64() + linuxArm64() - mingwX64(), - ).forEach { - it.setupNativeConfig() - } + mingwX64() compilerOptions { freeCompilerArgs.add("-Xexpect-actual-classes") @@ -74,81 +64,9 @@ kotlin { implementation(libs.kotlinx.serialization) implementation(libs.kotlinx.coroutines) } - commonTest.dependencies { - implementation(kotlin("test")) - } - androidInstrumentedTest { - setCommonTestDir() - dependencies { - implementation(libs.androidx.test.core) - implementation(libs.androidx.test.runner) - implementation(libs.androidx.test.rules) - } - } - jvmTest { - setCommonTestDir() - } - - iosX64Test { - setNativeTestDir() - } - iosArm64Test { - setNativeTestDir() - } - iosSimulatorArm64Test { - setNativeTestDir() - } - - - macosX64Test { - setNativeTestDir() - } - macosArm64Test { - setNativeTestDir() - } - - watchosX64Test { - setNativeTestDir() - } - watchosArm32Test { - setNativeTestDir() - } - watchosArm64Test { - setNativeTestDir() - } - watchosDeviceArm64Test { - setNativeTestDir() - } - watchosSimulatorArm64Test { - setNativeTestDir() - } - - tvosX64Test { - setNativeTestDir() - } - tvosArm64Test { - setNativeTestDir() - } - tvosSimulatorArm64Test { - setNativeTestDir() - } - - linuxX64Test { - setNativeTestDir() - } - linuxArm64Test { - setNativeTestDir() - } - - mingwX64Test { - setNativeTestDir() - } } } -fun KotlinSourceSet.setCommonTestDir(vararg path: String) = kotlin.srcDirs("src/commonTestCode/kotlin", path) -fun KotlinSourceSet.setNativeTestDir() = setCommonTestDir("src/nativeTestCode/kotlin") - gradle.taskGraph.whenReady { if (!project.hasProperty("onCICD")) return@whenReady @@ -169,57 +87,14 @@ android { compileSdk = 35 defaultConfig { minSdk = 23 - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } compileOptions { isCoreLibraryDesugaringEnabled = true } } -fun KotlinNativeTarget.setupNativeConfig() { - binaries { - all { - linkerOpts += when { - HostManager.hostIsLinux -> listOf("-lsqlite3", "-L$rootDir/libs/linux", "-L/usr/lib/x86_64-linux-gnu", "-L/usr/lib", "-L/usr/lib64") - HostManager.hostIsMingw -> listOf("-Lc:\\msys64\\mingw64\\lib", "-L$rootDir\\libs\\windows", "-lsqlite3") - else -> listOf("-lsqlite3") - } - } - } -} - dependencies { coreLibraryDesugaring(libs.desugar.jdk.libs) - val sourceSets = listOf( - "kspAndroidAndroidTest", - - "kspJvmTest", - - "kspIosX64Test", - "kspIosArm64Test", - "kspIosSimulatorArm64Test", - - "kspMacosX64Test", - "kspMacosArm64Test", - - "kspWatchosX64Test", - "kspWatchosArm32Test", - "kspWatchosArm64Test", - "kspWatchosDeviceArm64Test", - "kspWatchosSimulatorArm64Test", - - "kspTvosX64Test", - "kspTvosArm64Test", - "kspTvosSimulatorArm64Test", - - "kspLinuxX64Test", - "kspLinuxArm64Test", - - "kspMingwX64Test", - ) - sourceSets.forEach { - add(it, project(":sqllin-processor")) - } } val javadocJar: TaskProvider by tasks.registering(Jar::class) { diff --git a/sqllin-dsl/doc/getting-start-cn.md b/sqllin-dsl/doc/getting-start-cn.md index 42c2222..e51d742 100644 --- a/sqllin-dsl/doc/getting-start-cn.md +++ b/sqllin-dsl/doc/getting-start-cn.md @@ -14,7 +14,7 @@ plugins { id("com.google.devtools.ksp") } -val sqllinVersion = "1.4.2" +val sqllinVersion = "1.4.3" kotlin { // ...... diff --git a/sqllin-dsl/doc/getting-start.md b/sqllin-dsl/doc/getting-start.md index f312104..e9385b8 100644 --- a/sqllin-dsl/doc/getting-start.md +++ b/sqllin-dsl/doc/getting-start.md @@ -16,7 +16,7 @@ plugins { id("com.google.devtools.ksp") } -val sqllinVersion = "1.4.2" +val sqllinVersion = "1.4.3" kotlin { // ...... diff --git a/sqllin-dsl/src/androidMain/kotlin/com/ctrip/sqllin/dsl/sql/X.kt b/sqllin-dsl/src/androidMain/kotlin/com/ctrip/sqllin/dsl/sql/X.kt deleted file mode 100644 index efa2224..0000000 --- a/sqllin-dsl/src/androidMain/kotlin/com/ctrip/sqllin/dsl/sql/X.kt +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2023 Ctrip.com. - * - * 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. - */ - -package com.ctrip.sqllin.dsl.sql - -/** - * Express "*" in SQL, and also as placeholder - * @author yaqiao - */ - -public actual object X \ No newline at end of file diff --git a/sqllin-dsl/src/commonMain/kotlin/com/ctrip/sqllin/dsl/sql/X.kt b/sqllin-dsl/src/commonMain/kotlin/com/ctrip/sqllin/dsl/sql/X.kt index 16cb837..a44432a 100644 --- a/sqllin-dsl/src/commonMain/kotlin/com/ctrip/sqllin/dsl/sql/X.kt +++ b/sqllin-dsl/src/commonMain/kotlin/com/ctrip/sqllin/dsl/sql/X.kt @@ -24,4 +24,4 @@ import com.ctrip.sqllin.dsl.annotation.KeyWordDslMaker */ @KeyWordDslMaker -public expect object X \ No newline at end of file +public object X \ No newline at end of file diff --git a/sqllin-dsl/src/jvmMain/kotlin/com/ctrip/sqllin/dsl/sql/X.kt b/sqllin-dsl/src/jvmMain/kotlin/com/ctrip/sqllin/dsl/sql/X.kt deleted file mode 100644 index efa2224..0000000 --- a/sqllin-dsl/src/jvmMain/kotlin/com/ctrip/sqllin/dsl/sql/X.kt +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2023 Ctrip.com. - * - * 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. - */ - -package com.ctrip.sqllin.dsl.sql - -/** - * Express "*" in SQL, and also as placeholder - * @author yaqiao - */ - -public actual object X \ No newline at end of file diff --git a/sqllin-dsl/src/nativeMain/kotlin/com/ctrip/sqllin/dsl/sql/X.kt b/sqllin-dsl/src/nativeMain/kotlin/com/ctrip/sqllin/dsl/sql/X.kt deleted file mode 100644 index efa2224..0000000 --- a/sqllin-dsl/src/nativeMain/kotlin/com/ctrip/sqllin/dsl/sql/X.kt +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2023 Ctrip.com. - * - * 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. - */ - -package com.ctrip.sqllin.dsl.sql - -/** - * Express "*" in SQL, and also as placeholder - * @author yaqiao - */ - -public actual object X \ No newline at end of file diff --git a/sqllin-processor/src/main/kotlin/com/ctrip/sqllin/processor/ClauseProcessor.kt b/sqllin-processor/src/main/kotlin/com/ctrip/sqllin/processor/ClauseProcessor.kt index a5bceb6..e2811d1 100644 --- a/sqllin-processor/src/main/kotlin/com/ctrip/sqllin/processor/ClauseProcessor.kt +++ b/sqllin-processor/src/main/kotlin/com/ctrip/sqllin/processor/ClauseProcessor.kt @@ -58,7 +58,7 @@ class ClauseProcessor( val objectName = "${className}Table" val tableName = classDeclaration.annotations.find { it.annotationType.resolve().declaration.qualifiedName?.asString() == ANNOTATION_DATABASE_ROW_NAME - }?.arguments?.first()?.value?.takeIf { (it as? String)?.isNotBlank() == true } ?: className + }?.arguments?.firstOrNull()?.value?.takeIf { (it as? String)?.isNotBlank() == true } ?: className val outputStream = environment.codeGenerator.createNewFile( dependencies = classDeclaration.containingFile?.let { Dependencies(true, it) } ?: Dependencies(true), diff --git a/test_android.sh b/test_android.sh index 98c6f7b..a4f845b 100755 --- a/test_android.sh +++ b/test_android.sh @@ -1,5 +1,5 @@ #Run Android instrumented tests ./gradlew :sqllin-driver:connectedDebugAndroidTest --stacktrace -./gradlew :sqllin-dsl:connectedDebugAndroidTest --stacktrace +./gradlew :sqllin-dsl-test:connectedDebugAndroidTest --stacktrace #adb uninstall com.ctrip.sqllin.driver.test #adb uninstall com.ctrip.sqllin.dsl.test \ No newline at end of file diff --git a/test_dsl_jvm.sh b/test_dsl_jvm.sh index 7875ec2..248f32b 100755 --- a/test_dsl_jvm.sh +++ b/test_dsl_jvm.sh @@ -1,3 +1,3 @@ #Run sqllin-driver unit tests on JVM -./gradlew :sqllin-dsl:cleanJvmTest -./gradlew :sqllin-dsl:jvmTest --stacktrace \ No newline at end of file +./gradlew :sqllin-dsl-test:cleanJvmTest +./gradlew :sqllin-dsl-test:jvmTest --stacktrace \ No newline at end of file diff --git a/test_dsl_linux.sh b/test_dsl_linux.sh index aaa0dfa..504e0fc 100755 --- a/test_dsl_linux.sh +++ b/test_dsl_linux.sh @@ -1,3 +1,3 @@ #Run sqllin-dsl unit tests on Linux -./gradlew :sqllin-dsl:cleanLinuxX64Test -./gradlew :sqllin-dsl:linuxX64Test --stacktrace \ No newline at end of file +./gradlew :sqllin-dsl-test:cleanLinuxX64Test +./gradlew :sqllin-dsl-test:linuxX64Test --stacktrace \ No newline at end of file diff --git a/test_dsl_macos.sh b/test_dsl_macos.sh index 09d549f..9089b05 100755 --- a/test_dsl_macos.sh +++ b/test_dsl_macos.sh @@ -1,3 +1,3 @@ #Run sqllin-dsl unit tests on macOS -./gradlew :sqllin-dsl:cleanMacosX64Test -./gradlew :sqllin-dsl:macosX64Test --stacktrace \ No newline at end of file +./gradlew :sqllin-dsl-test:cleanMacosX64Test +./gradlew :sqllin-dsl-test:macosX64Test --stacktrace \ No newline at end of file