X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=build.gradle;h=68d0c043bfaeb9bc90e7257b56ac6a8b35a27191;hb=384106be0a0d20f905a628eb602e0a7a408ef5c9;hp=431c67b3a7908b45ba0fbf8bdbfeb3bd8c5b6cbe;hpb=ef3fcd7746645316925b66c36cd56dd68b4a38b7;p=jalview.git diff --git a/build.gradle b/build.gradle index 431c67b..68d0c04 100644 --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,6 @@ +/* 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 import org.gradle.internal.os.OperatingSystem import org.gradle.plugins.ide.eclipse.model.Output @@ -127,19 +130,26 @@ ext { sourceDir = string("${jalviewDir}/${bareSourceDir}") resourceDir = string("${jalviewDir}/${resource_dir}") bareTestSourceDir = string(test_source_dir) - testSourceDir = string("${jalviewDir}/${bareTestSourceDir}") + testDir = string("${jalviewDir}/${bareTestSourceDir}") classesDir = string("${jalviewDir}/${classes_dir}") // clover useClover = clover.equals("true") - cloverInstrDir = file("${buildDir}/clover/${clover_sources_instr_dir}") - cloverClassesDir = file("${buildDir}/clover/${clover_classes_dir}") - cloverReportDir = file("${buildDir}/clover/${clover_report_dir}") - cloverDb = string("${buildDir}/clover/clover.db") + cloverBuildDir = "${buildDir}/clover" + cloverInstrDir = file("${cloverBuildDir}/clover-instr") + cloverClassesDir = file("${cloverBuildDir}/clover-classes") + cloverReportDir = file("${buildDir}/reports/clover") + cloverTestInstrDir = file("${cloverBuildDir}/clover-test-instr") + cloverTestClassesDir = file("${cloverBuildDir}/clover-test-classes") + //cloverTestClassesDir = cloverClassesDir + cloverDb = string("${cloverBuildDir}/clover.db") resourceClassesDir = useClover ? cloverClassesDir : classesDir + testSourceDir = useClover ? cloverTestInstrDir : testDir + testClassesDir = useClover ? cloverTestClassesDir : "${jalviewDir}/${test_output_dir}" + getdownWebsiteDir = string("${jalviewDir}/${getdown_website_dir}/${JAVA_VERSION}") buildDist = true @@ -186,10 +196,10 @@ ext { getdownChannelName = CHANNEL.toLowerCase()+"/${JALVIEW_VERSION}" getdownDir = string("${getdownChannelName}/${JAVA_VERSION}") getdownAppBase = string("${getdown_channel_base}/${getdownDir}") - if (!file("${ARCHIVEDIR}/${packageDir}").exists()) { + if (!file("${ARCHIVEDIR}/${package_dir}").exists()) { throw new GradleException("Must provide an ARCHIVEDIR value to produce an archive distribution") } else { - packageDir = string("${ARCHIVEDIR}/${packageDir}") + package_dir = string("${ARCHIVEDIR}/${package_dir}") buildProperties = string("${ARCHIVEDIR}/${classes_dir}/${build_properties_file}") buildDist = false } @@ -201,10 +211,10 @@ ext { getdownChannelName = string("archive/${JALVIEW_VERSION}") getdownDir = string("${getdownChannelName}/${JAVA_VERSION}") getdownAppBase = file(getdownWebsiteDir).toURI().toString() - if (!file("${ARCHIVEDIR}/${packageDir}").exists()) { + if (!file("${ARCHIVEDIR}/${package_dir}").exists()) { throw new GradleException("Must provide an ARCHIVEDIR value to produce an archive distribution") } else { - packageDir = string("${ARCHIVEDIR}/${packageDir}") + package_dir = string("${ARCHIVEDIR}/${package_dir}") buildProperties = string("${ARCHIVEDIR}/${classes_dir}/${build_properties_file}") buildDist = false } @@ -334,6 +344,7 @@ ext { //libDir = j8libDir libDir = j11libDir libDistDir = j8libDir + digestonlyDir = j8digestonlyDir compile_source_compatibility = 1.8 compile_target_compatibility = 1.8 // these are getdown.txt properties defined dependent on the JAVA_VERSION @@ -347,6 +358,7 @@ ext { JAVA_INTEGER_VERSION = string("11") libDir = j11libDir libDistDir = j11libDir + digestonlyDir = j11digestonlyDir compile_source_compatibility = 11 compile_target_compatibility = 11 getdownAltJavaMinVersion = string(findProperty("getdown_alt_java11_min_version")) @@ -447,7 +459,7 @@ sourceSets { srcDirs += helpParentDir } - jar.destinationDir = file("${jalviewDir}/${packageDir}") + jar.destinationDir = file("${jalviewDir}/${package_dir}") compileClasspath = files(sourceSets.main.java.outputDir) compileClasspath += fileTree(dir: "${jalviewDir}/${libDir}", include: ["*.jar"]) @@ -466,8 +478,10 @@ sourceSets { } compileClasspath = files( sourceSets.clover.java.outputDir ) + //compileClasspath += files( testClassesDir ) compileClasspath += fileTree(dir: "${jalviewDir}/${libDir}", include: ["*.jar"]) compileClasspath += fileTree(dir: "${jalviewDir}/${clover_lib_dir}", include: ["*.jar"]) + compileClasspath += fileTree(dir: "${jalviewDir}/${utils_dir}/testnglibs", include: ["**/*.jar"]) runtimeClasspath = compileClasspath } @@ -475,7 +489,7 @@ sourceSets { test { java { srcDirs testSourceDir - outputDir = file("${jalviewDir}/${test_output_dir}") + outputDir = file(testClassesDir) } resources { @@ -488,6 +502,7 @@ sourceSets { runtimeClasspath = compileClasspath } + } @@ -629,9 +644,19 @@ eclipse { // clover bits -task cloverInstr(type: JavaExec) { +task cleanClover { + doFirst { + delete cloverBuildDir + delete cloverReportDir + } +} + + +task cloverInstrJava(type: JavaExec) { group = "Verification" - description = "Create clover instrumented source files" + description = "Create clover instrumented source java files" + + dependsOn cleanClover inputs.files(sourceSets.main.allJava) outputs.dir(cloverInstrDir) @@ -658,34 +683,79 @@ task cloverInstr(type: JavaExec) { doFirst { delete cloverInstrDir - delete cloverDb println("Clover: About to instrument "+srcFiles.size() +" files") } } +task cloverInstrTests(type: JavaExec) { + group = "Verification" + description = "Create clover instrumented source test files" + + dependsOn cleanClover + + inputs.files(testDir) + outputs.dir(cloverTestInstrDir) + + classpath = sourceSets.clover.compileClasspath + main = "com.atlassian.clover.CloverInstr" + + def argsList = [ + "--encoding", + "UTF-8", + "--initstring", + cloverDb, + "--srcdir", + testDir, + "--destdir", + cloverTestInstrDir.getPath(), + ] + args argsList.toArray() + + doFirst { + delete cloverTestInstrDir + println("Clover: About to instrument test files") + } +} + + +task cloverInstr { + group = "Verification" + description = "Create clover instrumented all source files" + + dependsOn cloverInstrJava + dependsOn cloverInstrTests +} + + cloverClasses.dependsOn cloverInstr -task cloverXmlReport(type: JavaExec) { +task cloverConsoleReport(type: JavaExec) { group = "Verification" - description = "Creates clover XML report" + description = "Creates clover console report" - inputs.dir cloverClassesDir - outputs.dir cloverReportDir onlyIf { file(cloverDb).exists() } + inputs.dir cloverClassesDir + classpath = sourceSets.clover.runtimeClasspath - main = "com.atlassian.clover.reporters.xml.XMLReporter" + main = "com.atlassian.clover.reporters.console.ConsoleReporter" + + if (cloverreport_mem.length() > 0) { + maxHeapSize = cloverreport_mem + } + if (cloverreport_jvmargs.length() > 0) { + jvmArgs Arrays.asList(cloverreport_jvmargs.split(" ")) + } def argsList = [ "--alwaysreport", "--initstring", cloverDb, - "--outfile", - "${cloverReportDir}/clover.xml" + "--unittests" ] args argsList.toArray() @@ -696,23 +766,74 @@ task cloverHtmlReport(type: JavaExec) { group = "Verification" description = "Creates clover HTML report" - inputs.dir cloverClassesDir - outputs.dir cloverReportDir onlyIf { file(cloverDb).exists() } + def cloverHtmlDir = cloverReportDir + inputs.dir cloverClassesDir + outputs.dir cloverHtmlDir + classpath = sourceSets.clover.runtimeClasspath main = "com.atlassian.clover.reporters.html.HtmlReporter" + if (cloverreport_mem.length() > 0) { + maxHeapSize = cloverreport_mem + } + if (cloverreport_jvmargs.length() > 0) { + jvmArgs Arrays.asList(cloverreport_jvmargs.split(" ")) + } + def argsList = [ "--alwaysreport", "--initstring", cloverDb, "--outputdir", - "${cloverReportDir}/clover" + cloverHtmlDir + ] + + if (cloverreport_html_options.length() > 0) { + argsList += cloverreport_html_options.split(" ") + } + + args argsList.toArray() +} + + +task cloverXmlReport(type: JavaExec) { + group = "Verification" + description = "Creates clover XML report" + + onlyIf { + file(cloverDb).exists() + } + + def cloverXmlFile = "${cloverReportDir}/clover.xml" + inputs.dir cloverClassesDir + outputs.file cloverXmlFile + + classpath = sourceSets.clover.runtimeClasspath + main = "com.atlassian.clover.reporters.xml.XMLReporter" + + if (cloverreport_mem.length() > 0) { + maxHeapSize = cloverreport_mem + } + if (cloverreport_jvmargs.length() > 0) { + jvmArgs Arrays.asList(cloverreport_jvmargs.split(" ")) + } + + def argsList = [ + "--alwaysreport", + "--initstring", + cloverDb, + "--outfile", + cloverXmlFile ] + if (cloverreport_xml_options.length() > 0) { + argsList += cloverreport_xml_options.split(" ") + } + args argsList.toArray() } @@ -734,14 +855,7 @@ compileCloverJava { options.compilerArgs += additional_compiler_args print ("Setting target compatibility to "+targetCompatibility+"\n") } - classpath += configurations.cloverRuntime -} - - -task cleanClover { - doFirst { - delete "${buildDir/clover}" - } + //classpath += configurations.cloverRuntime } // end clover bits @@ -943,11 +1057,12 @@ task prepare { //testReportDirName = "test-reports" // note that test workingDir will be $jalviewDir test { dependsOn prepare + //dependsOn compileJava ////? DELETE if (useClover) { dependsOn cloverClasses - } else { - dependsOn compileJava + } else { //? + dependsOn compileJava //? } useTestNG() { @@ -977,7 +1092,7 @@ test { doFirst { if (useClover) { - print("Running tests " + (useClover?"WITH":"WITHOUT") + " clover [clover="+useClover+"]\n") + println("Running tests " + (useClover?"WITH":"WITHOUT") + " clover") } } } @@ -1046,7 +1161,7 @@ ant.importBuild "${utils_dir}/publishHelp.xml" task cleanPackageDir(type: Delete) { doFirst { - delete fileTree(dir: "${jalviewDir}/${packageDir}", include: "*.jar") + delete fileTree(dir: "${jalviewDir}/${package_dir}", include: "*.jar") } } @@ -1062,7 +1177,7 @@ jar { "Codebase": application_codebase } - destinationDir = file("${jalviewDir}/${packageDir}") + destinationDir = file("${jalviewDir}/${package_dir}") archiveName = rootProject.name+".jar" exclude "cache*/**" @@ -1072,20 +1187,20 @@ jar { exclude "**/*.jar.*" inputs.dir(classesDir) - outputs.file("${jalviewDir}/${packageDir}/${archiveName}") + outputs.file("${jalviewDir}/${package_dir}/${archiveName}") } task copyJars(type: Copy) { from fileTree(dir: classesDir, include: "**/*.jar").files - into "${jalviewDir}/${packageDir}" + into "${jalviewDir}/${package_dir}" } // doing a Sync instead of Copy as Copy doesn't deal with "outputs" very well task syncJars(type: Sync) { from fileTree(dir: "${jalviewDir}/${libDistDir}", include: "**/*.jar").files - into "${jalviewDir}/${packageDir}" + into "${jalviewDir}/${package_dir}" preserve { include jar.archiveName } @@ -1101,7 +1216,7 @@ task makeDist { dependsOn cleanPackageDir dependsOn syncJars dependsOn jar - outputs.dir("${jalviewDir}/${packageDir}") + outputs.dir("${jalviewDir}/${package_dir}") } @@ -1214,7 +1329,7 @@ task getdownWebsite() { } def codeFiles = [] - fileTree(file(packageDir)).each{ f -> + fileTree(file(package_dir)).each{ f -> if (f.isDirectory()) { def files = fileTree(dir: f, include: ["*"]).getFiles() codeFiles += files @@ -1232,6 +1347,16 @@ task getdownWebsite() { } } + fileTree(dir: digestonlyDir, include: ["*"]).getFiles().sort().each{f -> + def name = f.getName() + def line = "digestonly = ${getdownAppDistDir}/${name}\n" + getdownTextString += line + copy { + from f.getPath() + into getdownAppDir + } + } + // NOT USING MODULES YET, EVERYTHING SHOULD BE IN dist /* if (JAVA_VERSION.equals("11")) { @@ -1251,7 +1376,11 @@ task getdownWebsite() { // getdown-launcher.jar should not be in main application class path so the main application can move it when updated. Listed as a resource so it gets updated. //getdownTextString += "class = " + file(getdownLauncher).getName() + "\n" getdownTextString += "resource = ${getdown_launcher_new}\n" - getdownTextString += "class = ${mainClass}\n" + getdownTextString += "class = ${main_class}\n" + /* NOT setting these properties so that getdownappbase and getdowndistdir will default to release version + * getdownTextString += "jvmarg = -Dgetdowndistdir=${getdownAppDistDir}\n" + * getdownTextString += "jvmarg = -Dgetdownappbase=${getdownAppBase}\n" + */ def getdown_txt = file("${getdownWebsiteDir}/getdown.txt") getdown_txt.write(getdownTextString) @@ -1278,7 +1407,7 @@ task getdownWebsite() { copy { from getdown_txt from getdownLauncher - from "${getdownWebsiteDir}/${getdown_build_properties}" + from "${getdownAppDir}/${getdown_build_properties}" if (file(getdownLauncher).getName() != getdown_launcher) { rename(file(getdownLauncher).getName(), getdown_launcher) } @@ -1309,7 +1438,7 @@ task getdownWebsite() { } if (buildDist) { - inputs.dir("${jalviewDir}/${packageDir}") + inputs.dir("${jalviewDir}/${package_dir}") } outputs.dir(getdownWebsiteDir) outputs.dir(getdownFilesDir)