Skip to content
Snippets Groups Projects
Select Git revision
  • 8b85b75b4b47abd7f8d4861a0ba96735b2b101a4
  • master default protected
  • artefact-eval
  • modelica
  • visibilityscopes
  • scopetree
  • similarCfg
  • wip-reusable
8 results

build.gradle

Blame
  • build.gradle 7.95 KiB
    buildscript {
        repositories.mavenLocal()
        repositories.mavenCentral()
        dependencies {
            classpath 'org.jastadd:jastaddgradle:1.13.3'
        }
    }
    
    apply plugin: 'java'
    apply plugin: 'application'
    apply plugin: 'jastadd'
    apply plugin: 'idea'
    
    repositories {
        mavenLocal()
    }
    
    idea {
        module {
            generatedSourceDirs += file('./src/gen/java')
            sourceDirs += file('../extendj/src/frontend')
            sourceDirs += file('../extendj/src/frontend-main')
        }
    }
    
    test {
        useJUnitPlatform {}
    }
    
    sourceSets.main {
        java {
    
            srcDirs "src/gen/java"
            srcDirs '../extendj/src/frontend'
            srcDirs '../extendj/src/frontend-main'
        }
        resources {
            srcDir '../extendj/src/res'
            srcDir jastadd.buildInfoDir
        }
    }
    
    configurations {
        ragdoc
    }
    
    dependencies {
        testImplementation 'org.junit.jupiter:junit-jupiter-api:5.4.2'
        testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.4.2'
        testCompile 'org.junit.platform:junit-platform-runner:1.4.2'
        testImplementation 'org.junit.jupiter:junit-jupiter-params:5.4.2'
    
        ragdoc files('../tools/rd-builder.jar')
    }
    
    jastadd {
        configureModuleBuild()
    
        modules {
    
            include("../extendj/jastadd_modules")
    
            module "scope-analysis", {
    
                imports "java8 frontend"
    
                jastadd {
                    basedir ".."
                    include "scope4j/src/gen/jastadd/Java.ast"
                    include "scope4j/src/gen/jastadd/Java.jadd"
                    include "scope4j/src/main/jastadd/*.jrag"
                    include "scope4j/src/main/jastadd/*.jadd"
                    include "scope/src/main/jastadd/*.jrag"
                    include "scope/src/main/jastadd/*.jadd"
    
                    excludeFrom "java8 frontend", "grammar/ConstructorReference.ast"
                    excludeFrom "java8 frontend", "grammar/IntersectionCasts.ast"
                    excludeFrom "java8 frontend", "grammar/Lambda.ast"
                    excludeFrom "java8 frontend", "grammar/LambdaAnonymousDecl.ast"
                    excludeFrom "java8 frontend", "grammar/MethodReference.ast"
                    // excludeFrom "java7 frontend", "grammar/BasicTWR.ast"
                    excludeFrom "java7 frontend", "grammar/Diamond.ast"
                    excludeFrom "java7 frontend", "grammar/Literals.ast"
                    excludeFrom "java7 frontend", "grammar/MultiCatch.ast"
                    excludeFrom "java7 frontend", "grammar/TryWithResources.ast"
                    excludeFrom "java5 frontend", "grammar/Annotations.ast"
                    excludeFrom "java5 frontend", "grammar/EnhancedFor.ast"
                    excludeFrom "java5 frontend", "grammar/Enums.ast"
                    excludeFrom "java5 frontend", "grammar/GenericMethods.ast"
                    excludeFrom "java5 frontend", "grammar/Generics.ast"
                    excludeFrom "java5 frontend", "grammar/StaticImports.ast"
                    excludeFrom "java5 frontend", "grammar/VariableArityParameters.ast"
                    excludeFrom "java4 frontend", "grammar/BoundNames.ast"
                    excludeFrom "java4 frontend", "grammar/Java.ast"
                    excludeFrom "java4 frontend", "grammar/Literals.ast"
                    excludeFrom "java4 frontend", "grammar/NTAFinally.ast"
    
                    excludeFrom "java7 frontend", "frontend/JavaVersion.jrag"
    
                    excludeFrom "java5 frontend", "frontend/BytecodeReader.jrag"
                    excludeFrom "java7 frontend", "frontend/Variable.jadd"
                }
    
                java {
                    basedir "src/main/java/"
                    include "**/*.java"
                }
    
            }
    
        }
    
    
        // Target module to build:
        module = 'scope-analysis'
    
        astPackage = 'org.extendj.ast'
        parser.name = 'JavaParser'
        scanner.name = 'OriginalScanner'
    
        genDir = 'src/gen/java'
    
        parser.genDir = 'src/gen/java/org/extendj/parser'
        scanner.genDir = 'src/gen/java/org/extendj/scanner'
    
        parser.genDir = 'src/gen/java/org/extendj/parser'
        scanner.genDir = 'src/gen/java/org/extendj/scanner'
    //
    //	if (project.hasProperty('extraJastAddOptions')) {
    //		extraJastAddOptions += project.extraJastAddOptions.split(',') as List
    //		print("options: ${extraJastAddOptions}")
    //	}
    
    //	jastaddOptions = [ "--rewrite=cnta", "--safeLazy", "--tracing=all" ]
        jastaddOptions = ["--rewrite=cnta", "--safeLazy", "--tracing=api", "--visitCheck=false"]
    
    //	jastaddOptions = [ "--concurrent", "--rewrite=cnta", "--safeLazy" ]
    //	jastaddOptions = [ "--concurrent", "--rewrite=cnta", "--safeLazy", "--cache=all" ]
    }
    
    run {
        mainClassName = 'org.extendj.ScopeAnalysis'
    }
    
    task preprocess(type: JavaExec) {
        group = 'Build'
        main = "-jar"
    
        doFirst {
            delete "src/gen/jastadd"
            mkdir "src/gen/jastadd"
        }
    
        args = [
                "../tools/relast.jar",
                "src/main/jastadd/ProgramToScopeTree.relast",
                "../scope/src/main/jastadd/ScopeTree.relast",
                "../extendj/java8/grammar/ConstructorReference.ast",
                "../extendj/java8/grammar/IntersectionCasts.ast",
                "../extendj/java8/grammar/Lambda.ast",
                "../extendj/java8/grammar/LambdaAnonymousDecl.ast",
                "../extendj/java8/grammar/MethodReference.ast",
    //			"../extendj/java7/grammar/BasicTWR.ast",
                "../extendj/java7/grammar/Diamond.ast",
                "../extendj/java7/grammar/Literals.ast",
                "../extendj/java7/grammar/MultiCatch.ast",
                "../extendj/java7/grammar/TryWithResources.ast",
                "../extendj/java5/grammar/Annotations.ast",
                "../extendj/java5/grammar/EnhancedFor.ast",
                "../extendj/java5/grammar/Enums.ast",
                "../extendj/java5/grammar/GenericMethods.ast",
                "../extendj/java5/grammar/Generics.ast",
                "../extendj/java5/grammar/StaticImports.ast",
                "../extendj/java5/grammar/VariableArityParameters.ast",
                "../extendj/java4/grammar/BoundNames.ast",
                "../extendj/java4/grammar/Java.ast",
                "../extendj/java4/grammar/Literals.ast",
                "../extendj/java4/grammar/NTAFinally.ast",
    
                "--listClass=ArrayList",
    //			"--jastAddList=JastAddList",
    //			"--serializer=jackson",
                "--useJastAddNames",
                "--file",
    //			"--resolverHelper",
                "--grammarName=src/gen/jastadd/Java"
        ]
    
        inputs.files file("../extendj/java8/grammar/ConstructorReference.ast"),
                file("src/main/jastadd/ProgramToScopeTree.relast"),
                file("../scope/src/main/jastadd/ScopeTree.relast"),
                file("../extendj/java8/grammar/IntersectionCasts.ast"),
                file("../extendj/java8/grammar/Lambda.ast"),
                file("../extendj/java8/grammar/LambdaAnonymousDecl.ast"),
                file("../extendj/java8/grammar/MethodReference.ast"),
                file("../extendj/java7/grammar/BasicTWR.ast"),
                file("../extendj/java7/grammar/Diamond.ast"),
                file("../extendj/java7/grammar/Literals.ast"),
                file("../extendj/java7/grammar/MultiCatch.ast"),
                file("../extendj/java7/grammar/TryWithResources.ast"),
                file("../extendj/java5/grammar/Annotations.ast"),
                file("../extendj/java5/grammar/EnhancedFor.ast"),
                file("../extendj/java5/grammar/Enums.ast"),
                file("../extendj/java5/grammar/GenericMethods.ast"),
                file("../extendj/java5/grammar/Generics.ast"),
                file("../extendj/java5/grammar/StaticImports.ast"),
                file("../extendj/java5/grammar/VariableArityParameters.ast"),
                file("../extendj/java4/grammar/BoundNames.ast"),
                file("../extendj/java4/grammar/Java.ast"),
                file("../extendj/java4/grammar/Literals.ast"),
                file("../extendj/java4/grammar/NTAFinally.ast"),
                file("../tools/relast.jar")
        outputs.files file("src/gen/jastadd/Java.ast"),
                file("src/gen/jastadd/Java.jadd")
    }
    
    
    generateAst.dependsOn preprocess
    
    mainClassName = 'org.extendj.ScopeAnalysis'
    jar.manifest.attributes 'Main-Class': mainClassName
    jar.destinationDirectory = projectDir
    
    sourceCompatibility = '1.8'
    targetCompatibility = '1.8'