X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=build.gradle;h=0ae4e5c32bc9dfae61cd42e05d87026d316aaa9f;hb=eb9f07f8197ef5135da5aa8df0dc537dc28f7154;hp=28081cd93aab8feb9038641ac22a5c13745189bb;hpb=d7785ddd65c330b780a9f6c73e228655b1ecc019;p=jalview.git diff --git a/build.gradle b/build.gradle index 28081cd..0ae4e5c 100644 --- a/build.gradle +++ b/build.gradle @@ -1,10 +1,15 @@ import org.apache.tools.ant.filters.ReplaceTokens +//import org.apache.tools.ant.filters.ReplaceRegexp import org.gradle.internal.os.OperatingSystem +import org.gradle.plugins.ide.eclipse.model.* + + +import groovy.transform.ExternalizeMethods buildscript { dependencies { - classpath 'org.openclover:clover:4.3.1' - classpath 'org.apache.commons:commons-compress:1.18' + classpath 'org.openclover:clover:4.3.1' + classpath 'org.apache.commons:commons-compress:1.18' } } @@ -46,27 +51,24 @@ def compile_source_compatibility def compile_target_compatibility ext { - // where the getdown channel will be built. - // TODO: consider allowing this expression to be overrriden by -P arg - getdownWebsiteDir = jalviewDir + '/' + getdown_website_dir + '/' + JAVA_VERSION + '/' + // where the getdown channel will be built. + // TODO: consider allowing this expression to be overridden by -P arg + getdownWebsiteDir = jalviewDir + '/' + getdown_website_dir + '/' + JAVA_VERSION getdownAppDir = getdownWebsiteDir + '/' + getdown_app_dir getdownJ11libDir = getdownWebsiteDir + '/' + getdown_j11lib_dir getdownResourceDir = getdownWebsiteDir + '/' + getdown_resource_dir getdownLauncher = jalviewDir + '/' + getdown_launcher getdownFilesDir = jalviewDir + '/' + getdown_files_dir + '/' + JAVA_VERSION + '/' - getdownLib1 = jalviewDir + '/' + getdown_lib1 - def getdownChannel = getdown_channel_name - if (getdown_channel_name.equals("COMMIT")) { - getdownChannel = getGitHash() - } - getdown_app_base = getdown_channel_base+"/"+getdownChannel+"/"+JAVA_VERSION+"/" + getdown_app_base = getdown_channel_base+"/"+getdown_channel_name+"/"+JAVA_VERSION+"/" modules_compileClasspath = fileTree(dir: "$jalviewDir/$j11modDir", include: ["*.jar"]) modules_runtimeClasspath = modules_compileClasspath + gitHash = "" + gitBranch = "" } def JAVA_INTEGER_VERSION def additional_compiler_args = [] -// these are getdown.txt properties defined dependent on the JAVA_VERSION +// these are getdown.txt properties defined dependent on the JAVA_VERSION def getdown_alt_java_min_version // this property is assigned below and expanded to multiple lines in the getdown task def getdown_alt_multi_java_location @@ -116,10 +118,10 @@ sourceSets { } clover { java { - srcDirs = [ cloverInstrDir ] - outputDir = file("${buildDir}/${cloverClassesDir}") + srcDirs = [ cloverInstrDir ] + outputDir = file("${buildDir}/${cloverClassesDir}") } - + resources { srcDirs = sourceSets.main.resources.srcDirs } @@ -131,7 +133,7 @@ sourceSets { runtimeClasspath = compileClasspath } - + test { java { srcDirs "$jalviewDir/$testSourceDir" @@ -142,15 +144,15 @@ sourceSets { srcDirs = sourceSets.main.resources.srcDirs } - compileClasspath = files( sourceSets.test.java.outputDir ) + compileClasspath = files( sourceSets.test.java.outputDir ) if (use_clover) { compileClasspath += sourceSets.clover.compileClasspath } else { compileClasspath += files(sourceSets.main.java.outputDir) } - compileClasspath += sourceSets.main.compileClasspath - compileClasspath += files( sourceSets.main.resources.srcDirs) + //compileClasspath += sourceSets.main.compileClasspath + //compileClasspath += files( sourceSets.main.resources.srcDirs) compileClasspath += fileTree(dir: "$jalviewDir/$utilsDir", include: ["**/*.jar"]) compileClasspath += fileTree(dir: "$jalviewDir/$libDir", include: ["*.jar"]) @@ -167,8 +169,8 @@ dependencies { } configurations { - cloverRuntime - cloverRuntime.extendsFrom cloverCompile + cloverRuntime + cloverRuntime.extendsFrom cloverCompile } eclipse { @@ -190,8 +192,7 @@ eclipse { removeThese += it } } - containers 'org.eclipse.buildship.core.gradleclasspathcontainer' - + minusConfigurations += removeThese plusConfigurations = [ ] file { @@ -201,7 +202,7 @@ eclipse { HashMap addedSrcPath = new HashMap<>(); cp.entries.each { entry -> if (entry.kind == 'src') { - if (addedSrcPath.getAt(entry.path) || !(entry.path == "src" || entry.path == "test" || entry.path == "resources")) { + if (addedSrcPath.getAt(entry.path) || !(entry.path == "src" || entry.path == "test")) { removeTheseToo += entry } else { addedSrcPath.putAt(entry.path, true) @@ -209,29 +210,11 @@ eclipse { } } cp.entries.removeAll(removeTheseToo) - } - - withXml { - def node = it.asNode() - def srcTestAttributes - node.children().each{ cpe -> - def attributes = cpe.attributes() - if (attributes.get("kind") == "src" && attributes.get("path") == "test") { - srcTestAttributes = cpe.find { a -> a.name() == "attributes" } - return - } - } - def addTestAttribute = true - srcTestAttributes.each{a -> - if (a.name() == "attribute" && a.attributes().getAt("name") == "test") { - addTestAttribute = false - } - } - if (addTestAttribute) { - srcTestAttributes.append(new Node(null, "attribute", [name:"test", value:"true"])) - } - node.appendNode('classpathentry', [kind:"output", path:"bin/main"]) + cp.entries += new Output("bin/main") + cp.entries += new Library(fileReference(helpParentDir)) + cp.entries += new Library(fileReference(resourceDir)) + HashMap addedLibPath = new HashMap<>(); def allPaths = sourceSets.test.compileClasspath + sourceSets.main.compileClasspath sourceSets.main.compileClasspath.each{ @@ -239,7 +222,6 @@ eclipse { //no longer want to add outputDir as eclipse is using its own output dir in bin/main if (it.isDirectory() || ! it.exists()) { // don't add dirs to classpath - //println("Not adding directory "+it) return } def itPath = it.toString() @@ -250,36 +232,69 @@ eclipse { //println("Not adding duplicate entry "+itPath) } else { //println("Adding entry "+itPath) - node.appendNode('classpathentry', [kind:"lib", path:itPath]) + cp.entries += new Library(fileReference(itPath)) addedLibPath.put(itPath, true) } } + sourceSets.test.compileClasspath.each{ //if ((it.isDirectory() || ! it.exists()) && ! (it.equals(sourceSets.main.java.outputDir))) { //no longer want to add outputDir as eclipse is using its own output dir in bin/main if (it.isDirectory() || ! it.exists()) { // don't add dirs to classpath - //println("Not adding directory "+it) - return + return false // groovy "break" in .each loop } def itPath = it.toString() if (itPath.startsWith(jalviewDirAbsolutePath+"/")) { itPath = itPath.substring(jalviewDirAbsolutePath.length()+1) } if (addedLibPath.get(itPath)) { - //println("Not adding duplicate entry "+itPath) + // don't duplicate } else { - //println("Adding entry "+itPath) - node.appendNode('classpathentry', [kind:"lib", path:itPath]) - .appendNode('attributes') - .appendNode('attribute', [name:"test", value:"true"]) + def lib = new Library(fileReference(itPath)) + // this doesn't work... yet. Adding test=true attribute using withXml below + //def attrs = new Node(null, 'attributes', ["test":"true"]) + //lib.appendNode(attrs) // + cp.entries += lib addedLibPath.put(itPath, true) } } - } + } - } - } + // withXml changes ignored by buildship, these add the "test=true" attribute + withXml { + def node = it.asNode() + + def srcTestAttributes + node.children().each{ cpe -> + def attributes = cpe.attributes() + if (attributes.get("kind") == "src" && attributes.get("path") == "test") { + srcTestAttributes = cpe.find { a -> a.name() == "attributes" } + return + } + } + def addTestAttribute = true + srcTestAttributes.each{a -> + if (a.name() == "attribute" && a.attributes().getAt("name") == "test") { + addTestAttribute = false + } + } + if (addTestAttribute) { + srcTestAttributes.append(new Node(null, "attribute", [name:"test", value:"true"])) + } + + node.children().each{ cpe -> + def attributes = cpe.attributes() + if (attributes.get("kind") == "lib" && attributes.get("path").startsWith("utils/")) { + cpe.appendNode('attributes') + .appendNode('attribute', [name:"test", value:"true"]) + } + } + } // withXML + } // file + + containers 'org.eclipse.buildship.core.gradleclasspathcontainer' + } // classpath jdt { // for the IDE, use java 11 compatibility @@ -290,58 +305,60 @@ eclipse { file { withProperties { props -> def jalview_prefs = new Properties() - def ins = new FileInputStream(eclipse_extra_jdt_prefs_file) - jalview_prefs.load(ins) - ins.close() - jalview_prefs.forEach { t, v -> - if (props.getAt(t) == null) { - props.putAt(t, v) - } - } + def ins = new FileInputStream(jalviewDirAbsolutePath+"/"+eclipse_extra_jdt_prefs_file) + jalview_prefs.load(ins) + ins.close() + jalview_prefs.forEach { t, v -> + if (props.getAt(t) == null) { + props.putAt(t, v) + } + } } } } - -} + + //synchronizationTasks eclipseClasspath + //autoBuildTasks eclipseClasspath +} task cloverInstr() { // only instrument source, we build test classes as normal - inputs.files files (sourceSets.main.allJava) // , fileTree(dir:"$jalviewDir/$testSourceDir", include: ["**/*.java"])) - outputs.dir cloverInstrDir - - doFirst { - delete cloverInstrDir - def argsList = ["--initstring", "${buildDir}/clover/clover.db", - "-d", "${buildDir}/${cloverSourcesInstrDir}"] - argsList.addAll(inputs.files.files.collect({ file -> - file.absolutePath - })) - String[] args = argsList.toArray() - println("About to instrument "+args.length +" files") - com.atlassian.clover.CloverInstr.mainImpl(args) - } + inputs.files files (sourceSets.main.allJava) // , fileTree(dir:"$jalviewDir/$testSourceDir", include: ["**/*.java"])) + outputs.dir cloverInstrDir + + doFirst { + delete cloverInstrDir + def argsList = ["--initstring", "${buildDir}/clover/clover.db", + "-d", "${buildDir}/${cloverSourcesInstrDir}"] + argsList.addAll(inputs.files.files.collect({ file -> + file.absolutePath + })) + String[] args = argsList.toArray() + println("About to instrument "+args.length +" files") + com.atlassian.clover.CloverInstr.mainImpl(args) + } } + - task cloverReport { - group = "Verification" - description = "Createst the Clover report" - inputs.dir "${buildDir}/clover" - outputs.dir "${reportsDir}/clover" - onlyIf { - file("${buildDir}/clover/clover.db").exists() - } - doFirst { - def argsList = ["--initstring", "${buildDir}/clover/clover.db", - "-o", "${reportsDir}/clover"] - String[] args = argsList.toArray() - com.atlassian.clover.reporters.html.HtmlReporter.runReport(args) - - // and generate ${reportsDir}/clover/clover.xml - args = ["--initstring", "${buildDir}/clover/clover.db", - "-o", "${reportsDir}/clover/clover.xml"].toArray() - com.atlassian.clover.reporters.xml.XMLReporter.runReport(args) - } + group = "Verification" + description = "Createst the Clover report" + inputs.dir "${buildDir}/clover" + outputs.dir "${reportsDir}/clover" + onlyIf { + file("${buildDir}/clover/clover.db").exists() + } + doFirst { + def argsList = ["--initstring", "${buildDir}/clover/clover.db", + "-o", "${reportsDir}/clover"] + String[] args = argsList.toArray() + com.atlassian.clover.reporters.html.HtmlReporter.runReport(args) + + // and generate ${reportsDir}/clover/clover.xml + args = ["--initstring", "${buildDir}/clover/clover.db", + "-o", "${reportsDir}/clover/clover.xml"].toArray() + com.atlassian.clover.reporters.xml.XMLReporter.runReport(args) + } } // end clover bits @@ -400,41 +417,74 @@ def getDate(format) { return date.format(format) } -def getGitHash() { - def stdout = new ByteArrayOutputStream() +task setGitVals { + def hashStdOut = new ByteArrayOutputStream() exec { commandLine "git", "rev-parse", "--short", "HEAD" - standardOutput = stdout - workingDir = jalviewDir + standardOutput = hashStdOut } - return stdout.toString().trim() -} -def getGitBranch() { - def stdout = new ByteArrayOutputStream() + def branchStdOut = new ByteArrayOutputStream() exec { commandLine "git", "rev-parse", "--abbrev-ref", "HEAD" - standardOutput = stdout - workingDir = jalviewDir + standardOutput = branchStdOut } - return stdout.toString().trim() + + project.ext.gitHash = hashStdOut.toString().trim() + project.ext.gitBranch = branchStdOut.toString().trim() + + outputs.upToDateWhen { false } } task createBuildProperties(type: WriteProperties) { + dependsOn setGitVals inputs.dir("$jalviewDir/$sourceDir") + inputs.dir("$classes") inputs.dir("$jalviewDir/$resourceDir") outputFile "$classes/$buildPropertiesFile" - /* taking time/date specific comment out to allow better incremental builds */ + // taking time specific comment out to allow better incremental builds //comment "--Jalview Build Details--\n"+getDate("yyyy-MM-dd HH:mm:ss") comment "--Jalview Build Details--\n"+getDate("yyyy-MM-dd") property "BUILD_DATE", getDate("dd MMMM yyyy") property "VERSION", JALVIEW_VERSION - property "INSTALLATION", INSTALLATION+" git-commit:"+getGitHash()+" ["+getGitBranch()+"]" + property "INSTALLATION", INSTALLATION+" git-commit:"+project.ext.gitHash+" ["+project.ext.gitBranch+"]" outputs.file(outputFile) - outputs.dir("$classes") +} + +def buildingHTML = "$jalviewDir/$docDir/building.html" +task deleteBuildingHTML(type: Delete) { + delete buildingHTML +} + +task convertBuildingMD(type: Exec) { + dependsOn deleteBuildingHTML + def buildingMD = "$jalviewDir/$docDir/building.md" + def css = "$jalviewDir/$docDir/github.css" + + def pandoc = pandoc_exec + def hostname = "hostname".execute().text.trim() + if (! file(pandoc).exists() && hostname.equals("jv-bamboo")) { + pandoc = System.getProperty("user.home")+"/buildtools/pandoc/bin/pandoc" + } + + if (file(pandoc).exists()) { + commandLine pandoc, '-s', '-o', buildingHTML, '--metadata', 'pagetitle="Building Jalview from Source"', '--toc', '-H', css, buildingMD + } else { + commandLine "true" + } + + ignoreExitValue true + + inputs.file(buildingMD) + inputs.file(css) + outputs.file(buildingHTML) +} +clean { + delete buildingHTML } task syncDocs(type: Sync) { + dependsOn convertBuildingMD def syncDir = "$classes/$docDir" from fileTree("$jalviewDir/$docDir") into syncDir @@ -442,21 +492,23 @@ task syncDocs(type: Sync) { } def helpFile = "$classes/$helpDir/help.jhm" -task syncHelp(type: Sync) { - inputs.files("$jalviewDir/$helpDir") - outputs.files(helpFile) - - def syncDir = "$classes/$helpDir" - from fileTree("$jalviewDir/$helpDir") - into syncDir -} task copyHelp(type: Copy) { - def inputDir = "$jalviewDir/$helpDir" + def inputDir = "$jalviewDir/$helpParentDir/$helpDir" def outputDir = "$classes/$helpDir" - from inputDir + from(inputDir) { + exclude '**/*.gif' + exclude '**/*.jpg' + exclude '**/*.png' + filter(ReplaceTokens, beginToken: '$$', endToken: '$$', tokens: ['Version-Rel': JALVIEW_VERSION]) + } + from(inputDir) { + include '**/*.gif' + include '**/*.jpg' + include '**/*.png' + } into outputDir - filter(ReplaceTokens, beginToken: '$$', endToken: '$$', tokens: ['Version-Rel': "USING_FILTER"]) + inputs.dir(inputDir) outputs.files(helpFile) outputs.dir(outputDir) @@ -493,14 +545,14 @@ test { dependsOn cloverInstr } - print("Running tests " + (use_clover?"WITH":"WITHOUT") + " clover [clover="+use_clover+"]\n") - + print("Running tests " + (use_clover?"WITH":"WITHOUT") + " clover [clover="+use_clover+"]\n") + useTestNG() { includeGroups testngGroups preserveOrder true useDefaultListeners=true } - + workingDir = jalviewDir //systemProperties 'clover.jar' System.properties.clover.jar sourceCompatibility = compile_source_compatibility @@ -534,6 +586,8 @@ task compileLinkCheck(type: JavaCompile) { destinationDir = file("$jalviewDir/$utilsDir") source = fileTree(dir: "$jalviewDir/$utilsDir", include: ["HelpLinksChecker.java", "BufferedLineReader.java"]) + inputs.file("$jalviewDir/$utilsDir/HelpLinksChecker.java") + inputs.file("$jalviewDir/$utilsDir/HelpLinksChecker.java") outputs.file("$jalviewDir/$utilsDir/HelpLinksChecker.class") outputs.file("$jalviewDir/$utilsDir/BufferedLineReader.class") } @@ -546,7 +600,6 @@ task linkCheck(type: JavaExec) { workingDir = jalviewDir def help = "$classes/$helpDir" args = [ "$classes/$helpDir", "-nointernet" ] - //args = [ "$classesDir/$helpDir", "-nointernet" ] doFirst { helplinkscheckeroutputfile.createNewFile() @@ -618,9 +671,10 @@ task cleanDist { } shadowJar { + group = "distribution" dependsOn makeDist from ("$jalviewDir/$libDistDir") { - include("*.jar") + include("*.jar") } mainClassName = shadowJarMainClass mergeServiceFiles() @@ -642,7 +696,10 @@ task getdownWebsite() { def props = project.properties.sort { it.key } props.put("getdown_txt_java_min_version", getdown_alt_java_min_version) props.put("getdown_txt_multi_java_location", getdown_alt_multi_java_location) - + + if (getdown_local == "true") { + getdown_app_base = file(getdownWebsiteDir).toURI().toString() + } props.put("getdown_txt_appbase", getdown_app_base) props.each{ prop, val -> if (prop.startsWith("getdown_txt_") && val != null) { @@ -705,20 +762,22 @@ task getdownWebsite() { // NOT USING MODULES YET, EVERYTHING SHOULD BE IN dist /* - if (JAVA_VERSION.equals("11")) { - def j11libFiles = fileTree(dir: "$jalviewDir/$j11libDir", include: ["*.jar"]).getFiles() - j11libFiles.sort().each{f -> - def line = "code = " + getdown_j11lib_dir + '/' + f.getName() + "\n" - getdownTextString += line - copy { - from f.getPath() - into project.ext.getdownJ11libDir - } - } - } - */ - - getdownTextString += "code = " + file(getdownLauncher).getName() + "\n" + if (JAVA_VERSION.equals("11")) { + def j11libFiles = fileTree(dir: "$jalviewDir/$j11libDir", include: ["*.jar"]).getFiles() + j11libFiles.sort().each{f -> + def line = "code = " + getdown_j11lib_dir + '/' + f.getName() + "\n" + getdownTextString += line + copy { + from f.getPath() + into project.ext.getdownJ11libDir + } + } + } + */ + + // getdown-launcher.jar should not be in main application class path so the main application can move it when updated. Listed as a resource so it gets updated. + //getdownTextString += "class = " + file(getdownLauncher).getName() + "\n" + getdownTextString += "resource = " + file(getdownLauncher).getName() + "\n" getdownTextString += "class = " + mainClass + "\n" def getdown_txt = file(project.ext.getdownWebsiteDir + "/getdown.txt") @@ -740,17 +799,12 @@ task getdownWebsite() { } copy { - from getdownLib1 - into project.ext.getdownFilesDir + '/' + packageDir - } - - copy { from jalviewDir + '/' + project.getProperty('getdown_txt_ui.background_image') from jalviewDir + '/' + project.getProperty('getdown_txt_ui.error_background') from jalviewDir + '/' + project.getProperty('getdown_txt_ui.progress_image') from jalviewDir + '/' + project.getProperty('getdown_txt_ui.icon') from jalviewDir + '/' + project.getProperty('getdown_txt_ui.mac_dock_icon') - into project.ext.getdownFilesDir + '/' + getdown_resource_dir + into project.ext.getdownFilesDir + '/' + getdown_resource_dir } } @@ -763,10 +817,10 @@ task getdownDigest(type: JavaExec) { group = "distribution" description = "Digest the getdown website folder" dependsOn getdownWebsite - classpath = files(jalviewDir + '/' + getdown_core) - classpath file(jalviewDir + '/' + getdown_lib1) + classpath = files(jalviewDir + '/' + getdown_core, jalviewDir+'/'+getdown_launcher) main = "com.threerings.getdown.tools.Digester" args project.ext.getdownWebsiteDir + inputs.dir(project.ext.getdownWebsiteDir) outputs.file(project.ext.getdownWebsiteDir + '/' + "digest2.txt") } @@ -796,6 +850,9 @@ install4j { } installDir = file(install4jHomeDir) mediaTypes = Arrays.asList(install4jMediaTypes.split(",")) + if (install4jFaster.equals("true")) { + faster = true + } } def install4jConf @@ -806,7 +863,7 @@ def windowsJavaVMTgz def install4jDir = "$jalviewDir/$install4jResourceDir" def install4jConfFile = "jalview-installers-java"+JAVA_VERSION+".install4j" install4jConf = "$install4jDir/$install4jConfFile" - + task copyInstall4jTemplate(type: Copy) { macosJavaVMDir = System.env.HOME+"/buildtools/jre/openjdk-java_vm/getdown/macos-jre"+JAVA_VERSION+"/jre" macosJavaVMTgz = System.env.HOME+"/buildtools/jre/openjdk-java_vm/install4j/tgz/macos-jre"+JAVA_VERSION+".tar.gz" @@ -816,11 +873,50 @@ task copyInstall4jTemplate(type: Copy) { include install4jTemplate rename (install4jTemplate, install4jConfFile) filter(ReplaceTokens, beginToken: '', endToken: '', tokens: ['9999999999': JAVA_VERSION]) - filter(ReplaceTokens, beginToken: '$$', endToken: '$$', tokens: ['JAVA_VERSION': JAVA_VERSION, 'JAVA_INTEGER_VERSION': JAVA_INTEGER_VERSION, 'VERSION': JALVIEW_VERSION, 'MACOS_JAVA_VM_DIR': macosJavaVMDir, 'MACOS_JAVA_VM_TGZ': macosJavaVMTgz, 'WINDOWS_JAVA_VM_DIR': windowsJavaVMDir, 'WINDOWS_JAVA_VM_TGZ': windowsJavaVMTgz]) + filter(ReplaceTokens, beginToken: '$$', endToken: '$$', + tokens: [ + 'JAVA_VERSION': JAVA_VERSION, + 'JAVA_INTEGER_VERSION': JAVA_INTEGER_VERSION, + 'VERSION': JALVIEW_VERSION, + 'MACOS_JAVA_VM_DIR': macosJavaVMDir, + 'MACOS_JAVA_VM_TGZ': macosJavaVMTgz, + 'WINDOWS_JAVA_VM_DIR': windowsJavaVMDir, + 'WINDOWS_JAVA_VM_TGZ': windowsJavaVMTgz, + 'INSTALL4JINFOPLISTFILEASSOCIATIONS': install4jInfoPlistFileAssociations, + 'COPYRIGHT_MESSAGE': install4jCopyrightMessage, + 'MACOS_BUNDLE_ID': install4jMacOSBundleId + ] + ) + if (OSX_KEYPASS=="") { + filter(ReplaceTokens, beginToken: 'codeSigning macEnabled="', endToken: '"', tokens: ['true':'codeSigning macEnabled="false"']) + filter(ReplaceTokens, beginToken: 'runPostProcessor="true" ',endToken: 'Processor', tokens: ['post':'runPostProcessor="false" postProcessor']) + } } into install4jDir - inputs.files("$install4jDir/$install4jTemplate") outputs.files(install4jConf) + + doLast { + // include file associations in installer + def installerFileAssociationsXml = file("$install4jDir/$install4jInstallerFileAssociations").text + ant.replaceregexp( + byline: false, + flags: "s", + match: '', + replace: installerFileAssociationsXml, + file: install4jConf + ) + /* + // include uninstaller applescript app files in dmg + def installerDMGUninstallerXml = file("$install4jDir/$install4jDMGUninstallerAppFiles").text + ant.replaceregexp( + byline: false, + flags: "s", + match: '', + replace: installerDMGUninstallerXml, + file: install4jConf + ) + */ + } } task installers(type: com.install4j.gradle.Install4jTask) {