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
+def overrideProperties(String propsFileName, boolean output = false) {
+ if (propsFileName == null) {
+ return
}
- // or "../projectDir_local.properties"
- def dirLocalProps = projectDir.getParent() + "/" + projectDir.getName() + "_local.properties"
- if (file(dirLocalProps).exists()) {
- propsFile = dirLocalProps
- }
- if (propsFile != null) {
+ def propsFile = file(propsFileName)
+ if (propsFile != null && propsFile.exists()) {
+ println("Using properties from file '${propsFileName}'")
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) {
- println("Overriding property '${key}' ('${oldval}') with ${file(propsFile).getName()} value '${val}'")
+ def oldval
+ if (project.hasProperty(key)) {
+ oldval = project.findProperty(key)
+ project.setProperty(key, val)
+ if (output) {
+ 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)
+ if (output) {
+ println("Setting ext property '${key}' with ${file(propsFile).getName()}s value '${val}'")
+ }
}
}
} 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 "default". Currently only has different cosmetics for "develop", "release", "default"
+ propertiesChannelName = ["develop", "release", "test-release"].contains(getdownChannelName) ? getdownChannelName : "default"
+ // Import channel_properties
+ channelDir = string("${jalviewDir}/${channel_properties_dir}/${propertiesChannelName}")
+ channelGradleProperties = string("${channelDir}/channel_gradle.properties")
+ overrideProperties(channelGradleProperties, false)
+ // local build environment properties
+ // can be "projectDir/local.properties"
+ overrideProperties("${projectDir}/local.properties", true)
+ // or "../projectDir_local.properties"
+ overrideProperties(projectDir.getParent() + "/" + projectDir.getName() + "_local.properties", true)
////
// 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
- install4jDSStore = "DS_Store-NON-RELEASE"
- install4jDMGBackgroundImage = "jalview_dmg_background-NON-RELEASE.png"
+ install4jDMGDSStore = "${install4j_images_dir}/${install4j_dmg_ds_store}"
+ install4jDMGBackgroundImage = "${install4j_images_dir}/${install4j_dmg_background}"
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}")
+ install4jBackground = string("${install4j_images_dir}/${install4j_background}")
switch (CHANNEL) {
case "BUILD":
getdownAppDistDir = getdown_app_dir_release
reportRsyncCommand = true
install4jSuffix = ""
- install4jDSStore = "DS_Store"
- install4jDMGBackgroundImage = "jalview_dmg_background.png"
install4jInstallerName = "${jalview_name} Installer"
break
// 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":
}
JALVIEW_VERSION = JALVIEW_VERSION+"-test"
install4jSuffix = "Test"
- install4jDSStore = "DS_Store-TEST-RELEASE"
- install4jDMGBackgroundImage = "jalview_dmg_background-TEST.png"
install4jExtraScheme = "jalviewt"
install4jInstallerName = "${jalview_name} Test Installer"
break
}
JALVIEW_VERSION = "TEST"
install4jSuffix = "Test-Local"
- install4jDSStore = "DS_Store-TEST-RELEASE"
- install4jDMGBackgroundImage = "jalview_dmg_background-TEST.png"
install4jExtraScheme = "jalviewt"
install4jInstallerName = "${jalview_name} Test Installer"
break
}
// 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
}
println("Setting Test LaF to '${testLaf}'")
systemProperty "laf", testLaf
}
+ def testHiDPIScale = project.findProperty("test_HiDPIScale")
+ if (testHiDPIScale != null) {
+ println("Setting Test HiDPI Scale to '${testHiDPIScale}'")
+ systemProperty "sun.java2d.uiScale", testHiDPIScale
+ }
sourceCompatibility = compile_source_compatibility
targetCompatibility = compile_target_compatibility
jvmArgs += additional_compiler_args
"Implementation-Version": JALVIEW_VERSION
}
- destinationDirectory = file("${jalviewDir}/${package_dir}")
+ def outputDir = "${jalviewDir}/${package_dir}"
+ destinationDirectory = file(outputDir)
archiveFileName = rootProject.name+".jar"
exclude "cache*/**"
sourceSets.main.resources.srcDirs.each{ dir ->
inputs.dir(dir)
}
- outputs.file("${destinationDirectory}/${archiveFileName}")
+ outputs.file("${outputDir}/${archiveFileName}")
}
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)
'BUNDLE_ID': install4jBundleId,
'INTERNAL_ID': install4jInternalId,
'WINDOWS_APPLICATION_ID': install4jWinApplicationId,
- 'MACOS_DS_STORE': install4jDSStore,
+ 'MACOS_DMG_DS_STORE': install4jDMGDSStore,
'MACOS_DMG_BG_IMAGE': install4jDMGBackgroundImage,
'INSTALLER_NAME': install4jInstallerName,
'INSTALL4J_UTILS_DIR': install4j_utils_dir,
'MAC_ICONS_FILE': install4jMacIconsFile,
'WINDOWS_ICONS_FILE': install4jWindowsIconsFile,
'PNG_ICON_FILE': install4jPngIconFile,
+ 'BACKGROUND': install4jBackground,
]