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')
} 

但是它没有添加额外的目录。我做错了什么?

你找到解决办法了吗?我也有类似的问题