X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=build.gradle;h=789aaea5ae5eea65f678de017a5baef351fcff54;hb=2d1798c357c64064590a4206e944b740b0539435;hp=365168937eb04cd0d8c7669d95155a1fd2042709;hpb=24a67e00b439ae0516c2303a8f0fdc21ba5ee057;p=jalview.git diff --git a/build.gradle b/build.gradle index 3651689..789aaea 100644 --- a/build.gradle +++ b/build.gradle @@ -167,8 +167,6 @@ ext { //cloverTestClassesDir = cloverClassesDir cloverDb = string("${cloverBuildDir}/clover.db") - resourceClassesDir = useClover ? cloverClassesDir : classesDir - testSourceDir = useClover ? cloverTestInstrDir : testDir testClassesDir = useClover ? cloverTestClassesDir : "${jalviewDir}/${test_output_dir}" @@ -181,7 +179,6 @@ ext { getdownAppBase = string("${getdown_channel_base}/${getdownDir}") getdownLauncher = string("${jalviewDir}/${getdown_lib_dir}/${getdown_launcher}") getdownAppDistDir = getdown_app_dir_alt - buildProperties = string("${resourceDir}/${build_properties_file}") reportRsyncCommand = false jvlChannelName = CHANNEL.toLowerCase() install4jSuffix = CHANNEL.substring(0, 1).toUpperCase() + CHANNEL.substring(1).toLowerCase(); // BUILD -> Build @@ -252,11 +249,19 @@ ext { // DEVELOP-RELEASE is usually associated with a Jalview release series so set the version JALVIEW_VERSION=JALVIEW_VERSION+"-develop" + channelPropertiesFile = string("${channel_properties_dir}/develop_properties") + getdownImagesDir = "${getdown_images_dir}/develop" + getdownBgColour = "000000" + getdownFgColour = "FFFFFF" + getdownLightFgColour = "CCCCFF" install4jSuffix = "Develop" install4jDSStore = "DS_Store-DEVELOP" install4jDMGBackgroundImage = "jalview_dmg_background-DEVELOP.png" install4jExtraScheme = "jalviewd" install4jInstallerName = "${jalview_name} Develop Installer" + install4jMacIconsFile = string("${install4j_utils_dir}/develop/${install4j_mac_icons_file}") + install4jWindowsIconsFile = string("${install4j_utils_dir}/develop/${install4j_windows_icons_file}") + install4jPngIconFile = string("${install4j_utils_dir}/develop/${install4j_png_icon_file}") break case "TEST-RELEASE": @@ -439,12 +444,16 @@ ext { install4jHomeDir = System.getProperty("user.home") + install4jHomeDir.substring(1) } + resourceBuildDir = string("${buildDir}/resources") + resourcesBuildDir = string("${resourceBuildDir}/resources_build") + helpBuildDir = string("${resourceBuildDir}/help_build") + docBuildDir = string("${resourceBuildDir}/doc_build") - + buildProperties = string("${resourcesBuildDir}/${build_properties_file}") buildingHTML = string("${jalviewDir}/${doc_dir}/building.html") - helpFile = string("${resourceClassesDir}/${help_dir}/help.jhm") helpParentDir = string("${jalviewDir}/${help_parent_dir}") helpSourceDir = string("${helpParentDir}/${help_dir}") + helpFile = string("${helpBuildDir}/${help_dir}/help.jhm") relativeBuildDir = file(jalviewDirAbsolutePath).toPath().relativize(buildDir.toPath()) @@ -482,16 +491,14 @@ sourceSets { } resources { - srcDirs resourceDir - srcDirs += helpParentDir + srcDirs = [ resourcesBuildDir, docBuildDir, helpBuildDir ] } - jar.destinationDir = file("${jalviewDir}/${package_dir}") - compileClasspath = files(sourceSets.main.java.outputDir) compileClasspath += fileTree(dir: "${jalviewDir}/${libDir}", include: ["*.jar"]) runtimeClasspath = compileClasspath + runtimeClasspath += files(sourceSets.main.resources.srcDirs) } clover { @@ -528,6 +535,7 @@ sourceSets { compileClasspath += fileTree(dir: "${jalviewDir}/${utils_dir}/testnglibs", include: ["**/*.jar"]) runtimeClasspath = compileClasspath + runtimeClasspath += files(sourceSets.test.resources.srcDirs) } } @@ -548,14 +556,12 @@ eclipse { classpath { //defaultOutputDir = sourceSets.main.java.outputDir - def removeThese = [] - configurations.each{ - if (it.isCanBeResolved()) { - removeThese += it + configurations.each{ c-> + if (c.isCanBeResolved()) { + minusConfigurations += [c] } } - minusConfigurations += removeThese plusConfigurations = [ ] file { @@ -1005,38 +1011,6 @@ def getDate(format) { } -task createBuildProperties(type: WriteProperties) { - group = "build" - description = "Create the ${buildProperties} file" - - inputs.dir(sourceDir) - inputs.dir(resourceDir) - file(buildProperties).getParentFile().mkdirs() - outputFile (buildProperties) - // 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("HH:mm:ss dd MMMM yyyy") - property "VERSION", JALVIEW_VERSION - property "INSTALLATION", INSTALLATION+" git-commit:"+gitHash+" ["+gitBranch+"]" - outputs.file(outputFile) -} - - -clean { - doFirst { - delete buildProperties - } -} - - -task cleanBuildingHTML(type: Delete) { - doFirst { - delete buildingHTML - } -} - - def convertMdToHtml (FileTree mdFiles, File cssFile) { MutableDataSet options = new MutableDataSet() @@ -1115,9 +1089,39 @@ def convertMdToHtml (FileTree mdFiles, File cssFile) { } +task copyDocs(type: Copy) { + def inputDir = "${jalviewDir}/${doc_dir}" + def outputDir = "${docBuildDir}/${doc_dir}" + from(inputDir) { + include('**/*.txt') + include('**/*.md') + include('**/*.html') + include('**/*.xml') + filter(ReplaceTokens, + beginToken: '$$', + endToken: '$$', + tokens: [ + 'Version-Rel': JALVIEW_VERSION, + 'Year-Rel': getDate("yyyy") + ] + ) + } + from(inputDir) { + exclude('**/*.txt') + exclude('**/*.md') + exclude('**/*.html') + exclude('**/*.xml') + } + into outputDir + + inputs.dir(inputDir) + outputs.dir(outputDir) +} + + task convertMdFiles { - dependsOn cleanBuildingHTML - def mdFiles = fileTree(dir: "${jalviewDir}/${doc_dir}", include: "*.md") + dependsOn copyDocs + def mdFiles = fileTree(dir: docBuildDir, include: "*.md") def cssFile = file("${jalviewDir}/${flexmark_css}") doLast { @@ -1136,21 +1140,16 @@ task convertMdFiles { } -task syncDocs(type: Sync) { - dependsOn convertMdFiles - def syncDir = "${classesDir}/${doc_dir}" - from fileTree("${jalviewDir}/${doc_dir}") - into syncDir -} - - task copyHelp(type: Copy) { def inputDir = helpSourceDir - def outputDir = "${resourceClassesDir}/${help_dir}" + def outputDir = "${helpBuildDir}/${help_dir}" from(inputDir) { - exclude '**/*.gif' - exclude '**/*.jpg' - exclude '**/*.png' + include('**/*.txt') + include('**/*.md') + include('**/*.html') + include('**/*.hs') + include('**/*.xml') + include('**/*.jhm') filter(ReplaceTokens, beginToken: '$$', endToken: '$$', @@ -1161,9 +1160,12 @@ task copyHelp(type: Copy) { ) } from(inputDir) { - include '**/*.gif' - include '**/*.jpg' - include '**/*.png' + exclude('**/*.txt') + exclude('**/*.md') + exclude('**/*.html') + exclude('**/*.hs') + exclude('**/*.xml') + exclude('**/*.jhm') } into outputDir @@ -1173,40 +1175,76 @@ task copyHelp(type: Copy) { } -task syncLib(type: Sync) { - def syncDir = "${resourceClassesDir}/${libDistDir}" - from fileTree("${jalviewDir}/${libDistDir}") - into syncDir +task copyResources(type: Copy) { + def inputDir = resourceDir + def outputDir = resourcesBuildDir + from(inputDir) { + include('**/*.txt') + include('**/*.md') + include('**/*.html') + include('**/*.xml') + filter(ReplaceTokens, + beginToken: '$$', + endToken: '$$', + tokens: [ + 'Version-Rel': JALVIEW_VERSION, + 'Year-Rel': getDate("yyyy") + ] + ) + } + from(inputDir) { + exclude('**/*.txt') + exclude('**/*.md') + exclude('**/*.html') + exclude('**/*.xml') + } + into outputDir + + inputs.dir(inputDir) + outputs.dir(outputDir) } -task syncResources(type: Sync) { - dependsOn createBuildProperties - from resourceDir - include "**/*.*" - into "${resourceClassesDir}" - preserve { - include "**" - } +task createBuildProperties(type: WriteProperties) { + dependsOn copyResources + group = "build" + description = "Create the ${buildProperties} file" + + inputs.dir(sourceDir) + inputs.dir(resourcesBuildDir) + outputFile (buildProperties) + // 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("HH:mm:ss dd MMMM yyyy") + property "VERSION", JALVIEW_VERSION + property "INSTALLATION", INSTALLATION+" git-commit:"+gitHash+" ["+gitBranch+"]" + outputs.file(outputFile) } task prepare { - dependsOn syncResources - dependsOn syncDocs + dependsOn copyResources + dependsOn copyDocs dependsOn copyHelp + dependsOn createBuildProperties + dependsOn convertMdFiles } +compileJava.dependsOn prepare +run.dependsOn compileJava +//run.dependsOn prepare + + //testReportDirName = "test-reports" // note that test workingDir will be $jalviewDir test { dependsOn prepare - //dependsOn compileJava ////? DELETE if (useClover) { dependsOn cloverClasses } else { //? - dependsOn compileJava //? + dependsOn compileJava //? } useTestNG() { @@ -1219,7 +1257,6 @@ test { maxHeapSize = "1024m" workingDir = jalviewDir - //systemProperties 'clover.jar' System.properties.clover.jar def testLaf = project.findProperty("test_laf") if (testLaf != null) { println("Setting Test LaF to '${testLaf}'") @@ -1241,7 +1278,7 @@ task buildIndices(type: JavaExec) { dependsOn copyHelp classpath = sourceSets.main.compileClasspath main = "com.sun.java.help.search.Indexer" - workingDir = "${classesDir}/${help_dir}" + workingDir = "${helpBuildDir}/${help_dir}" def argDir = "html" args = [ argDir ] inputs.dir("${workingDir}/${argDir}") @@ -1277,7 +1314,7 @@ task linkCheck(type: JavaExec) { classpath = files("${jalviewDir}/${utils_dir}") main = "HelpLinksChecker" workingDir = jalviewDir - args = [ "${classesDir}/${help_dir}", "-nointernet" ] + args = [ "${helpBuildDir}/${help_dir}", "-nointernet" ] def outFOS = new FileOutputStream(helpLinksCheckerOutFile, false) // false == don't append def errFOS = outFOS @@ -1288,13 +1325,14 @@ task linkCheck(type: JavaExec) { outFOS, errorOutput) - inputs.dir("${classesDir}/${help_dir}") + inputs.dir(helpBuildDir) outputs.file(helpLinksCheckerOutFile) } + // import the pubhtmlhelp target ant.properties.basedir = "${jalviewDir}" -ant.properties.helpBuildDir = "${jalviewDirAbsolutePath}/${classes_dir}/${help_dir}" +ant.properties.helpBuildDir = "${helpBuildDir}/${help_dir}" ant.importBuild "${utils_dir}/publishHelp.xml" @@ -1309,16 +1347,18 @@ jar { dependsOn linkCheck dependsOn buildIndices dependsOn createBuildProperties + dependsOn prepare manifest { attributes "Main-Class": main_class, "Permissions": "all-permissions", - "Application-Name": "Jalview Desktop", - "Codebase": application_codebase + "Application-Name": install4jApplicationName, + "Codebase": application_codebase, + "Implementation-Version": JALVIEW_VERSION } - destinationDir = file("${jalviewDir}/${package_dir}") - archiveName = rootProject.name+".jar" + destinationDirectory = file("${jalviewDir}/${package_dir}") + archiveFileName = rootProject.name+".jar" exclude "cache*/**" exclude "*.jar" @@ -1326,8 +1366,11 @@ jar { exclude "**/*.jar" exclude "**/*.jar.*" - inputs.dir(classesDir) - outputs.file("${jalviewDir}/${package_dir}/${archiveName}") + inputs.dir(sourceSets.main.java.outputDir) + sourceSets.main.resources.srcDirs.each{ dir -> + inputs.dir(dir) + } + outputs.file("${destinationDirectory}/${archiveFileName}") } @@ -1339,10 +1382,11 @@ task copyJars(type: Copy) { // doing a Sync instead of Copy as Copy doesn't deal with "outputs" very well task syncJars(type: Sync) { + dependsOn jar from fileTree(dir: "${jalviewDir}/${libDistDir}", include: "**/*.jar").files into "${jalviewDir}/${package_dir}" preserve { - include jar.archiveName + include jar.archiveFileName.getOrNull() } } @@ -1366,6 +1410,7 @@ task cleanDist { dependsOn clean } + shadowJar { group = "distribution" description = "Create a single jar file with all dependency libraries merged. Can be run with java -jar" @@ -1376,7 +1421,8 @@ shadowJar { include("*.jar") } manifest { - attributes 'Implementation-Version': JALVIEW_VERSION + attributes "Implementation-Version": JALVIEW_VERSION, + "Application-Name": install4jApplicationName } mainClassName = shadow_jar_main_class mergeServiceFiles() @@ -1849,12 +1895,7 @@ task sourceDist(type: Tar) { def VERSION_UNDERSCORES = JALVIEW_VERSION.replaceAll("\\.", "_") def outputFileName = "${project.name}_${VERSION_UNDERSCORES}.tar.gz" - // cater for buildship < 3.1 [3.0.1 is max version in eclipse 2018-09] - try { - archiveFileName = outputFileName - } catch (Exception e) { - archiveName = outputFileName - } + archiveFileName = outputFileName compression Compression.GZIP @@ -1944,7 +1985,7 @@ task helppages { dependsOn copyHelp dependsOn pubhtmlhelp - inputs.dir("${classesDir}/${help_dir}") + inputs.dir("${helpBuildDir}/${help_dir}") outputs.dir("${buildDir}/distributions/${help_dir}") } @@ -2748,11 +2789,7 @@ task jalviewjsSiteTar(type: Tar) { description "Creates a tar.gz file for the website" dependsOn jalviewjsBuildSite def outputFilename = "jalviewjs-site-${JALVIEW_VERSION}.tar.gz" - try { - archiveFileName = outputFilename - } catch (Exception e) { - archiveName = outputFilename - } + archiveFileName = outputFilename compression Compression.GZIP