如何配置同级库?



我有一个库项目(稍后会添加更多(,"通用代码"拆分成自己的项目。 所以目录看起来像:

  • 托普迪尔
    • 共同库
    • 库1
    • 库2

CommonLib 和 Lib1 是单独的 git 存储库。 我不希望 topdir 本身有任何受控文件。

如何制作 mason.build 文件,使 Lib1 依赖于 CommonLib? 两组文件同时进行编辑,因此它不像首先安装的特定版本的依赖项。

declare_dependency()的主要用途正是这个。

例如

CommonLib_headers = include_directories('CommonLib/include/')
CommonLib = library('commonlib', include_directories: CommonLib_headers)
dep_CommonLib = declare_dependency(link_with: CommonLib, include_directories: CommonLib_headers)
Lib1 = library('lib1', lib1_sourcefiles, dependencies: [dep_CommonLib])

  • CommonLib_headers
    • 表示与 CommonLib 库交互所需的标头,例如函数原型
  • CommonLib
    • 表示实际的 CommonLib 库(在介子中,这称为构建目标(
  • dep_CommonLib将 CommonLib
    • 表示为项目中其他目标的依赖项,您可以将其视为"另一个目标使用 CommonLib 所需的一切"——在这种情况下,它是需要构建的实际库 CommonLib,及其头文件

请注意,例如,将可执行文件与Lib1build 对象链接也不会自动将它们链接到CommonLib,您必须手动指定。

换句话说,使dep_CommonLib成为Lib1的依赖关系就像说:"如果dep_CommonLib指定的任何组件发生变化,也相应地重建 Lib1"。

相关内容

  • 没有找到相关文章

最新更新