Exit Full View

Tickle / build.gradle

// 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"
    }
}