You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.6 KiB
46 lines
1.6 KiB
7 months ago
|
/*
|
||
|
* Copyright 2016-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
|
||
|
*/
|
||
|
plugins {
|
||
|
id 'java-platform'
|
||
|
}
|
||
|
|
||
|
def name = project.name
|
||
|
|
||
|
dependencies {
|
||
|
constraints {
|
||
|
rootProject.subprojects.each {
|
||
|
if (rootProject.ext.unpublished.contains(it.name)) return
|
||
|
if (it.name == name) return
|
||
|
if (!it.plugins.hasPlugin('maven-publish')) return
|
||
|
evaluationDependsOn(it.path)
|
||
|
it.publishing.publications.all {
|
||
|
if (it.artifactId.endsWith("-kotlinMultiplatform")) return
|
||
|
if (it.artifactId.endsWith("-metadata")) return
|
||
|
// Skip platform artifacts (like *-linuxx64, *-macosx64)
|
||
|
// It leads to inconsistent bom when publishing from different platforms
|
||
|
// (e.g. on linux it will include only linuxx64 artifacts and no macosx64)
|
||
|
// It shouldn't be a problem as usually consumers need to use generic *-native artifact
|
||
|
// Gradle will choose correct variant by using metadata attributes
|
||
|
if (it.artifacts.any { it.extension == 'klib' }) return
|
||
|
api(group: it.groupId, name: it.artifactId, version: it.version)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
publishing {
|
||
|
publications {
|
||
|
mavenBom(MavenPublication) {
|
||
|
from components.javaPlatform
|
||
|
}
|
||
|
// Disable metadata publication
|
||
|
it.each { pub ->
|
||
|
pub.moduleDescriptorGenerator = null
|
||
|
tasks.matching { it.name == "generateMetadataFileFor${pub.name.capitalize()}Publication" }.all {
|
||
|
onlyIf { false }
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|