添加原生静态依赖

Adding native static dependencies

在 C++ Gradle 项目中,我使用了 boost 1.49 库。

如何将此库添加为我的项目的依赖项。

我是这样试的,但是应该把boost定义为依赖。有 C++ 库存储库吗?

apply plugin: 'cpp'

libraries {
    hello {
        baseName 'hello'
    }
}

sources {
    hello{
        cpp {
            source.srcDirs = ['src']
            lib library: 'boost', linkage: 'api' 
            exportedHeaders.srcDirs = ['include']
        }
    }
}

c/cpp 编程不是领域(与 gradle 相反;)),但是当您导航到 $GRADLE_HOME/samples/native-binaries 时,您可以在那里找到很多有用的示例。

其中一个 - cunit(哦,还有另一个:multi-project)有这样的配置 - 它可能有用为你。下面我附上 build.gradle 来自 cunit - 如果你使用 gradle wrapper.

apply plugin: "c"
apply plugin: "cunit"

model {
    flavors {
        passing
        failing
    }
    repositories {
        libs(PrebuiltLibraries) {
            cunit {
                headers.srcDir "lib/cunit/2.1-2/include"
                binaries.withType(StaticLibraryBinary) {
                    staticLibraryFile =
                        file("lib/cunit/2.1-2/lib/" +
                             findCUnitLibForPlatform(targetPlatform))
                }
            }
        }
    }
}

libraries {
    operators {}
}
binaries.withType(CUnitTestSuiteBinarySpec) {
    lib library: "cunit", linkage: "static"

    if (flavor == flavors.failing) {
        cCompiler.define "PLUS_BROKEN"
    }
}

def findCUnitLibForPlatform(Platform platform) {
    if (platform.operatingSystem.windows) {
        return "vs2010/cunit.lib"
//        return "vs2013/cunit.lib"
//        return "cygwin/cunit.lib"
//        return "mingw/cunit.lib"
    } else if (platform.operatingSystem.macOsX) {
        return "osx/libcunit.a"
    } else {
        return "linux/libcunit.a"
    }
}

快速谷歌搜索显示 c/cpp 项目没有像库存储库这样的东西。看来这些库应该包含在项目源中。