// tickle (top-level)
buildscript {
ext.kotlin_version = '1.7.20'
ext.lwjglVersion = "3.1.3"
ext.jomlVersion = "1.9.9"
ext.javaFXVersion = "13"
}
plugins {
id 'org.jetbrains.kotlin.jvm' version "$kotlin_version"
id 'org.openjfx.javafxplugin' version '0.0.9'
}
javafx {
version = "$javaFXVersion"
modules = ['javafx.controls','javafx.media', 'javafx.swing']
}
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
jvmTarget = "1.8"
}
}
repositories {
mavenCentral()
}
subprojects {
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
jvmTarget = "1.8"
}
}
repositories {
mavenCentral()
// mavenLocal() // The local maven repository, for testing only.
// My other projects hosted on gitlab.com
maven {
url "https://gitlab.com/api/v4/projects/14123955/packages/maven"
name "fxessentials"
}
maven {
url "https://gitlab.com/api/v4/projects/15723319/packages/maven"
name "scarea"
}
maven {
url "https://gitlab.com/api/v4/projects/16531834/packages/maven"
name "feather"
}
maven {
url "https://gitlab.com/api/v4/projects/9096904/packages/maven"
name "paratask"
}
maven {
url "https://gitlab.com/api/v4/projects/11515658/packages/maven"
name "harbourfx"
}
}
// Update GameInfo.tickleVersion and upload.feather with the same version number!
version = '0.5'
apply plugin: 'maven-publish'
apply plugin: 'kotlin'
// For uploading compiled packages to gitlab.com
publishing {
publications {
library(MavenPublication) {
from components.java
}
}
repositories {
maven {
// 9097019 is the GitLab project ID of project nickthecoder/tickle.
url "https://gitlab.com/api/v4/projects/9097019/packages/maven"
credentials(HttpHeaderCredentials) {
name = "Private-Token"
value = gitLabPrivateToken // the variable resides in ~/.gradle/gradle.properties
}
authentication {
header(HttpHeaderAuthentication)
}
}
}
}
group = 'uk.co.nickthecoder'
}
project(':tickle-feather') {
apply plugin: 'kotlin'
apply plugin: 'maven'
dependencies {
compile project(':tickle-core')
compile 'uk.co.nickthecoder:feather-core:0.4'
compile "uk.co.nickthecoder:feather-runtime:0.4"
}
}
project(':metadata') {
apply plugin: 'kotlin'
apply plugin: 'application'
defaultTasks 'run'
mainClassName = "uk.co.nickthecoder.tickle.metadata.MetaData"
dependencies {
compile project(':tickle-core')
compile project(':tickle-editor')
compile 'com.google.guava:guava:26.0-jre'
}
}
apply plugin: 'idea'
apply plugin: 'kotlin'
apply plugin: 'application'
defaultTasks ':metadata:run', 'installDist'
mainClassName = "uk.co.nickthecoder.tickle.launcher.Tickle"
applicationDefaultJvmArgs = ['-Xms200m'] // Initial heap size of 200 MB
dependencies {
compile project(':tickle-core')
compile project(':tickle-editor')
compile project(':tickle-feather')
// A Bodge. Without this, the results of distZip will only contain the jars for a single platform.
// I want it to contain ALL platform-specific files.
// I don't have a windows or mac computer, and even if I did, I don't want to have to run the build
// on three different machines, and publish them separately.
compile "org.openjfx:javafx-base:${javaFXVersion}:win"
compile "org.openjfx:javafx-base:${javaFXVersion}:linux"
compile "org.openjfx:javafx-base:${javaFXVersion}:mac"
compile "org.openjfx:javafx-graphics:${javaFXVersion}:win"
compile "org.openjfx:javafx-graphics:${javaFXVersion}:linux"
compile "org.openjfx:javafx-graphics:${javaFXVersion}:mac"
compile "org.openjfx:javafx-controls:${javaFXVersion}:win"
compile "org.openjfx:javafx-controls:${javaFXVersion}:linux"
compile "org.openjfx:javafx-controls:${javaFXVersion}:mac"
compile "org.openjfx:javafx-media:${javaFXVersion}:win"
compile "org.openjfx:javafx-media:${javaFXVersion}:linux"
compile "org.openjfx:javafx-media:${javaFXVersion}:mac"
compile "org.openjfx:javafx-web:${javaFXVersion}:win"
compile "org.openjfx:javafx-web:${javaFXVersion}:linux"
compile "org.openjfx:javafx-web:${javaFXVersion}:mac"
compile "org.openjfx:javafx-swing:${javaFXVersion}:win"
compile "org.openjfx:javafx-swing:${javaFXVersion}:linux"
compile "org.openjfx:javafx-swing:${javaFXVersion}:mac"
}
repositories {
mavenCentral()
// mavenLocal() // The local maven repository, for testing only.
// My other projects hosted on gitlab.com
maven {
url "https://gitlab.com/api/v4/projects/14123955/packages/maven"
name "fxessentials"
}
maven {
url "https://gitlab.com/api/v4/projects/15723319/packages/maven"
name "scarea"
}
maven {
url "https://gitlab.com/api/v4/projects/16531834/packages/maven"
name "feather"
}
maven {
url "https://gitlab.com/api/v4/projects/9096904/packages/maven"
name "paratask"
}
maven {
url "https://gitlab.com/api/v4/projects/11515658/packages/maven"
name "harbourfx"
}
}