X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=build.gradle;h=bdc50d0e2f4d1e786f0d23e1967c159b9811634e;hb=eb4225509a3a82a8418eb93e2c8ebc8465cc97e1;hp=72baea1aa13b4a5cf9bea81ceddcb3e316048266;hpb=3072515cf0a1d9ae58b48a07fe9af4abe9ee798f;p=jalview.git diff --git a/build.gradle b/build.gradle index 72baea1..bdc50d0 100644 --- a/build.gradle +++ b/build.gradle @@ -57,24 +57,12 @@ def string(Object o) { return o == null ? "" : o.toString() } - -ext { - jalviewDirAbsolutePath = file(jalviewDir).getAbsolutePath() - jalviewDirRelativePath = jalviewDir - - // local build environment properties - // can be "projectDir/local.properties" - def localProps = "${projectDir}/local.properties" - def propsFile = null; - if (file(localProps).exists()) { - propsFile = localProps - } - // or "../projectDir_local.properties" - def dirLocalProps = projectDir.getParent() + "/" + projectDir.getName() + "_local.properties" - if (file(dirLocalProps).exists()) { - propsFile = dirLocalProps +def overrideProperties(def propsFileName) { + if (propsFileName == null) { + return } - if (propsFile != null) { + def propsFile = file(propsFileName) + if (propsFile != null && propsFile.exists()) { try { def p = new Properties() def localPropsFIS = new FileInputStream(propsFile) @@ -82,18 +70,40 @@ ext { localPropsFIS.close() p.each { key, val -> - def oldval = findProperty(key) - setProperty(key, val) - if (oldval != null) { + def oldval + if (project.hasProperty(key)) { + oldval = project.findProperty(key) + project.setProperty(key, val) println("Overriding property '${key}' ('${oldval}') with ${file(propsFile).getName()} value '${val}'") } else { - println("Setting unknown property '${key}' with ${file(propsFile).getName()}s value '${val}'") + ext.setProperty(key, val) + println("Setting ext property '${key}' with ${file(propsFile).getName()}s value '${val}'") } + //true } } catch (Exception e) { - System.out.println("Exception reading local.properties") + println("Exception reading local.properties") + e.printStackTrace() } } +} + +ext { + jalviewDirAbsolutePath = file(jalviewDir).getAbsolutePath() + jalviewDirRelativePath = jalviewDir + + getdownChannelName = CHANNEL.toLowerCase() + // default to "release". Currently only has different cosmetics for "develop", "release" + propertiesChannelName = getdownChannelName == "develop" ? getdownChannelName : "release" + // Import channel_properties + channelDir = string("${jalviewDir}/${channel_properties_dir}/${propertiesChannelName}") + channelGradleProperties = string("${channelDir}/channel_gradle.properties") + overrideProperties(channelGradleProperties) + // local build environment properties + // can be "projectDir/local.properties" + overrideProperties("${projectDir}/local.properties") + // or "../projectDir_local.properties" + overrideProperties(projectDir.getParent() + "/" + projectDir.getName() + "_local.properties") //// // Import releaseProps from the RELEASE file @@ -111,7 +121,7 @@ ext { } //// // Set JALVIEW_VERSION if it is not already set - if (findProperty(JALVIEW_VERSION)==null || "".equals(JALVIEW_VERSION)) { + if (findProperty("JALVIEW_VERSION")==null || "".equals(JALVIEW_VERSION)) { JALVIEW_VERSION = releaseProps.get("jalview.version") } @@ -172,13 +182,14 @@ ext { getdownWebsiteDir = string("${jalviewDir}/${getdown_website_dir}/${JAVA_VERSION}") buildDist = true + buildProperties = null // the following values might be overridden by the CHANNEL switch - getdownChannelName = CHANNEL.toLowerCase() getdownDir = string("${getdownChannelName}/${JAVA_VERSION}") getdownAppBase = string("${getdown_channel_base}/${getdownDir}") getdownLauncher = string("${jalviewDir}/${getdown_lib_dir}/${getdown_launcher}") getdownAppDistDir = getdown_app_dir_alt + getdownImagesDir = string("${jalviewDir}/${getdown_images_dir}") reportRsyncCommand = false jvlChannelName = CHANNEL.toLowerCase() install4jSuffix = CHANNEL.substring(0, 1).toUpperCase() + CHANNEL.substring(1).toLowerCase(); // BUILD -> Build @@ -187,6 +198,9 @@ ext { install4jInstallerName = "${jalview_name} Non-Release Installer" install4jExecutableName = jalview_name.replaceAll("[^\\w]+", "_").toLowerCase() install4jExtraScheme = "jalviewx" + install4jMacIconsFile = string("${install4j_images_dir}/${install4j_mac_icons_file}") + install4jWindowsIconsFile = string("${install4j_images_dir}/${install4j_windows_icons_file}") + install4jPngIconFile = string("${install4j_images_dir}/${install4j_png_icon_file}") switch (CHANNEL) { case "BUILD": @@ -249,19 +263,11 @@ 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": @@ -318,7 +324,13 @@ ext { } // override getdownAppBase if requested if (findProperty("getdown_appbase_override") != null) { - getdownAppBase = string(getProperty("getdown_appbase_override")) + // revert to LOCAL if empty string + if (string(getdown_appbase_override) == "") { + getdownAppBase = file(getdownWebsiteDir).toURI().toString() + getdownLauncher = string("${jalviewDir}/${getdown_lib_dir}/${getdown_launcher_local}") + } else { + getdownAppBase = string(getdown_appbase_override) + } println("Overriding getdown appbase with '${getdownAppBase}'") } // sanitise file name for jalview launcher file for this channel @@ -449,7 +461,9 @@ ext { helpBuildDir = string("${resourceBuildDir}/help_build") docBuildDir = string("${resourceBuildDir}/doc_build") - buildProperties = string("${resourcesBuildDir}/${build_properties_file}") + if (buildProperties == null) { + buildProperties = string("${resourcesBuildDir}/${build_properties_file}") + } buildingHTML = string("${jalviewDir}/${doc_dir}/building.html") helpParentDir = string("${jalviewDir}/${help_parent_dir}") helpSourceDir = string("${helpParentDir}/${help_dir}") @@ -1084,6 +1098,7 @@ def convertMdToHtml (FileTree mdFiles, File cssFile) { def htmlFilePath = mdFile.getPath().replaceAll(/\..*?$/, ".html") def htmlFile = file(htmlFilePath) + println("Creating ${htmlFilePath}") htmlFile.text = htmlText } } @@ -1093,9 +1108,10 @@ task copyDocs(type: Copy) { def inputDir = "${jalviewDir}/${doc_dir}" def outputDir = "${docBuildDir}/${doc_dir}" from(inputDir) { - exclude '**/*.gif' - exclude '**/*.jpg' - exclude '**/*.png' + include('**/*.txt') + include('**/*.md') + include('**/*.html') + include('**/*.xml') filter(ReplaceTokens, beginToken: '$$', endToken: '$$', @@ -1106,21 +1122,21 @@ task copyDocs(type: Copy) { ) } from(inputDir) { - include '**/*.gif' - include '**/*.jpg' - include '**/*.png' + exclude('**/*.txt') + exclude('**/*.md') + exclude('**/*.html') + exclude('**/*.xml') } into outputDir inputs.dir(inputDir) - outputs.files(helpFile) outputs.dir(outputDir) } task convertMdFiles { dependsOn copyDocs - def mdFiles = fileTree(dir: docBuildDir, include: "*.md") + def mdFiles = fileTree(dir: docBuildDir, include: "**/*.md") def cssFile = file("${jalviewDir}/${flexmark_css}") doLast { @@ -1143,9 +1159,12 @@ task copyHelp(type: Copy) { def inputDir = helpSourceDir 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: '$$', @@ -1156,9 +1175,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 @@ -1169,12 +1191,16 @@ task copyHelp(type: Copy) { task copyResources(type: Copy) { + group = "build" + description = "Copy (and make text substitutions in) the resources dir to the build area" + def inputDir = resourceDir def outputDir = resourcesBuildDir from(inputDir) { - exclude '**/*.gif' - exclude '**/*.jpg' - exclude '**/*.png' + include('**/*.txt') + include('**/*.md') + include('**/*.html') + include('**/*.xml') filter(ReplaceTokens, beginToken: '$$', endToken: '$$', @@ -1185,9 +1211,10 @@ task copyResources(type: Copy) { ) } from(inputDir) { - include '**/*.gif' - include '**/*.jpg' - include '**/*.png' + exclude('**/*.txt') + exclude('**/*.md') + exclude('**/*.html') + exclude('**/*.xml') } into outputDir @@ -1195,6 +1222,19 @@ task copyResources(type: Copy) { outputs.dir(outputDir) } +task copyChannelResources(type: Copy) { + dependsOn copyResources + group = "build" + description = "Copy the channel resources dir to the build resources area" + + def inputDir = "${channelDir}/${resource_dir}" + def outputDir = resourcesBuildDir + from inputDir + into outputDir + + inputs.dir(inputDir) + outputs.dir(outputDir) +} task createBuildProperties(type: WriteProperties) { dependsOn copyResources @@ -1214,12 +1254,33 @@ task createBuildProperties(type: WriteProperties) { } +task buildIndices(type: JavaExec) { + dependsOn copyHelp + classpath = sourceSets.main.compileClasspath + main = "com.sun.java.help.search.Indexer" + workingDir = "${helpBuildDir}/${help_dir}" + def argDir = "html" + args = [ argDir ] + inputs.dir("${workingDir}/${argDir}") + + outputs.dir("${classesDir}/doc") + outputs.dir("${classesDir}/help") + outputs.file("${workingDir}/JavaHelpSearch/DOCS") + outputs.file("${workingDir}/JavaHelpSearch/DOCS.TAB") + outputs.file("${workingDir}/JavaHelpSearch/OFFSETS") + outputs.file("${workingDir}/JavaHelpSearch/POSITIONS") + outputs.file("${workingDir}/JavaHelpSearch/SCHEMA") + outputs.file("${workingDir}/JavaHelpSearch/TMAP") +} + task prepare { dependsOn copyResources dependsOn copyDocs dependsOn copyHelp dependsOn createBuildProperties + dependsOn copyChannelResources dependsOn convertMdFiles + dependsOn buildIndices } @@ -1265,26 +1326,6 @@ test { } -task buildIndices(type: JavaExec) { - dependsOn copyHelp - classpath = sourceSets.main.compileClasspath - main = "com.sun.java.help.search.Indexer" - workingDir = "${helpBuildDir}/${help_dir}" - def argDir = "html" - args = [ argDir ] - inputs.dir("${workingDir}/${argDir}") - - outputs.dir("${classesDir}/doc") - outputs.dir("${classesDir}/help") - outputs.file("${workingDir}/JavaHelpSearch/DOCS") - outputs.file("${workingDir}/JavaHelpSearch/DOCS.TAB") - outputs.file("${workingDir}/JavaHelpSearch/OFFSETS") - outputs.file("${workingDir}/JavaHelpSearch/POSITIONS") - outputs.file("${workingDir}/JavaHelpSearch/SCHEMA") - outputs.file("${workingDir}/JavaHelpSearch/TMAP") -} - - task compileLinkCheck(type: JavaCompile) { options.fork = true classpath = files("${jalviewDir}/${utils_dir}") @@ -1299,7 +1340,8 @@ task compileLinkCheck(type: JavaCompile) { task linkCheck(type: JavaExec) { - dependsOn prepare, compileLinkCheck + dependsOn prepare + dependsOn compileLinkCheck def helpLinksCheckerOutFile = file("${jalviewDir}/${utils_dir}/HelpLinksChecker.out") classpath = files("${jalviewDir}/${utils_dir}") @@ -1335,10 +1377,8 @@ task cleanPackageDir(type: Delete) { jar { - dependsOn linkCheck - dependsOn buildIndices - dependsOn createBuildProperties dependsOn prepare + dependsOn linkCheck manifest { attributes "Main-Class": main_class, @@ -1457,6 +1497,14 @@ task getdownWebsite() { if (getdownAltMultiJavaLocation != null && getdownAltMultiJavaLocation.length() > 0) { props.put("getdown_txt_multi_java_location", getdownAltMultiJavaLocation) } + if (getdownImagesDir != null && file(getdownImagesDir).exists()) { + props.put("getdown_txt_ui.background_image", "${getdownImagesDir}/${getdown_background_image}") + props.put("getdown_txt_ui.instant_background_image", "${getdownImagesDir}/${getdown_instant_background_image}") + props.put("getdown_txt_ui.error_background", "${getdownImagesDir}/${getdown_error_background}") + props.put("getdown_txt_ui.progress_image", "${getdownImagesDir}/${getdown_progress_image}") + props.put("getdown_txt_ui.icon", "${getdownImagesDir}/${getdown_icon}") + props.put("getdown_txt_ui.mac_dock_icon", "${getdownImagesDir}/${getdown_mac_dock_icon}") + } props.put("getdown_txt_title", jalview_name) props.put("getdown_txt_ui.name", install4jApplicationName) @@ -1841,6 +1889,10 @@ task installers(type: com.install4j.gradle.Install4jTask) { 'UNIX_APPLICATION_FOLDER': install4jUnixApplicationFolder, 'EXECUTABLE_NAME': install4jExecutableName, 'EXTRA_SCHEME': install4jExtraScheme, + 'MAC_ICONS_FILE': install4jMacIconsFile, + 'WINDOWS_ICONS_FILE': install4jWindowsIconsFile, + 'PNG_ICON_FILE': install4jPngIconFile, + ] //println("INSTALL4J VARIABLES:")