2016-08-16 22:29:10 +00:00
|
|
|
plugins {
|
2018-11-03 13:01:34 +00:00
|
|
|
id 'java'
|
|
|
|
id 'maven-publish'
|
|
|
|
id 'java-gradle-plugin'
|
|
|
|
id 'idea'
|
|
|
|
id 'eclipse'
|
2019-06-11 02:26:04 +00:00
|
|
|
id 'groovy'
|
2019-11-02 20:23:27 +00:00
|
|
|
id 'checkstyle'
|
2016-08-15 10:22:14 +00:00
|
|
|
}
|
|
|
|
|
2016-08-16 22:29:10 +00:00
|
|
|
sourceCompatibility = 1.8
|
|
|
|
targetCompatibility = 1.8
|
|
|
|
|
2018-10-22 18:25:18 +00:00
|
|
|
group = 'net.fabricmc'
|
2018-05-11 20:57:42 +00:00
|
|
|
archivesBaseName = project.name
|
2020-12-21 19:31:47 +00:00
|
|
|
def baseVersion = '0.6'
|
2018-11-03 18:03:43 +00:00
|
|
|
|
2020-07-26 20:32:10 +00:00
|
|
|
def build = 'local'
|
2018-11-03 18:03:43 +00:00
|
|
|
def ENV = System.getenv()
|
|
|
|
if (ENV.BUILD_NUMBER) {
|
2020-11-15 17:32:57 +00:00
|
|
|
build = "release #${ENV.BUILD_NUMBER}"
|
2020-07-26 20:32:10 +00:00
|
|
|
version = baseVersion + '.' + ENV.BUILD_NUMBER
|
2020-04-26 13:02:27 +00:00
|
|
|
} else {
|
2020-07-26 20:32:10 +00:00
|
|
|
version = baseVersion + '.local'
|
2018-11-03 18:03:43 +00:00
|
|
|
}
|
|
|
|
|
2016-08-15 10:22:14 +00:00
|
|
|
repositories {
|
2016-08-21 15:11:03 +00:00
|
|
|
maven {
|
2020-07-26 20:32:10 +00:00
|
|
|
name = 'Fabric'
|
2018-12-09 07:21:32 +00:00
|
|
|
url = 'https://maven.fabricmc.net/'
|
2016-08-21 15:11:03 +00:00
|
|
|
}
|
2020-04-11 18:28:48 +00:00
|
|
|
mavenCentral()
|
2016-08-15 10:22:14 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
2018-11-03 13:01:34 +00:00
|
|
|
implementation gradleApi()
|
2018-10-22 18:53:07 +00:00
|
|
|
|
2019-05-10 22:53:50 +00:00
|
|
|
// libraries
|
2018-11-04 00:27:55 +00:00
|
|
|
implementation ('commons-io:commons-io:2.6')
|
|
|
|
implementation ('org.zeroturnaround:zt-zip:1.13')
|
|
|
|
implementation ('com.google.code.gson:gson:2.8.5')
|
2019-06-20 13:25:40 +00:00
|
|
|
implementation ('com.google.guava:guava:28.0-jre')
|
2019-05-10 22:53:50 +00:00
|
|
|
|
|
|
|
// game handling utils
|
2020-04-26 13:02:27 +00:00
|
|
|
implementation ('net.fabricmc:stitch:0.4.6+build.74') {
|
2019-02-12 19:32:42 +00:00
|
|
|
exclude module: 'enigma'
|
|
|
|
}
|
2019-05-10 22:53:50 +00:00
|
|
|
|
|
|
|
// tinyfile management
|
2020-06-08 14:19:11 +00:00
|
|
|
implementation ('net.fabricmc:tiny-remapper:0.3.0.70')
|
|
|
|
implementation ('net.fabricmc:tiny-mappings-parser:0.2.2.14')
|
2018-12-18 22:36:22 +00:00
|
|
|
|
2020-11-15 16:15:02 +00:00
|
|
|
implementation 'net.fabricmc:access-widener:1.0.0'
|
|
|
|
|
2020-05-27 15:41:43 +00:00
|
|
|
implementation ('net.fabricmc:lorenz-tiny:2.0.0+build.2') {
|
0.2.7 refactors (#178)
* Rough work on project based jars, skeleton for AccessEscalators?
* First working draft
* Minor changes
* Add support for mutable, better error checking when parsing file.
Code cleanup
Remap if needed when reading
* Fix inner classes and genSources
* Fix CME
* Caching, only regen jar when input changes
* Some work, untested
* Fix writing, fix checkstyle issues
* More fixes
* Move jars into a maven file structure, cleans up the file structure, and will benefit idea 2020
Add some basic validation to the AccessWidenerRemapper, will present any issues with the mappings when building (May need a way to disable?)
+ Some bugs fixes
* Fix issues with source jars in idea 2020, should be backwards compatible with 2019
* Move to lorenz-tiny
* Build fix + small cleanup
* Remove accesswidener's for now
* Update dev launch injector, should fix all issues with spaces in the path.
2020-03-06 11:15:34 +00:00
|
|
|
transitive = false
|
|
|
|
}
|
2020-11-15 16:03:16 +00:00
|
|
|
implementation ('org.cadixdev:lorenz-io-proguard:0.5.5')
|
0.2.7 refactors (#178)
* Rough work on project based jars, skeleton for AccessEscalators?
* First working draft
* Minor changes
* Add support for mutable, better error checking when parsing file.
Code cleanup
Remap if needed when reading
* Fix inner classes and genSources
* Fix CME
* Caching, only regen jar when input changes
* Some work, untested
* Fix writing, fix checkstyle issues
* More fixes
* Move jars into a maven file structure, cleans up the file structure, and will benefit idea 2020
Add some basic validation to the AccessWidenerRemapper, will present any issues with the mappings when building (May need a way to disable?)
+ Some bugs fixes
* Fix issues with source jars in idea 2020, should be backwards compatible with 2019
* Move to lorenz-tiny
* Build fix + small cleanup
* Remove accesswidener's for now
* Update dev launch injector, should fix all issues with spaces in the path.
2020-03-06 11:15:34 +00:00
|
|
|
|
2019-05-10 22:53:50 +00:00
|
|
|
// decompilers
|
2020-04-11 18:28:48 +00:00
|
|
|
implementation ('net.fabricmc:procyon-fabric-compilertools:0.5.35.13')
|
2020-12-21 19:34:00 +00:00
|
|
|
implementation ('net.fabricmc:fabric-fernflower:1.3.0')
|
2020-07-26 20:22:17 +00:00
|
|
|
implementation ('org.benf:cfr:0.150')
|
2019-05-10 22:53:50 +00:00
|
|
|
|
|
|
|
// source code remapping
|
2020-11-15 16:03:16 +00:00
|
|
|
implementation ('org.cadixdev:mercury:0.1.0-rc1')
|
2018-12-18 22:36:22 +00:00
|
|
|
|
2020-05-22 13:38:25 +00:00
|
|
|
// Kapt integration
|
2020-07-26 20:32:10 +00:00
|
|
|
compileOnly('org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.72')
|
2020-05-22 13:38:25 +00:00
|
|
|
|
2019-06-11 02:26:04 +00:00
|
|
|
// Testing
|
|
|
|
testImplementation(gradleTestKit())
|
2020-07-26 20:32:10 +00:00
|
|
|
testImplementation('org.spockframework:spock-core:1.3-groovy-2.4') {
|
2020-06-08 14:19:11 +00:00
|
|
|
exclude module: 'groovy-all'
|
2019-11-02 20:23:27 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-08-15 10:22:14 +00:00
|
|
|
jar {
|
2018-11-03 18:03:43 +00:00
|
|
|
manifest {
|
2020-07-26 20:32:10 +00:00
|
|
|
attributes 'Implementation-Version': version + ' Build(' + build + ')'
|
2018-11-03 18:03:43 +00:00
|
|
|
}
|
2016-08-15 10:22:14 +00:00
|
|
|
}
|
|
|
|
|
2018-11-04 00:27:55 +00:00
|
|
|
task sourcesJar(type: Jar, dependsOn: classes) {
|
2019-07-24 20:34:27 +00:00
|
|
|
classifier = 'sources'
|
2018-11-04 00:27:55 +00:00
|
|
|
from sourceSets.main.allSource
|
|
|
|
}
|
|
|
|
|
|
|
|
task javadocJar(type: Jar, dependsOn: javadoc) {
|
2019-07-24 20:34:27 +00:00
|
|
|
classifier = 'javadoc'
|
2018-11-04 00:27:55 +00:00
|
|
|
from javadoc.destinationDir
|
|
|
|
}
|
|
|
|
|
2018-10-27 14:14:05 +00:00
|
|
|
apply from: 'https://github.com/FabricMC/fabric-docs/raw/master/gradle/license.gradle'
|
2016-08-16 22:29:10 +00:00
|
|
|
|
2019-04-19 19:56:58 +00:00
|
|
|
license {
|
|
|
|
exclude '**/loom/util/DownloadUtil.java'
|
|
|
|
}
|
|
|
|
|
2019-11-02 20:23:27 +00:00
|
|
|
checkstyle {
|
2020-07-26 20:32:10 +00:00
|
|
|
configFile = file('checkstyle.xml')
|
2019-11-02 20:23:27 +00:00
|
|
|
toolVersion = '8.25'
|
|
|
|
}
|
|
|
|
|
|
|
|
checkstyleMain {
|
|
|
|
logging.setLevel(LogLevel.LIFECYCLE)
|
|
|
|
}
|
|
|
|
|
2018-11-03 13:01:34 +00:00
|
|
|
gradlePlugin {
|
|
|
|
plugins {
|
2019-07-24 21:10:13 +00:00
|
|
|
fabricLoom {
|
2020-07-26 20:32:10 +00:00
|
|
|
id = 'fabric-loom'
|
|
|
|
implementationClass = 'net.fabricmc.loom.LoomGradlePlugin'
|
2018-11-03 13:01:34 +00:00
|
|
|
}
|
|
|
|
}
|
2018-05-14 10:50:02 +00:00
|
|
|
}
|
|
|
|
|
2020-05-14 01:07:34 +00:00
|
|
|
import org.w3c.dom.Document
|
|
|
|
import org.w3c.dom.Element
|
|
|
|
import org.w3c.dom.Node
|
|
|
|
|
2018-05-14 10:50:02 +00:00
|
|
|
publishing {
|
|
|
|
publications {
|
2018-11-04 00:27:55 +00:00
|
|
|
plugin(MavenPublication) { publication ->
|
2018-08-10 17:15:05 +00:00
|
|
|
groupId project.group
|
2018-05-14 10:50:02 +00:00
|
|
|
artifactId project.archivesBaseName
|
|
|
|
version project.version
|
|
|
|
|
2020-07-26 20:32:10 +00:00
|
|
|
from components['java']
|
2019-06-11 02:26:04 +00:00
|
|
|
|
2018-11-04 00:27:55 +00:00
|
|
|
artifact sourcesJar
|
|
|
|
artifact javadocJar
|
2018-05-14 10:50:02 +00:00
|
|
|
}
|
2020-05-13 19:03:26 +00:00
|
|
|
|
2020-07-26 20:32:10 +00:00
|
|
|
// Also publish a snapshot so people can use the latest version if they wish
|
2020-05-13 19:03:26 +00:00
|
|
|
snapshot(MavenPublication) { publication ->
|
|
|
|
groupId project.group
|
|
|
|
artifactId project.archivesBaseName
|
2020-07-26 20:32:10 +00:00
|
|
|
version baseVersion + '-SNAPSHOT'
|
2020-05-13 19:03:26 +00:00
|
|
|
|
2020-07-26 20:32:10 +00:00
|
|
|
from components['java']
|
2020-05-13 19:03:26 +00:00
|
|
|
|
|
|
|
artifact sourcesJar
|
|
|
|
artifact javadocJar
|
|
|
|
}
|
2020-05-14 01:07:34 +00:00
|
|
|
|
2020-07-26 20:32:10 +00:00
|
|
|
// Manually crate the plugin marker for snapshot versions
|
2020-05-14 01:07:34 +00:00
|
|
|
snapshotPlugin(MavenPublication) { publication ->
|
2020-07-26 20:32:10 +00:00
|
|
|
groupId 'fabric-loom'
|
|
|
|
artifactId 'fabric-loom.gradle.plugin'
|
|
|
|
version baseVersion + '-SNAPSHOT'
|
2020-05-14 01:07:34 +00:00
|
|
|
|
|
|
|
pom.withXml({
|
2020-07-26 20:32:10 +00:00
|
|
|
// Based off org.gradle.plugin.devel.plugins.MavenPluginPublishPlugin
|
2020-05-14 01:07:34 +00:00
|
|
|
Element root = asElement()
|
|
|
|
Document document = root.getOwnerDocument()
|
2020-07-26 20:32:10 +00:00
|
|
|
Node dependencies = root.appendChild(document.createElement('dependencies'))
|
|
|
|
Node dependency = dependencies.appendChild(document.createElement('dependency'))
|
|
|
|
Node groupId = dependency.appendChild(document.createElement('groupId'))
|
|
|
|
groupId.setTextContent('net.fabricmc')
|
|
|
|
Node artifactId = dependency.appendChild(document.createElement('artifactId'))
|
|
|
|
artifactId.setTextContent('fabric-loom')
|
|
|
|
Node version = dependency.appendChild(document.createElement('version'))
|
|
|
|
version.setTextContent(baseVersion + '-SNAPSHOT')
|
2020-05-14 01:07:34 +00:00
|
|
|
})
|
|
|
|
}
|
2018-05-14 10:50:02 +00:00
|
|
|
}
|
|
|
|
repositories {
|
|
|
|
maven {
|
2020-11-15 17:32:57 +00:00
|
|
|
if (ENV.MAVEN_URL) {
|
|
|
|
url ENV.MAVEN_URL
|
2018-05-14 10:50:02 +00:00
|
|
|
credentials {
|
2020-11-15 17:32:57 +00:00
|
|
|
username ENV.MAVEN_USERNAME
|
|
|
|
password ENV.MAVEN_PASSWORD
|
2018-05-14 10:50:02 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2020-06-08 14:19:11 +00:00
|
|
|
}
|