X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=build.gradle;h=d5b39e34fd95c2bcb026dcbab4dd2fee31402a43;hb=5cc5673efcc20706151f03e105a51c3130345a18;hp=147c2ef62d082d4bd63a4996b179fac03b19ed5e;hpb=e9b093e0c0c754764efc099e23b96095817581d1;p=jalview.git diff --git a/build.gradle b/build.gradle index 147c2ef..d5b39e3 100644 --- a/build.gradle +++ b/build.gradle @@ -57,24 +57,13 @@ 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(String propsFileName, boolean output = false) { + if (propsFileName == null) { + return } - 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) @@ -82,18 +71,43 @@ ext { 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", "jalviewjs", "jalviewjs-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 @@ -172,21 +186,26 @@ 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 - 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_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": @@ -202,12 +221,10 @@ ext { install4jExtraScheme = "jalviewb" break - case "RELEASE": + case [ "RELEASE", "JALVIEWJS-RELEASE" ]: getdownAppDistDir = getdown_app_dir_release reportRsyncCommand = true install4jSuffix = "" - install4jDSStore = "DS_Store" - install4jDMGBackgroundImage = "jalview_dmg_background.png" install4jInstallerName = "${jalview_name} Installer" break @@ -249,19 +266,9 @@ 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": @@ -273,8 +280,6 @@ ext { } 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 @@ -298,13 +303,11 @@ ext { } 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 - case "LOCAL": + case [ "LOCAL", "JALVIEWJS" ]: JALVIEW_VERSION = "TEST" getdownAppBase = file(getdownWebsiteDir).toURI().toString() getdownLauncher = string("${jalviewDir}/${getdown_lib_dir}/${getdown_launcher_local}") @@ -318,7 +321,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 +458,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}") @@ -1177,6 +1188,9 @@ 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) { @@ -1205,6 +1219,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 @@ -1243,12 +1270,16 @@ task buildIndices(type: JavaExec) { outputs.file("${workingDir}/JavaHelpSearch/TMAP") } +task buildResources { + dependsOn copyResources + dependsOn copyChannelResources + dependsOn createBuildProperties +} task prepare { - dependsOn copyResources + dependsOn buildResources dependsOn copyDocs dependsOn copyHelp - dependsOn createBuildProperties dependsOn convertMdFiles dependsOn buildIndices } @@ -1473,6 +1504,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) @@ -1840,7 +1879,7 @@ task installers(type: com.install4j.gradle.Install4jTask) { '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, @@ -1857,6 +1896,11 @@ 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, + 'BACKGROUND': install4jBackground, + ] //println("INSTALL4J VARIABLES:") @@ -2273,7 +2317,9 @@ task jalviewjsSyncAllLibs (type: Sync) { task jalviewjsSyncResources (type: Sync) { - def inputFiles = fileTree(dir: resourceDir) + dependsOn buildResources + + def inputFiles = fileTree(dir: resourcesBuildDir) def outputDir = "${jalviewDir}/${jalviewjsSiteDir}/${jalviewjs_j2s_subdir}" from inputFiles