代码之家  ›  专栏  ›  技术社区  ›  Marek R

CMake Zero Check无法检测Xcode generator的CMakeLists.txt文件中的更新

  •  6
  • Marek R  · 技术社区  · 6 年前

    背景

    我有一个很大的项目,它可以完美地运行在windows上。 在应用某些更改时 CMakeLists.txt 项目已生成,VisualStudio项目已正确更新。

    Xcode版本:10.0(10A255)或10.1(10B61)(在不同机器上测试)。

    问题

    当在MacOSforXcode上构建同一个项目时,就会出现问题。 配置CMake后:

    cmake .. -G Xcode
    

    生成的项目工作正常,一切正常建立和测试通过。

    现在什么时候 CMakeLists.txt文件 修改文件(在开发项目或从存储库获取新更改时)和 ZERO_CHECK BUILD_ALL 则生成不会导致Xcode项目更新。 调用 cmake . 也检测不到变化。

    变通办法

    我发现最好的解决方法是删除 一切 两个文件: cmake_install.cmake CMakeCache.txt cmake .. -G Xcode .
    在这个场景中,整个检测是从头开始重新进行的,但至少构建不是从零开始的(未更改的文件不会重新编译)。

    这是痛苦的,因为大量的手工工作必须做,项目必须重新创建,这消耗时间。

    提示

    在以前的某个项目中,我也遇到过类似的问题,但只有当maven检测到依赖项的更新时,才会发生这种情况,所以很少发生。事情发生的时候我刚打电话来 touch CMakeLists.txt 再建造一次,这个解决方法很好。此解决方案不适用,因为每个生成都有此问题。

    我怀疑protobuf生成过程与它有关,但当我禁用它时,问题仍然存在。

    我试图通过创建简单的项目文件来提供完整的最小示例,但是我无法重现这个问题。对于所有其他项目,它只是工作,所以系统配置不是问题。

    问题

    cmake 找到这个问题的根源?

    这是已知的问题吗?

    有没有更好的解决方法不会导致 完全重建

    0 回复  |  直到 5 年前