xref: /aosp_15_r20/external/kotlinx.serialization/bom/build.gradle (revision 57b5a4a64c534cf7f27ac9427ceab07f3d8ed3d8)
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