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