Gradle C/Native插件:目录结构、平台和风格

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

我有一个简单的C程序(
helloworld
)使用Make在我的Windows7机器上编译和构建(通过MinGW)。我现在想把我的构建系统改为使用Gradle(出于个人原因,没有不尊重的地方!),我正试着把我的大脑放在Gradle(实际上是C插件)上

我有两个具体关切:

  • C插件是否像大多数其他Gradle插件一样需要特定的项目目录结构?在C插件的文档中,我看到了几个名为
    src/main/headers
    的源文件夹实例。在Java land中,Gradle默认情况下希望您拥有,比如,
    src/main/Java
    src/main/resources
    ,以便正常运行。如果C插件也是如此,C程序需要/推荐的目录结构是什么?
  • 我理解文档中对平台的解释,但口味却让我难以理解;同时使用平台和口味是一个更大的谜团。假设我想定义一个构建变量来支持x86架构上的Linux,另一个构建变量来支持64位Windows。实现这些变体的平台/风味组合的示例是什么

Gradle中本机二进制文件的约定是将头放在
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,但在过去的两个版本中,情况发生了很大变化