mirror of
https://github.com/FabricMC/fabric.git
synced 2024-11-14 19:25:23 -05:00
add fabric-api-bom and fabric-api-catalog (#3487)
* feat: add fabric-api-bom and fabric-api-catalog
* spotlessApply
* Apply suggestions from code review
Co-authored-by: Juuz <6596629+Juuxel@users.noreply.github.com>
---------
Co-authored-by: modmuss <modmuss50@gmail.com>
Co-authored-by: Juuz <6596629+Juuxel@users.noreply.github.com>
(cherry picked from commit 679aae3c9a
)
This commit is contained in:
parent
21518609e3
commit
22fe817d10
5 changed files with 105 additions and 9 deletions
21
build.gradle
21
build.gradle
|
@ -16,6 +16,11 @@ def ENV = System.getenv()
|
||||||
version = project.version + "+" + (ENV.GITHUB_RUN_NUMBER ? "" : "local-") + getBranch()
|
version = project.version + "+" + (ENV.GITHUB_RUN_NUMBER ? "" : "local-") + getBranch()
|
||||||
logger.lifecycle("Building Fabric: " + version)
|
logger.lifecycle("Building Fabric: " + version)
|
||||||
|
|
||||||
|
def metaProjects = [
|
||||||
|
'deprecated',
|
||||||
|
'fabric-api-bom',
|
||||||
|
'fabric-api-catalog'
|
||||||
|
]
|
||||||
|
|
||||||
import net.fabricmc.loom.util.gradle.SourceSetHelper
|
import net.fabricmc.loom.util.gradle.SourceSetHelper
|
||||||
import groovy.json.JsonSlurper
|
import groovy.json.JsonSlurper
|
||||||
|
@ -132,7 +137,7 @@ allprojects {
|
||||||
setupRepositories(repositories)
|
setupRepositories(repositories)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (it.name == "deprecated") {
|
if (metaProjects.contains(it.name)) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -200,7 +205,7 @@ allprojects {
|
||||||
}
|
}
|
||||||
|
|
||||||
allprojects.each { p ->
|
allprojects.each { p ->
|
||||||
if (project.name == "deprecated") {
|
if (metaProjects.contains(project.name)) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -332,7 +337,7 @@ remapTestmodJar {
|
||||||
def testModJarTasks = []
|
def testModJarTasks = []
|
||||||
|
|
||||||
subprojects {
|
subprojects {
|
||||||
if (it.name == "deprecated" || !(it.file("src/testmod").exists() || it.file("src/testmodClient").exists())) {
|
if (metaProjects.contains(it.name) || !(it.file("src/testmod").exists() || it.file("src/testmodClient").exists())) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -374,7 +379,7 @@ javadoc {
|
||||||
}
|
}
|
||||||
|
|
||||||
allprojects.each {
|
allprojects.each {
|
||||||
if (it.name == "deprecated") {
|
if (metaProjects.contains(it.name)) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -592,7 +597,7 @@ def addPomMetadataInformation(Project project, MavenPom pom) {
|
||||||
}
|
}
|
||||||
|
|
||||||
subprojects {
|
subprojects {
|
||||||
if (it.name == "deprecated") {
|
if (metaProjects.contains(it.name)) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -705,7 +710,7 @@ void setupRepositories(RepositoryHandler repositories) {
|
||||||
}
|
}
|
||||||
|
|
||||||
subprojects.each {
|
subprojects.each {
|
||||||
if (it.name == "deprecated") {
|
if (metaProjects.contains(it.name)) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -718,7 +723,7 @@ def devOnlyModules = ["fabric-gametest-api-v1",]
|
||||||
dependencies {
|
dependencies {
|
||||||
afterEvaluate {
|
afterEvaluate {
|
||||||
subprojects.each {
|
subprojects.each {
|
||||||
if (it.name == "deprecated") {
|
if (metaProjects.contains(it.name)) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -734,7 +739,7 @@ dependencies {
|
||||||
remapJar {
|
remapJar {
|
||||||
afterEvaluate {
|
afterEvaluate {
|
||||||
subprojects.each {
|
subprojects.each {
|
||||||
if (it.name in devOnlyModules || it.name == "deprecated") {
|
if (it.name in devOnlyModules || metaProjects.contains(it.name)) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
31
fabric-api-bom/build.gradle
Normal file
31
fabric-api-bom/build.gradle
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
plugins {
|
||||||
|
id 'java-platform'
|
||||||
|
}
|
||||||
|
|
||||||
|
version = rootProject.version
|
||||||
|
|
||||||
|
publishing.publications {
|
||||||
|
register('mavenJava', MavenPublication) {
|
||||||
|
from(components['javaPlatform'])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.withType(GenerateModuleMetadata) {
|
||||||
|
// todo: RemoteSignJar fails when this is false (as set by parent build script)
|
||||||
|
enabled = true
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
constraints {
|
||||||
|
for (proj in rootProject.allprojects) {
|
||||||
|
if (proj == project) { // the bom itself
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if (proj.name == 'fabric-api-catalog') {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
api(project(proj.path))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
57
fabric-api-catalog/build.gradle
Normal file
57
fabric-api-catalog/build.gradle
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
plugins {
|
||||||
|
id 'version-catalog'
|
||||||
|
}
|
||||||
|
|
||||||
|
version = rootProject.version
|
||||||
|
|
||||||
|
publishing.publications {
|
||||||
|
register('mavenJava', MavenPublication) {
|
||||||
|
from components.versionCatalog
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.withType(GenerateModuleMetadata) {
|
||||||
|
// todo: RemoteSignJar fails when this is false (as set by parent build script)
|
||||||
|
enabled = true
|
||||||
|
}
|
||||||
|
|
||||||
|
// Avoid configuration ordering issues by creating the catalog entries during task execution time
|
||||||
|
tasks.register('configureCatalog') {
|
||||||
|
doFirst {
|
||||||
|
doConfigureCatalog()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tasks.named('generateCatalogAsToml') {
|
||||||
|
dependsOn('configureCatalog')
|
||||||
|
}
|
||||||
|
|
||||||
|
def doConfigureCatalog() {
|
||||||
|
for (proj in rootProject.allprojects) {
|
||||||
|
if (proj == project) { // the catalog itself
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
String catalogName = proj.name
|
||||||
|
if (catalogName == 'fabric-api-base') {
|
||||||
|
catalogName = 'base'
|
||||||
|
} else if (catalogName == 'fabric-api-bom') {
|
||||||
|
catalogName = 'bom'
|
||||||
|
} else if (catalogName == 'deprecated') {
|
||||||
|
catalogName = 'deprecated-fabric-api'
|
||||||
|
} else if (catalogName == 'fabric-api') {
|
||||||
|
catalogName = 'fabric-api'
|
||||||
|
} else {
|
||||||
|
catalogName = catalogName.substring('fabric-'.length())
|
||||||
|
}
|
||||||
|
|
||||||
|
if (proj.parent != null && proj.parent.name == 'deprecated') {
|
||||||
|
catalogName = 'deprecated-' + catalogName
|
||||||
|
}
|
||||||
|
|
||||||
|
catalog {
|
||||||
|
versionCatalog {
|
||||||
|
library(catalogName, "net.fabricmc.fabric-api:${proj.name}:${proj.version}")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,7 +8,7 @@ import groovy.json.JsonSlurper
|
||||||
*/
|
*/
|
||||||
|
|
||||||
subprojects {
|
subprojects {
|
||||||
if (it.name == "deprecated") {
|
if (it.name == "deprecated" || it.name == "fabric-api-bom" || it.name == "fabric-api-catalog") {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,9 @@ pluginManagement {
|
||||||
|
|
||||||
rootProject.name = "fabric-api"
|
rootProject.name = "fabric-api"
|
||||||
|
|
||||||
|
include 'fabric-api-bom'
|
||||||
|
include 'fabric-api-catalog'
|
||||||
|
|
||||||
include 'fabric-api-base'
|
include 'fabric-api-base'
|
||||||
|
|
||||||
include 'fabric-api-lookup-api-v1'
|
include 'fabric-api-lookup-api-v1'
|
||||||
|
|
Loading…
Reference in a new issue