处理 cmake 重复的 git 子树
Posted
技术标签:
【中文标题】处理 cmake 重复的 git 子树【英文标题】:Handle cmake duplicated git subtrees 【发布时间】:2018-03-18 18:04:21 【问题描述】:我有一个 cmake git 存储库,其中包含一个我在许多项目中使用的库,名为 core
。
我有另一个 cmake git 存储库,其中包含 core
作为子树中的依赖项。该项目创建了一个库plot
。
现在我有一个新的 git 存储库,它需要 plot
和 core
作为依赖项,我也将它们作为子树包含在内。现在我的项目结构是:
myproject
|
|-Thirdparty-subtrees
|
|-core
|-plot
|
|-Thirdparty-subtrees
|
|-core
现在,当我想用 cmake 构建 myproject
时,它告诉我我有两个同名的项目 core
,因为该项目被定义了两次。
我可以删除第一级core
子树,但是它会变成一个隐藏的依赖,如果由于某种原因plot
会删除core
子树,我就会遇到问题。我想在第一级子树文件夹中维护显式依赖。
所以我想知道如何使用 CMake 检查是否存在两个具有相同名称的目标,在这种情况下通过消息通知它并只构建一个项目而丢弃另一个(我想如果两个目标有同名,他们是同一个项目)。
我怎样才能只正确构建一次core
?
【问题讨论】:
How to handle a transitive dependency conflict using Git submodules and CMake?的可能重复 【参考方案1】:尽管看起来很像,但 Git 并不是用来作为依赖管理工具的。为此,您最好使用其他工具。
【讨论】:
我知道。我想知道如何使用 CMake 以便仅包含一次由于子树管理而在我的树中重复的项目。 啊,也许我误解了这个问题。道歉。以上是关于处理 cmake 重复的 git 子树的主要内容,如果未能解决你的问题,请参考以下文章