普通文本  |  85行  |  2.04 KB

description = 'Conscrypt: Constants'

ext {
    genDir = "${project.buildDir}/generated-sources"
}

// Needs to be binary-compatible with Android minSdkVersion.
sourceCompatibility = androidMinJavaVersion
targetCompatibility = androidMinJavaVersion

sourceSets.main {
    java {
        srcDirs = [
            "${genDir}"
        ]
    }
}

dependencies {
    compile files("${genDir}") {
        builtBy 'runGen'
    }
}

// Generate sources JAR
artifacts {
    archives sourcesJar
}

model {
    components {
        // Builds exe/ which generates the content of NativeConstants.java
        gen(NativeExecutableSpec) {
            sources {
                cpp {
                    // Sources assumed to be in src/gen/cpp by default.
                    exportedHeaders {
                        srcDirs "${boringsslIncludeDir}"
                        include "**/*.cc"
                    }
                }
            }

            binaries.all {
                if (toolChain in VisualCpp) {
                    cppCompiler.define "WIN32_LEAN_AND_MEAN"
                } else if (toolChain in Clang || toolChain in Gcc) {
                    cppCompiler.args "-std=c++11"
                }
            }
        }
    }

    tasks {
        // Runs generateNativeConstants to create build/NativeConstants.java
        runGen(Exec) {
            def gen = $.binaries.get("genExecutable")

            dependsOn gen
            outputs.dir genDir
            File genDir = new File("${genDir}/org/conscrypt")

            executable gen.executable.file

            doFirst {
                genDir.mkdirs()
                standardOutput = new FileOutputStream(new File(genDir, "NativeConstants.java"))
            }
            doLast {
                if (standardOutput != null) {
                    standardOutput.close();
                }
            }
        }
    }
}


// Don't include this artifact in the distribution.
tasks.install.enabled = false
tasks.uploadArchives.enabled = false;

// Disable the javadoc task.
tasks.withType(Javadoc).all { enabled = false }