build.gradle revision 7d1263a4ff78ce92b2008e4664fb855f7d03da87
13f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopianconfigurations { 23f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian antlr3 33f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 43f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian jflex 53f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian} 63f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 73f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopianext.antlrSource = 'src/main/antlr3' 83f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopianext.antlrOutput = file(new File(buildDir, '/generated-sources/antlr3')) 93f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 103f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopianext.jflexSource = "src/main/jflex" 113f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopianext.jflexOutput = file(new File(buildDir, '/generated-sources/jflex')) 123f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 133f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopianext.testAntlrSource = 'src/test/antlr3' 143f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopianext.testAntlrOutput = file(new File(buildDir, '/generated-test-sources/antlr3')) 153f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 163f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias AgopiansourceSets.main.java.srcDir antlrOutput 173f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias AgopiansourceSets.main.java.srcDir jflexOutput 183f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 193f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias AgopiansourceSets.test.java.srcDir testAntlrOutput 20458197de008be8fe561286b09f4edddb2f5c540aMathias Agopian 213f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopiandependencies { 22c18790018be5d7ea7061ccbc81f3044e74adc823Dan Stoza compile project(':util') 23c18790018be5d7ea7061ccbc81f3044e74adc823Dan Stoza compile project(':dexlib') 243f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian compile 'org.antlr:antlr-runtime:3.2' 253f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian compile 'commons-cli:commons-cli:1.2' 263f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 273f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian testCompile 'junit:junit:4.6' 28c3ebe66b49cfba035e1fd0e160a13db38eb81b0eRiley Andrews 29c3ebe66b49cfba035e1fd0e160a13db38eb81b0eRiley Andrews antlr3 'org.antlr:antlr:3.2' 303f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian jflex 'de.jflex:jflex:1.4.3' 313f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian} 323f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 333f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopiantask generateAntlrSource { 343f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian inputs.dir file(antlrSource) 353f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian outputs.dir file(antlrOutput) 3649457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian doLast { 373f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian mkdir(antlrOutput) 383f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 393f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian def grammars = fileTree(antlrSource).include('**/*.g') 403f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 413f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian ant.java(classname: 'org.antlr.Tool', classpath: configurations.antlr3.asPath, fork: true) { 42ff2ed70fa30f04b90dd1a2c06ec2319e157152d7Mathias Agopian arg(line: '-fo ' + antlrOutput + '/org/jf/smali') 43ff2ed70fa30f04b90dd1a2c06ec2319e157152d7Mathias Agopian arg(line: grammars.files.join(" ")) 443f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian } 453f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian } 463f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian} 473f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 483f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopiantask generateTestAntlrSource { 493f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian inputs.dir file(testAntlrSource) 503f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian outputs.dir file(testAntlrOutput) 513f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian doLast { 523f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian mkdir(testAntlrOutput) 533f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 543f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian def grammars = fileTree(testAntlrSource).include('**/*.g') 553f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 563f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian ant.java(classname: 'org.antlr.Tool', classpath: configurations.antlr3.asPath, fork: true) { 57c6f216955966e93ea983ba800e651af3de6c90e3Andy McFadden arg(line: '-fo ' + testAntlrOutput + '/org/jf/smali') 583f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian arg(line: grammars.files.join(" ")) 593f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian } 603f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian } 613f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian} 623f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 633f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopiantask generateJflexSource { 643f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian inputs.dir file(jflexSource) 653f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian outputs.dir file(jflexOutput) 66ff2ed70fa30f04b90dd1a2c06ec2319e157152d7Mathias Agopian doLast { 67ff2ed70fa30f04b90dd1a2c06ec2319e157152d7Mathias Agopian mkdir(jflexOutput) 683f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 693f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian def grammars = fileTree(jflexSource).include('**/*.flex') 703f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 713f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian ant.java(classname: 'JFlex.Main', classpath: configurations.jflex.asPath, fork: true) { 723f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian arg(line: '-d ' + jflexOutput + '/org/jf/smali') 733f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian arg(line: grammars.files.join(" ")) 743f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian } 753f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian } 763f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian} 773f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 783f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias AgopiancompileJava.dependsOn generateAntlrSource, generateJflexSource 793f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias AgopiancompileTestJava.dependsOn generateTestAntlrSource 803f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 813f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias AgopianprocessResources.inputs.properties('version': { -> version}) 823f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias AgopianprocessResources.expand('version': { -> version})