Gradle C/Native插件:目录结构、平台和风格
我有一个简单的C程序(Gradle C/Native插件:目录结构、平台和风格,c,gradle,native,C,Gradle,Native,我有一个简单的C程序(helloworld)使用Make在我的Windows7机器上编译和构建(通过MinGW)。我现在想把我的构建系统改为使用Gradle(出于个人原因,没有不尊重的地方!),我正试着把我的大脑放在Gradle(实际上是C插件)上 我有两个具体关切: C插件是否像大多数其他Gradle插件一样需要特定的项目目录结构?在C插件的文档中,我看到了几个名为src/main/headers的源文件夹实例。在Java land中,Gradle默认情况下希望您拥有,比如,src/main
helloworld
)使用Make在我的Windows7机器上编译和构建(通过MinGW)。我现在想把我的构建系统改为使用Gradle(出于个人原因,没有不尊重的地方!),我正试着把我的大脑放在Gradle(实际上是C插件)上
我有两个具体关切:
- C插件是否像大多数其他Gradle插件一样需要特定的项目目录结构?在C插件的文档中,我看到了几个名为
的源文件夹实例。在Java land中,Gradle默认情况下希望您拥有,比如,src/main/headers
和src/main/Java
,以便正常运行。如果C插件也是如此,C程序需要/推荐的目录结构是什么?src/main/resources
- 我理解文档中对平台的解释,但口味却让我难以理解;同时使用平台和口味是一个更大的谜团。假设我想定义一个构建变量来支持x86架构上的Linux,另一个构建变量来支持64位Windows。实现这些变体的平台/风味组合的示例是什么
src/{componentName}/headers
中,并将C源文件放在src/{componentName}/C
中,其中componentName
将是您命名组件的任何名称(考虑到这个问题,我猜应该是helloworld
,但这取决于您如何声明它)。风格适用于构建的不同变体,例如,如果您希望构建具有不同编译功能的版本。针对不同目标(如x86 Linux和64位Windows)的编译只需使用以下平台即可完成:
model {
platforms {
linux32 {
architecture "x86"
operatingSystem "linux"
}
win64 {
architecture "x86_64"
operatingSystem "windows"
}
}
}
我假设您使用的是Gradle2.3,但在过去的两个版本中,情况发生了很大变化