Gradle C插件:如何解决多个模块之间的引用

时间:2017-04-06 12:04:55

标签: c gradle

我有一个c语言程序,它具有以下结构:

src/main/c/main.c
src/main/headers/main.h
src/module_1/c/module_1.h
src/module_1/headers/module_1.h
...
src/modulen/c/module_n.c
src/module/headers/module_n.h

在gradle脚本中我定义了:

components {
   module_1(NativeLibrarySpec)
   ...
   module_n(NativeLibrarySpec)
   main(NativeExecutableSpec){
      sources{
        c.lib library: "module_1", linkage: "static"
        ...
        c.lib library: "module_n", linkage: "static"
   }

使用此结构的原因是为了便于分别为每个模块创建单元测试。

问题来自于从主模块或其他模块中的模块中包含.h文件(它们之间存在一些依赖关系)。我还没有找到一种方法来使模块的标头可用于其他模块。我实际上想让它们全部“全局”到项目中(也就是说,自动添加到任何模块的源集中)。

提前致谢

1 个答案:

答案 0 :(得分:0)

我不知道gradle,但可能会给你一些一般的建议。

  

我还没有办法让其他模块可以使用模块的标题。

您可以为项目的所有.h个文件创建一个中央目录(存储库),例如src/include。每个模块的头文件都可以放在那里(在curent基线的版本中)。

  

我真的想把它们全部打造成全球性的#34;到项目(即,自动添加到任何模块的源集)。

以上存储库可以支持这一点。但是,在源文件中包含标题是手动任务。明智的做法是不将所有标题都包含在源文件中;它可能只需要一些。