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)
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
getdownWebsiteDir = string("${jalviewDir}/${getdown_website_dir}/${JAVA_VERSION}")
buildDist = true
+ buildProperties = null
// the following values might be overridden by the CHANNEL switch
- channelPropertiesFile = string("${channel_properties_dir}/release_properties")
- 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
- buildProperties = string("${resourceDir}/${build_properties_file}")
- getdownImagesDir = getdown_images_dir
- getdownBgColour = "FFFFFF"
- getdownFgColour = "000000"
- getdownLightFgColour = "000066"
+ getdownImagesDir = string("${jalviewDir}/${getdown_images_dir}")
reportRsyncCommand = false
jvlChannelName = CHANNEL.toLowerCase()
install4jSuffix = CHANNEL.substring(0, 1).toUpperCase() + CHANNEL.substring(1).toLowerCase(); // BUILD -> Build
install4jInstallerName = "${jalview_name} Non-Release Installer"
install4jExecutableName = jalview_name.replaceAll("[^\\w]+", "_").toLowerCase()
install4jExtraScheme = "jalviewx"
- install4jMacIconsFile = string("${install4j_utils_dir}/${install4j_mac_icons_file}")
- install4jWindowsIconsFile = string("${install4j_utils_dir}/${install4j_windows_icons_file}")
- install4jPngIconFile = string("${install4j_utils_dir}/${install4j_png_icon_file}")
+ 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":
// 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":
}
// 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
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}")
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) {
inputs.dir(inputDir)
outputs.dir(outputDir)
}
-task copyChannelProperties(type: Copy) {
- def propsFile = file(channelPropertiesFile)
- rename(propsFile.getName(), "channel_properties")
- from channelPropertiesFile
- into resourceDir
+
+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 copyDocs
dependsOn copyHelp
dependsOn createBuildProperties
+ dependsOn copyChannelResources
dependsOn convertMdFiles
dependsOn buildIndices
}
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_ui.background", getdownBgColour)
- props.put("getdown_txt_ui.progress_text", getdownFgColour)
- props.put("getdown_txt_ui.status_text", getdownLightFgColour)
}
props.put("getdown_txt_title", jalview_name)