在gradle中配置cpp源
Configuring cpp sources in gradle
我已经在Qt之上建立了一个项目(所以源代码是用C++编写的),我想尝试Gradle在此基础上进行自动构建。我花了一些时间来了解配置多项目构建的细节(有一个可执行文件和两个库),现在我正试图告诉cpp-exe
和cpp-lib
插件我的源树是如何构建的。
我已经设置了一个任务,应该打印所有的源集(至少应该有默认的源集,对吧?),它看起来像这样:
task projectinfo {
description = "Informations about the current project"
group = INFORMATIONS_GROUP
doFirst {
task -> print ("""${task.project.sourceSets.all}""")
}
如果我运行这个任务,Gradle告诉我项目没有属性"sourceSets"。插件的文档告诉我可以自定义源位置,但不能自定义如何自定义。
所以我的问题是:如何告诉Gradle cpp
插件要使用哪些源文件。如果除了API文档和Gradle用户指南之外,还有任何关于cpp
插件的文档也会有所帮助。
看看Adam Murdoch对Gradle的"cpp插件"的使用。我相信他是Gradle的主要提交者之一,所以他应该比任何人都更清楚如何使用这个:
从本地平台/build.gradle 进行练习
cpp {
sourceSets {
main {
source.exclude 'curses.cpp'
}
curses {
source.srcDirs = ['src/main/cpp']
source.include 'curses.cpp'
source.include 'generic.cpp'
source.include 'generic_posix.cpp'
}
}
}
Then, within the 'libraries' node, refer to all/any combination of architecture and source sets:
sourceSets << cpp.sourceSets.main
sourceSets << cpp.sourceSets.curses
我没有太长时间亲自查看,但他似乎定义了许多基于操作系统架构的源代码,包括组合,并将这些组合存储在变体变量中。然后,他将它们处理成平台JAR(我还没有真正运行构建,也许我应该运行)。
另外,看看https://github.com/rklaren/GradleJNI,它使用了cpp插件,但看起来有点面向Windows。
更新-我还发现https://github.com/alkemist/gradle-cpp-demo,其中有一个"cpp-exe"插件构建可执行文件的示例。
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- Linux的Cpp上的计时器
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 命名空间中具有.h和.cpp文件的类
- 内置函数可查看CPP中的成员变量
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- Cpp-Tuple使用带有变量的get
- 无法找到/读取配置文件.conf-FileIOException
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- 有充分的理由在h文件中使用include保护而不是cpp文件吗
- 如何通过cpp程序运行shell脚本
- 使用2个键的cpp-stl::优先级队列排序不正确
- 为 yaml-cpp 库查找正确的 cmake 配置
- 配置:错误:C++预处理器"/lib/cpp"未通过健全性检查
- 用于配置cpp源文件位置的环境变量
- 在gradle中配置cpp源
- 如何修复配置 PHP 7.0.1 时C++预处理器"/lib/cpp"健全性检查错误
- 如何根据当前构建配置指定编译哪些.cpp文件