C++ 如何使用Gradle DSL(领域特定语言)上的文档?

C++ 如何使用Gradle DSL(领域特定语言)上的文档?,c++,gradle,native,C++,Gradle,Native,我目前正在准备我的混合java/cpp多模块gradle项目。虽然我承认自己是groovy&Co的新手,但似乎每一步我都需要找到一个我正在尝试做的事情的确切例子,否则我就无法前进 问:谁能告诉我怎么读这个?我试图使我的库只编译为静态的(非共享的),即使我使用了baseName并查看了static和shared页面上记录的属性,我一辈子都不知道如何使用它们。我的代码是: components { api(NativeLibrarySpec) { sources {

我目前正在准备我的混合java/cpp多模块gradle项目。虽然我承认自己是groovy&Co的新手,但似乎每一步我都需要找到一个我正在尝试做的事情的确切例子,否则我就无法前进

问:谁能告诉我怎么读这个?我试图使我的库只编译为静态的(非共享的),即使我使用了
baseName
并查看了
static
shared
页面上记录的属性,我一辈子都不知道如何使用它们。我的代码是:

components {
    api(NativeLibrarySpec) {
        sources {
            cpp {
                source {
                    srcDir "src/main/stuff"
                    include "**/*.cpp"
                }
            }
        }

        baseName "mylibrary"
        static "true"    <-- what to write here??
        shared "false"    <-- ??
    }
}
组件{
api(国家图书馆规范){
来源{
cpp{
来源{
srcDir“src/main/stuff”
包括“***.cpp”
}
}
}
baseName“mylibrary”

静态“true”我环顾四周,似乎您应该试试:

components {
    api(NativeLibrarySpec) {
        sources {
            cpp {
                source {
                    srcDir "src/main/stuff"
                    include "**/*.cpp"
                }
            }
        }

        binaries {
            all {
                lib library: "mylibrary", linkage: "static"
            }
        }
    }
}
编辑:

是来自
ModelMap
接口的方法,由该方法返回。它表示:将给定的操作应用于集合中的每个项

ModelMap
使用
BinarySpec
作为参数,因此
all
的参数是一个
Action
对象

因此,
Action
类(函数接口)定义了一个方法
execute(BinarySpec)
。该方法来自
NativeBinarySpec

void库(对象库)

将库作为输入添加到此二进制文件

此方法接受以下类型:

A NativeLibrarySpec
A NativeDependencySet
A Map containing the library selector.
映射表示法支持以下字符串属性:

project: the path to the project containing the library (optional, defaults to current project)
library: the name of the library (required)
linkage: the library linkage required ['shared'/'static'] (optional, defaults to 'shared')

因此,总而言之,
mylibrary
被添加为所有二进制文件的输入。

我没有将gradle用于cpp,但也许a可以找到一个可以帮助的测试用例?好吧,这很公平。但我正在等待一个提示,告诉我应该如何掌握
lib库的语法:…”
。我们有什么,函数调用,赋值?在一种函数调用是可选的语言中,人们如何知道我们在看什么,从而在Gradle Reference中查找什么?我添加了一个解释。