Gradle C++;本机生成:如何覆盖多项目生成中的顶级属性 我需要建立一个包含多个C++项目的大的源树。我希望有一个顶级构建文件,它定义构建约定,例如公共包含目录和编译器/链接器标志,然后能够在子项目级别重写或添加这些约定
我可以添加到编译器/链接器标志,如下所示: 顶级生成文件:Gradle C++;本机生成:如何覆盖多项目生成中的顶级属性 我需要建立一个包含多个C++项目的大的源树。我希望有一个顶级构建文件,它定义构建约定,例如公共包含目录和编译器/链接器标志,然后能够在子项目级别重写或添加这些约定,c++,gradle,native,multi-project,subproject,C++,Gradle,Native,Multi Project,Subproject,我可以添加到编译器/链接器标志,如下所示: 顶级生成文件: subprojects { apply plugin: 'cpp' ext.commonCompilerArgs = [ '-Wall', '-Werror', '-pedantic-errors' ] components { binary(NativeLibrarySpec) { sourc
subprojects {
apply plugin: 'cpp'
ext.commonCompilerArgs = [
'-Wall',
'-Werror',
'-pedantic-errors'
]
components {
binary(NativeLibrarySpec) {
sources {
cpp {
source {
srcDir 'src'
include '*.cpp'
}
exportedHeaders {
srcDir 'include'
include '*.h'
}
}
}
}
}
binaries.withType(NativeLibraryBinarySpec) {
// Compiler args
commonCompilerArgs.forEach { compilerArg ->
cppCompiler.args << compilerArg
}
}
def extraCompilerArgs = [
'--std=c++11'
]
binaries.all {
extraCompilerArgs.each { arg ->
cppCompiler.args << arg
}
}
binaries.withType(NativeLibraryBinarySpec) { binary ->
binary.headerDirs.add('extra_include_dir')
}
但是它没有添加额外的目录。我做错了什么?你找到解决办法了吗?我也有类似的问题