From f2772fb2a472ac8c24c362e18177ce5702d0b76b Mon Sep 17 00:00:00 2001 From: crschnick Date: Fri, 10 Feb 2023 13:46:54 +0000 Subject: [PATCH] Build fixes --- build.gradle | 2 ++ dist/build.gradle | 5 ----- dist/jpackage.gradle | 12 ++++++------ gradle/gradle_scripts/extension.gradle | 27 +++++++++++++++++++++++++- 4 files changed, 34 insertions(+), 12 deletions(-) diff --git a/build.gradle b/build.gradle index e4724d15..88161f37 100644 --- a/build.gradle +++ b/build.gradle @@ -28,4 +28,6 @@ project.ext { isFullRelease = System.getenv('RELEASE') != null && Boolean.parseBoolean(System.getenv('RELEASE')) versionString = file('version').text + (isFullRelease ? '' : '-SNAPSHOT') canonicalVersionString = file('version').text + buildId = UUID.nameUUIDFromBytes(version.toString().getBytes()) + obfuscate = true } diff --git a/dist/build.gradle b/dist/build.gradle index abbd9731..938f61ab 100644 --- a/dist/build.gradle +++ b/dist/build.gradle @@ -25,11 +25,6 @@ repositories { version = rootProject.versionString -project.ext { - buildId = UUID.nameUUIDFromBytes(version.toString().getBytes()) - obfuscate = true -} - task dist(type: DefaultTask) {} clean { diff --git a/dist/jpackage.gradle b/dist/jpackage.gradle index 76bf3985..0382655b 100644 --- a/dist/jpackage.gradle +++ b/dist/jpackage.gradle @@ -6,7 +6,7 @@ def distJvmArgs = new ArrayList(project(':app').application.applicationD def releaseArguments = distJvmArgs + [ '-Dio.xpipe.app.writeLogs=true', - "-Dio.xpipe.app.buildId=$project.buildId", + "-Dio.xpipe.app.buildId=$rootProject.buildId", '-Dio.xpipe.app.sentryUrl=https://fd5f67ff10764b7e8a704bec9558c8fe@o1084459.ingest.sentry.io/6094279' ] @@ -94,13 +94,13 @@ jlink { tasks.named('jlink').get().dependsOn(rootProject.getTasksByName("jar", true)) def outputName = org.gradle.internal.os.OperatingSystem.current().isMacOsX() ? 'xpiped.app/Contents/Resources' : 'xpiped' -def extModuleNames = Arrays.asList(file("$rootDir/ext").list()).stream() +def extModules = Arrays.asList(file("$rootDir/ext").list()).stream() .map(l -> project(":$l")).toList() -task copyBundledExtensions(type: DefaultTask) { +task copyBundledExtensions(type: DefaultTask, + dependsOn: extModules.stream().map { it.getTasksByName('createExtOutput', true)[0] }.toList()) { doLast { - for (def extProject : extModuleNames) { - def shouldObfuscate = project.ext.obfuscate && file("$rootDir/private_extensions.txt").exists() && file("$rootDir/private_extensions.txt").readLines().contains(extProject.getName()) - def dir = shouldObfuscate ? "${extProject.buildDir}/libs_obf" : "${extProject.buildDir}/libs" + for (def extProject : extModules) { + def dir = "${extProject.buildDir}/libs_ext" if (file(dir).exists()) { copy { from(dir) diff --git a/gradle/gradle_scripts/extension.gradle b/gradle/gradle_scripts/extension.gradle index 046644ae..62b6ac3a 100644 --- a/gradle/gradle_scripts/extension.gradle +++ b/gradle/gradle_scripts/extension.gradle @@ -1,12 +1,37 @@ task copyRuntimeLibs(type: Copy) { into project.jar.destinationDirectory from configurations.runtimeClasspath - exclude "${project.name}.jar", "${project.name.substring(0, project.name.length() - 1)}.jar" + exclude "${project.name}.jar" duplicatesStrategy(DuplicatesStrategy.EXCLUDE) } copyRuntimeLibs.dependsOn(addDependenciesModuleInfo) jar.dependsOn(copyRuntimeLibs) +task createExtOutput(type: Copy) { + def base = project.name.substring(0, project.name.length() - 1) + def isX = project.name.endsWith("x") && findProject(":$base") != null + + doFirst { + if (!file("${project.jar.destinationDirectory.get()}_prod").exists()) { + copy { + from "${project.jar.destinationDirectory.get()}" + into "${project.jar.destinationDirectory.get()}_prod" + } + } + } + + def shouldObfuscate = rootProject.obfuscate && rootProject.privateExtensions.contains(project.name) + var source = shouldObfuscate ? "${project.jar.destinationDirectory.get()}_prod" : "${project.jar.destinationDirectory.get()}" + + if (isX) { + from source + into "${project(':' + base).jar.destinationDirectory.get()}_ext" + } else { + from source + into "${project.jar.destinationDirectory.get()}_ext" + } +} + apply from: "$rootDir/gradle/gradle_scripts/java.gradle" apply from: "$rootDir/gradle/gradle_scripts/javafx.gradle" apply from: "$rootDir/gradle/gradle_scripts/lombok.gradle"