Added basic native support
This commit is contained in:
parent
1fbf08cbfc
commit
9fdb8ea25b
@ -3,12 +3,11 @@ import java.util.*
|
|||||||
plugins {
|
plugins {
|
||||||
`kotlin-dsl`
|
`kotlin-dsl`
|
||||||
`maven-publish`
|
`maven-publish`
|
||||||
// id("com.gradle.plugin-publish") version "0.10.1"
|
|
||||||
id("com.jfrog.bintray") version "1.8.4"
|
id("com.jfrog.bintray") version "1.8.4"
|
||||||
}
|
}
|
||||||
|
|
||||||
group = "scientifik"
|
group = "scientifik"
|
||||||
version = "0.1.3"
|
version = "0.1.4"
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
gradlePluginPortal()
|
gradlePluginPortal()
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
* Build constants
|
* Build constants
|
||||||
*/
|
*/
|
||||||
object Scientifik {
|
object Scientifik {
|
||||||
val ioVersion = "0.1.10"
|
const val ioVersion = "0.1.11"
|
||||||
val coroutinesVersion = "1.2.2"
|
const val coroutinesVersion = "1.2.2"
|
||||||
val atomicfuVersion = "0.12.9"
|
const val atomicfuVersion = "0.12.9"
|
||||||
val serializationVersion = "0.11.1"
|
const val serializationVersion = "0.11.1"
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,16 @@
|
|||||||
package scientifik
|
package scientifik
|
||||||
|
|
||||||
|
import org.gradle.api.Project
|
||||||
|
import org.gradle.kotlin.dsl.create
|
||||||
|
import org.gradle.kotlin.dsl.findByType
|
||||||
|
|
||||||
open class ScientifikExtension {
|
open class ScientifikExtension {
|
||||||
var githubProject: String? = null
|
var githubProject: String? = null
|
||||||
var vcs: String? = null
|
var vcs: String? = null
|
||||||
var bintrayRepo: String? = null
|
var bintrayRepo: String? = null
|
||||||
var kdoc: Boolean = true
|
var kdoc: Boolean = true
|
||||||
|
var enableNative = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal val Project.scientifik: ScientifikExtension
|
||||||
|
get() = extensions.findByType() ?: extensions.create("scientifik")
|
@ -2,16 +2,15 @@ package scientifik
|
|||||||
|
|
||||||
import org.gradle.api.Plugin
|
import org.gradle.api.Plugin
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.gradle.kotlin.dsl.configure
|
import org.gradle.kotlin.dsl.*
|
||||||
import org.gradle.kotlin.dsl.getValue
|
|
||||||
import org.gradle.kotlin.dsl.getting
|
|
||||||
import org.gradle.kotlin.dsl.invoke
|
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
|
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
|
||||||
|
|
||||||
open class ScientifikMPPlugin : Plugin<Project> {
|
open class ScientifikMPPlugin : Plugin<Project> {
|
||||||
override fun apply(project: Project) {
|
override fun apply(project: Project) {
|
||||||
project.plugins.apply("org.jetbrains.kotlin.multiplatform")
|
project.plugins.apply("org.jetbrains.kotlin.multiplatform")
|
||||||
|
|
||||||
|
val extension = project.scientifik
|
||||||
|
|
||||||
project.configure<KotlinMultiplatformExtension> {
|
project.configure<KotlinMultiplatformExtension> {
|
||||||
jvm {
|
jvm {
|
||||||
compilations.all {
|
compilations.all {
|
||||||
@ -31,6 +30,11 @@ open class ScientifikMPPlugin : Plugin<Project> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(extension.enableNative){
|
||||||
|
linuxX64()
|
||||||
|
mingwX64()
|
||||||
|
}
|
||||||
|
|
||||||
sourceSets.invoke {
|
sourceSets.invoke {
|
||||||
val commonMain by getting {
|
val commonMain by getting {
|
||||||
dependencies {
|
dependencies {
|
||||||
@ -64,12 +68,25 @@ open class ScientifikMPPlugin : Plugin<Project> {
|
|||||||
implementation(kotlin("test-js"))
|
implementation(kotlin("test-js"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(extension.enableNative){
|
||||||
|
val native by creating {
|
||||||
|
dependsOn(commonMain)
|
||||||
|
}
|
||||||
|
mingwX64().compilations["main"].defaultSourceSet {
|
||||||
|
dependsOn(native)
|
||||||
|
}
|
||||||
|
linuxX64().compilations["main"].defaultSourceSet {
|
||||||
|
dependsOn(native)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
targets.all {
|
targets.all {
|
||||||
sourceSets.all {
|
sourceSets.all {
|
||||||
languageSettings.apply{
|
languageSettings.apply{
|
||||||
progressiveMode = true
|
progressiveMode = true
|
||||||
|
this.
|
||||||
enableLanguageFeature("InlineClasses")
|
enableLanguageFeature("InlineClasses")
|
||||||
useExperimentalAnnotation("ExperimentalUnsignedType")
|
useExperimentalAnnotation("ExperimentalUnsignedType")
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ open class ScientifikPublishPlugin : Plugin<Project> {
|
|||||||
override fun apply(project: Project) {
|
override fun apply(project: Project) {
|
||||||
|
|
||||||
project.plugins.apply("maven-publish")
|
project.plugins.apply("maven-publish")
|
||||||
val extension = project.extensions.create<ScientifikExtension>("scientifik")
|
val extension = project.scientifik
|
||||||
|
|
||||||
if (extension.kdoc) {
|
if (extension.kdoc) {
|
||||||
project.plugins.apply("org.jetbrains.dokka")
|
project.plugins.apply("org.jetbrains.dokka")
|
||||||
|
Loading…
Reference in New Issue
Block a user