+++ /dev/null
-/* Convention for properties. Read from gradle.properties, use lower_case_underlines for property names.
- * For properties set within build.gradle, use camelCaseNoSpace.
- */
-import org.apache.tools.ant.filters.ReplaceTokens
-
-
-
-
-plugins {
- id 'java'
-}
-
-
-
-// in ext the values are cast to Object. Ensure string values are cast as String (and not GStringImpl) for later use
-def string(Object o) {
- return o == null ? "" : o.toString()
-}
-
-
-ext {
- jalviewDirAbsolutePath = file(jalviewDir).getAbsolutePath()
- jalviewDirRelativePath = jalviewDir
-
-
- ////
- // Import releaseProps from the RELEASE file
- // or a file specified via JALVIEW_RELEASE_FILE if defined
- // Expect jalview.version and target release branch in jalview.release
- def releaseProps = new Properties();
- def releasePropFile = findProperty("JALVIEW_RELEASE_FILE");
- def defaultReleasePropFile = "${jalviewDirAbsolutePath}/RELEASE";
- try {
- (new File(releasePropFile!=null ? releasePropFile : defaultReleasePropFile)).withInputStream {
- releaseProps.load(it)
- }
- } catch (Exception fileLoadError) {
- throw new Error("Couldn't load release properties file "+(releasePropFile==null ? defaultReleasePropFile : "from custom location: releasePropFile"),fileLoadError);
- }
- ////
- // Set JALVIEW_VERSION if it is not already set
- if (findProperty("JALVIEW_VERSION")==null || "".equals(JALVIEW_VERSION)) {
- JALVIEW_VERSION = releaseProps.get("jalview.version")
- }
-
-
- // essentials
- bareSourceDir = string(source_dir)
- sourceDir = string("${jalviewDir}/${bareSourceDir}")
- resourceDir = string("${jalviewDir}/${resource_dir}")
- bareTestSourceDir = string(test_source_dir)
- testDir = string("${jalviewDir}/${bareTestSourceDir}")
-
- classesDir = string("${jalviewDir}/${classes_dir}")
-
-
- resourceClassesDir = classesDir
-
- testSourceDir = testDir
- testClassesDir = "${jalviewDir}/${test_output_dir}"
-
- buildProperties = string("${classesDir}/${build_properties_file}")
- gitHash = string("")
- gitBranch = string("")
-
- println("Using a ${CHANNEL} profile.")
-
- additional_compiler_args = []
- // configure classpath/args for j8/j11 compilation
- if (JAVA_VERSION.equals("1.8")) {
- JAVA_INTEGER_VERSION = string("8")
- //libDir = j8libDir
- libDir = j11libDir
- libDistDir = j8libDir
- compile_source_compatibility = 1.8
- compile_target_compatibility = 1.8
- } else if (JAVA_VERSION.equals("11")) {
- JAVA_INTEGER_VERSION = string("11")
- libDir = j11libDir
- libDistDir = j11libDir
- compile_source_compatibility = 11
- compile_target_compatibility = 11
- } else if (JAVA_VERSION.equals("12") || JAVA_VERSION.equals("13")) {
- JAVA_INTEGER_VERSION = JAVA_VERSION
- libDir = j11libDir
- libDistDir = j11libDir
- compile_source_compatibility = JAVA_VERSION
- compile_target_compatibility = JAVA_VERSION
- } else {
- throw new GradleException("JAVA_VERSION=${JAVA_VERSION} not currently supported by Jalview")
- }
-
-
-
-
- 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}")
-
-
- // ENDEXT
-}
-
-
-sourceSets {
- main {
- java {
- srcDirs sourceDir
- outputDir = file(classesDir)
- }
-
- resources {
- srcDirs resourceDir
- srcDirs += helpParentDir
- }
-
- jar.destinationDir = file("${jalviewDir}/${package_dir}")
-
- compileClasspath = files(sourceSets.main.java.outputDir)
- compileClasspath += fileTree(dir: "${jalviewDir}/${libDir}", include: ["*.jar"])
-
- runtimeClasspath = compileClasspath
- }
-
- test {
- java {
- srcDirs testSourceDir
- outputDir = file(testClassesDir)
- }
-
- resources {
- srcDirs = sourceSets.main.resources.srcDirs
- }
-
- compileClasspath = files( sourceSets.test.java.outputDir )
- compileClasspath += sourceSets.main.compileClasspath
- compileClasspath += fileTree(dir: "${jalviewDir}/${utils_dir}/testnglibs", include: ["**/*.jar"])
-
- runtimeClasspath = compileClasspath
- }
-
-}
-
-
-
-
-compileJava {
-
- doFirst {
- sourceCompatibility = compile_source_compatibility
- targetCompatibility = compile_target_compatibility
- options.compilerArgs = additional_compiler_args
- print ("Setting target compatibility to "+targetCompatibility+"\n")
- }
-
-}
-
-
-compileTestJava {
- doFirst {
- sourceCompatibility = compile_source_compatibility
- targetCompatibility = compile_target_compatibility
- options.compilerArgs = additional_compiler_args
- print ("Setting target compatibility to "+targetCompatibility+"\n")
- }
-}
-
-
-clean {
- doFirst {
- delete sourceSets.main.java.outputDir
- }
-}
-
-
-cleanTest {
- doFirst {
- delete sourceSets.test.java.outputDir
- }
-}
-
-
-// format is a string like date.format("dd MMMM yyyy")
-def getDate(format) {
- def date = new Date()
- return date.format(format)
-}
-
-
-task setGitVals {
- def hashStdOut = new ByteArrayOutputStream()
- exec {
- commandLine "git", "rev-parse", "--short", "HEAD"
- standardOutput = hashStdOut
- ignoreExitValue true
- }
-
- def branchStdOut = new ByteArrayOutputStream()
- exec {
- commandLine "git", "rev-parse", "--abbrev-ref", "HEAD"
- standardOutput = branchStdOut
- ignoreExitValue true
- }
-
- gitHash = hashStdOut.toString().trim()
- gitBranch = branchStdOut.toString().trim()
-
- outputs.upToDateWhen { false }
-}
-
-
-task createBuildProperties(type: WriteProperties) {
- dependsOn setGitVals
- 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)
-}
-
-
-task cleanBuildingHTML(type: Delete) {
- doFirst {
- delete buildingHTML
- }
-}
-
-
-task convertBuildingMD(type: Exec) {
- dependsOn cleanBuildingHTML
- def buildingMD = "${jalviewDir}/${doc_dir}/building.md"
- def css = "${jalviewDir}/${doc_dir}/github.css"
-
- def pandoc = null
- pandoc_exec.split(",").each {
- if (file(it.trim()).exists()) {
- pandoc = it.trim()
- return true
- }
- }
-
- def hostname = "hostname".execute().text.trim()
- def buildtoolsPandoc = System.getProperty("user.home")+"/buildtools/pandoc/bin/pandoc"
- if ((pandoc == null || ! file(pandoc).exists()) && file(buildtoolsPandoc).exists()) {
- pandoc = System.getProperty("user.home")+"/buildtools/pandoc/bin/pandoc"
- }
-
- doFirst {
- if (pandoc != null && file(pandoc).exists()) {
- commandLine pandoc, '-s', '-o', buildingHTML, '--metadata', 'pagetitle="Building Jalview from Source"', '--toc', '-H', css, buildingMD
- } else {
- println("Cannot find pandoc. Skipping convert building.md to HTML")
- throw new StopExecutionException("Cannot find pandoc. Skipping convert building.md to HTML")
- }
- }
-
- ignoreExitValue true
-
- inputs.file(buildingMD)
- inputs.file(css)
- outputs.file(buildingHTML)
-}
-
-
-clean {
- doFirst {
- delete buildingHTML
- }
-}
-
-
-task syncDocs(type: Sync) {
- dependsOn convertBuildingMD
- def syncDir = "${resourceClassesDir}/${doc_dir}"
- from fileTree("${jalviewDir}/${doc_dir}")
- into syncDir
-
-}
-
-
-task copyHelp(type: Copy) {
- def inputDir = helpSourceDir
- def outputDir = "${resourceClassesDir}/${help_dir}"
- from(inputDir) {
- exclude '**/*.gif'
- exclude '**/*.jpg'
- exclude '**/*.png'
- filter(ReplaceTokens,
- beginToken: '$$',
- endToken: '$$',
- tokens: [
- 'Version-Rel': JALVIEW_VERSION,
- 'Year-Rel': getDate("yyyy")
- ]
- )
- }
- from(inputDir) {
- include '**/*.gif'
- include '**/*.jpg'
- include '**/*.png'
- }
- into outputDir
-
- inputs.dir(inputDir)
- outputs.files(helpFile)
- outputs.dir(outputDir)
-}
-
-
-task syncResources(type: Sync) {
- from resourceDir
- include "**/*.*"
- into "${resourceClassesDir}"
- preserve {
- include "**"
- }
-}
-
-
-task prepare {
- dependsOn syncResources
- dependsOn syncDocs
- dependsOn copyHelp
-}
-
-
-//testReportDirName = "test-reports" // note that test workingDir will be $jalviewDir
-test {
- dependsOn prepare
- //dependsOn compileJava ////? DELETE
-
- dependsOn compileJava //?
-
- useTestNG() {
- includeGroups testng_groups
- excludeGroups testng_excluded_groups
- preserveOrder true
- useDefaultListeners=true
- }
-
- 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}'")
- 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
-
- doFirst {
- }
-}
-
-
-task buildIndices(type: JavaExec) {
- dependsOn copyHelp
- classpath = sourceSets.main.compileClasspath
- main = "com.sun.java.help.search.Indexer"
- workingDir = "${classesDir}/${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}")
- destinationDir = file("${jalviewDir}/${utils_dir}")
- source = fileTree(dir: "${jalviewDir}/${utils_dir}", include: ["HelpLinksChecker.java", "BufferedLineReader.java"])
-
- inputs.file("${jalviewDir}/${utils_dir}/HelpLinksChecker.java")
- inputs.file("${jalviewDir}/${utils_dir}/HelpLinksChecker.java")
- outputs.file("${jalviewDir}/${utils_dir}/HelpLinksChecker.class")
- outputs.file("${jalviewDir}/${utils_dir}/BufferedLineReader.class")
-}
-
-
-task linkCheck(type: JavaExec) {
- dependsOn prepare, compileLinkCheck
-
- def helpLinksCheckerOutFile = file("${jalviewDir}/${utils_dir}/HelpLinksChecker.out")
- classpath = files("${jalviewDir}/${utils_dir}")
- main = "HelpLinksChecker"
- workingDir = jalviewDir
- args = [ "${classesDir}/${help_dir}", "-nointernet" ]
-
- def outFOS = new FileOutputStream(helpLinksCheckerOutFile, false) // false == don't append
- def errFOS = outFOS
- standardOutput = new org.apache.tools.ant.util.TeeOutputStream(
- outFOS,
- standardOutput)
- errorOutput = new org.apache.tools.ant.util.TeeOutputStream(
- outFOS,
- errorOutput)
-
- inputs.dir("${classesDir}/${help_dir}")
- outputs.file(helpLinksCheckerOutFile)
-}
-
-// import the pubhtmlhelp target
-ant.properties.basedir = "${jalviewDir}"
-ant.properties.helpBuildDir = "${jalviewDirAbsolutePath}/${classes_dir}/${help_dir}"
-ant.importBuild "${utils_dir}/publishHelp.xml"
-
-
-task cleanPackageDir(type: Delete) {
- doFirst {
- delete fileTree(dir: "${jalviewDir}/${package_dir}", include: "*.jar")
- }
-}
-
-jar {
- dependsOn linkCheck
- dependsOn buildIndices
- dependsOn createBuildProperties
-
- manifest {
- attributes "Main-Class": main_class,
- "Permissions": "all-permissions",
- "Application-Name": "Jalview Desktop",
- "Codebase": application_codebase
- }
-
- destinationDir = file("${jalviewDir}/${package_dir}")
- archiveName = rootProject.name+".jar"
-
- exclude "cache*/**"
- exclude "*.jar"
- exclude "*.jar.*"
- exclude "**/*.jar"
- exclude "**/*.jar.*"
-
- inputs.dir(classesDir)
- outputs.file("${jalviewDir}/${package_dir}/${archiveName}")
-}