1*57b5a4a6SAndroid Build Coastguard Workerplugins { 2*57b5a4a6SAndroid Build Coastguard Worker id 'java-platform' 3*57b5a4a6SAndroid Build Coastguard Worker} 4*57b5a4a6SAndroid Build Coastguard Worker 5*57b5a4a6SAndroid Build Coastguard Workerdef name = project.name 6*57b5a4a6SAndroid Build Coastguard Worker 7*57b5a4a6SAndroid Build Coastguard Workerdependencies { 8*57b5a4a6SAndroid Build Coastguard Worker constraints { 9*57b5a4a6SAndroid Build Coastguard Worker rootProject.subprojects.each { 10*57b5a4a6SAndroid Build Coastguard Worker if (it.name == name) return 11*57b5a4a6SAndroid Build Coastguard Worker if (!it.plugins.hasPlugin('maven-publish')) return 12*57b5a4a6SAndroid Build Coastguard Worker evaluationDependsOn(it.path) 13*57b5a4a6SAndroid Build Coastguard Worker it.publishing.publications.all { 14*57b5a4a6SAndroid Build Coastguard Worker if (it.artifactId.endsWith("-kotlinMultiplatform")) return 15*57b5a4a6SAndroid Build Coastguard Worker if (it.artifactId.endsWith("-metadata")) return 16*57b5a4a6SAndroid Build Coastguard Worker // Skip platform artifacts (like *-linuxx64, *-macosx64) 17*57b5a4a6SAndroid Build Coastguard Worker // It leads to inconsistent bom when publishing from different platforms 18*57b5a4a6SAndroid Build Coastguard Worker // (e.g. on linux it will include only linuxx64 artifacts and no macosx64) 19*57b5a4a6SAndroid Build Coastguard Worker // It shouldn't be a problem as usually consumers need to use generic *-native artifact 20*57b5a4a6SAndroid Build Coastguard Worker // Gradle will choose correct variant by using metadata attributes 21*57b5a4a6SAndroid Build Coastguard Worker if (it.artifacts.any { it.extension == 'klib' }) return 22*57b5a4a6SAndroid Build Coastguard Worker api("${it.groupId}:${it.artifactId}:${it.version}") 23*57b5a4a6SAndroid Build Coastguard Worker } 24*57b5a4a6SAndroid Build Coastguard Worker } 25*57b5a4a6SAndroid Build Coastguard Worker } 26*57b5a4a6SAndroid Build Coastguard Worker} 27*57b5a4a6SAndroid Build Coastguard Worker 28*57b5a4a6SAndroid Build Coastguard Workerpublishing { 29*57b5a4a6SAndroid Build Coastguard Worker publications { 30*57b5a4a6SAndroid Build Coastguard Worker mavenBom(MavenPublication) { 31*57b5a4a6SAndroid Build Coastguard Worker from components.javaPlatform 32*57b5a4a6SAndroid Build Coastguard Worker } 33*57b5a4a6SAndroid Build Coastguard Worker // Disable metadata publication, no need to 34*57b5a4a6SAndroid Build Coastguard Worker it.each { pub -> 35*57b5a4a6SAndroid Build Coastguard Worker pub.moduleDescriptorGenerator = null 36*57b5a4a6SAndroid Build Coastguard Worker tasks.matching { it.name == "generateMetadataFileFor${pub.name.capitalize()}Publication" }.all { 37*57b5a4a6SAndroid Build Coastguard Worker onlyIf { false } 38*57b5a4a6SAndroid Build Coastguard Worker } 39*57b5a4a6SAndroid Build Coastguard Worker } 40*57b5a4a6SAndroid Build Coastguard Worker } 41*57b5a4a6SAndroid Build Coastguard Worker} 42