1description = 'Conscrypt: Constants' 2 3ext { 4 genDir = "${project.buildDir}/generated-sources" 5} 6 7// Needs to be binary-compatible with Android minSdkVersion. 8sourceCompatibility = androidMinJavaVersion 9targetCompatibility = androidMinJavaVersion 10 11sourceSets.main { 12 java { 13 srcDirs = [ 14 "${genDir}" 15 ] 16 } 17} 18 19dependencies { 20 compile files("${genDir}") { 21 builtBy 'runGen' 22 } 23} 24 25// Generate sources JAR 26artifacts { 27 archives sourcesJar 28} 29 30model { 31 components { 32 // Builds exe/ which generates the content of NativeConstants.java 33 gen(NativeExecutableSpec) { 34 sources { 35 cpp { 36 // Sources assumed to be in src/gen/cpp by default. 37 exportedHeaders { 38 srcDirs "${boringsslIncludeDir}" 39 include "**/*.cc" 40 } 41 } 42 } 43 44 binaries.all { 45 if (toolChain in VisualCpp) { 46 cppCompiler.define "WIN32_LEAN_AND_MEAN" 47 } else if (toolChain in Clang || toolChain in Gcc) { 48 cppCompiler.args "-std=c++11" 49 } 50 } 51 } 52 } 53 54 tasks { 55 // Runs generateNativeConstants to create build/NativeConstants.java 56 runGen(Exec) { 57 def gen = $.binaries.get("genExecutable") 58 59 dependsOn gen 60 outputs.dir genDir 61 File genDir = new File("${genDir}/org/conscrypt") 62 63 executable gen.executable.file 64 65 doFirst { 66 genDir.mkdirs() 67 standardOutput = new FileOutputStream(new File(genDir, "NativeConstants.java")) 68 } 69 doLast { 70 if (standardOutput != null) { 71 standardOutput.close(); 72 } 73 } 74 } 75 } 76} 77 78 79// Don't include this artifact in the distribution. 80tasks.install.enabled = false 81tasks.uploadArchives.enabled = false; 82 83// Disable the javadoc task. 84tasks.withType(Javadoc).all { enabled = false } 85