Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///////////////////////////////////////////////////////////////////////////
- /// Checker Framework pluggable type-checking
- ///
- apply plugin: 'java'
- repositories {
- mavenCentral()
- }
- configurations {
- checkerFrameworkCheckerJar {
- description = 'the Checker Framework, including the Type Annotations compiler'
- }
- checkerFrameworkAnnotatedJDK {
- description = 'a copy of JDK classes with Checker Framework type qualifers inserted'
- }
- }
- // Checker Framework from Maven Central
- dependencies {
- ext.checkerFrameworkVersion = '2.5.0'
- checkerFrameworkAnnotatedJDK "org.checkerframework:jdk8:${checkerFrameworkVersion}"
- checkerFrameworkCheckerJar "org.checkerframework:checker:${checkerFrameworkVersion}"
- implementation "org.checkerframework:checker-qual:${checkerFrameworkVersion}"
- }
- // Checker Framework from local build
- // dependencies {
- // ext.checkerframeworkdist = "$System.env.CHECKERFRAMEWORK/checker/dist"
- // checkerFrameworkAnnotatedJDK fileTree(dir: "${ext.checkerframeworkdist}", include: "jdk8.jar")
- // checkerFrameworkCheckerJar fileTree(dir: "${ext.checkerframeworkdist}", include: 'checker.jar')
- // compile fileTree(dir: "${ext.checkerframeworkdist}", include: 'checker-qual.jar')
- // }
- // // To type-check all projects.
- allprojects {
- tasks.withType(JavaCompile).all { JavaCompile compile ->
- compile.doFirst {
- compile.options.compilerArgs = [
- '-processorpath', "${configurations.checkerFrameworkCheckerJar.asPath}",
- '-processor', 'org.checkerframework.checker.formatter.FormatterChecker,org.checkerframework.checker.index.IndexChecker,org.checkerframework.checker.lock.LockChecker,org.checkerframework.checker.nullness.NullnessChecker,org.checkerframework.checker.signature.SignatureChecker',
- '-Xmaxerrs', '10000',
- '-Awarns', // turn Checker Framework errors into warnings
- '-AcheckPurityAnnotations',
- "-Xbootclasspath/p:${configurations.checkerFrameworkAnnotatedJDK.asPath}",
- "-Astubs=$System.env.CHECKERFRAMEWORK/checker/resources/javadoc.astub" // TODO: does not work when downloading from Maven Central
- ]
- }
- }
- }
- // To typecheck only the current project's main source set (in a multi-project
- // build), use this instead:
- // compileJava {
- // doFirst {
- // options.compilerArgs = [
- // '-processorpath', "${configurations.checkerFrameworkCheckerJar.asPath}",
- // '-processor', 'org.checkerframework.checker.nullness.NullnessChecker',
- // '-Xmaxerrs', '10000',
- // '-Xmaxwarns', '10000',
- // // '-Awarns', // turn Checker Framework errors into warnings
- // '-AcheckPurityAnnotations',
- // "-Xbootclasspath/p:${configurations.checkerFrameworkAnnotatedJDK.asPath}"
- // ]
- // }
- // }
Add Comment
Please, Sign In to add comment