我是Gradle的新手。我正在尝试编译一组源文件,其中包含分布在项目目录中的标头。我的源目录结构不符合Gradle约定。如何在build.gradle中添加编译所需的标头位置?这里附有我的build.gradle
文件。
// build.gradle
apply plugin: 'c'
model {
components {
my_project (NativeExecutableSpec){
sources {
c {
source {
srcDir "my_proj_src/a/a1.1"
include "**/*.c"
}
exportedHeaders {
srcDir "my_proj_src/a/a1.1", "fsw/b/b1.2"
}
}
}
}
}
}
这不起作用。另外,是否有可能使用Gradle进行部分链接?
编辑:此外,我还想知道如何递归地为源层次结构中的标题进行Gradle搜索。
答案 0 :(得分:2)
exportedHeaders`用于从组件本身导出标头,而不是用于添加标头。所以这不起作用。
您需要创建一个库并将其添加为api linkage
,以便将这些标头添加到您的组件编译的标头中:
model {
repositories {
libs(PrebuiltLibraries) {
ffmpegHeaders {
headers.srcDirs "$ffmpegDir/include"
}
}
}
components {
libUsingHeaders(NativeLibrarySpec) {
sources {
c {
lib library: 'ffmpegHeaders', linkage: 'api'
}
}
}
}
}