gradle - Gradle:如何删除NativeLibrarySpec的静态任务

标签 gradle java-native-interface

我的jni库的gradle 2.3构建脚本如下所示。是否有可能删除为构建静态库而创建的任务?甚至更好的方法来防止创建静态任务?

model {
    toolChains {
        clang(Clang)
    }
    buildTypes {
        release
    }
    components {
        myNativeLib(NativeLibrarySpec) {
            binaries.all {
                if (toolChain in Clang && buildType == buildTypes.release) {
                    cppCompiler.args '-O3', '-mavx2',
                        "-I${javaHome}/../include",
                        "-I${javaHome}/../include/darwin", // os-dependent
                        "-I${buildDir}/javah" // output of javah
                    linker.args "-o${buildDir}/binaries/${nativeLibrary}"
                }
            }
        }
    }
}

最佳答案

您可以删除所有静态任务,如下所示:

model {
    toolChains {
        clang(Clang)
    }
    buildTypes {
        release
    }
    components {
        myNativeLib(NativeLibrarySpec) {
            binaries.all {
                if (toolChain in Clang && buildType == buildTypes.release) {
                    cppCompiler.args '-O3', '-mavx2',
                        "-I${javaHome}/../include",
                        "-I${javaHome}/../include/darwin", // os-dependent
                        "-I${buildDir}/javah" // output of javah
                    linker.args "-o${buildDir}/binaries/${nativeLibrary}"
                }
            }
            // removes all static tasks
            binaries.withType(StaticLibraryBinarySpec) {
                binaries.remove(it)
            }
        }
    }
}

关于gradle - Gradle:如何删除NativeLibrarySpec的静态任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28745074/

相关文章:

android - 如何禁用 build.gradle 中的任务

android - Android Gradle插件。如何自动排除重复的传递依赖项

java - 如何在 JNI 中处理类结构体 jobject

c++ - char* 的值在 ' __android_log_write' 之后更改

适用于 Windows 7 的 Java native 库、printf

android - CocoaPods 之类的 Android Studio 解决方案

gradle - Gradle 3.4:使用ConfigSlurper构建配置文件

java - Android Gradle 插件导致的重复类

android - C 中的 Sum native 方法 - java.lang.UnsatisfiedLinkError : Native method not found

android - JNI 将字符串从 C++ 导出到 Java