From: Ben Soares Date: Sat, 6 Feb 2021 18:19:17 +0000 (+0000) Subject: JAL-3251 debian build using maven, simplified build.gradle not needed X-Git-Tag: Release_2_11_1_4~9^2~7 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=56f393f1fd0a054020ebb9f7af5b1516e256de88;p=jalview.git JAL-3251 debian build using maven, simplified build.gradle not needed --- diff --git a/utils/debian/build.gradle.debian b/utils/debian/build.gradle.debian deleted file mode 100644 index 042baf5..0000000 --- a/utils/debian/build.gradle.debian +++ /dev/null @@ -1,461 +0,0 @@ -/* 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}") -}