将CMake find_package与自定义的bugfixed文件一起使用

时间:2017-08-20 11:36:22

标签: cmake cgal tbb

我有一个图书馆(即CGAL)。它为未附带CGAL(即Intel TBB)的第三方库提供了FindMODULE.cmake文件。不幸的是,这个文件有一个我需要修复的bug。 (该错误似乎与不兼容的目录结构有关,但这不是重点。)

所以我项目的CMakeLists.txt有一行:

find_package( TBB )

这将调用在CGAL的目录结构中提供的FindTBB.cmake。

现在,我需要修复FindTBB.cmake中的错误。我只想复制该文件并将修复版本直接放入我的项目目录中。

如何在调用find_package时告诉CMake在我的项目目录中使用FindTBB.cmake(而不是CGAL提供的那个)?

2 个答案:

答案 0 :(得分:0)

替代方法:

  1. 将文件复制到模块目录并进行修改。
  2. 在执行与CGAL相关的任何操作之前,请先致电find_package(TBB)
  3. 使用用于查找/与CGAL交互的CMake调用。如果幸运的话,所有检查的结果都会被缓存并且可以正常运行。它仍然可能不起作用,取决于实际完成的内容。

答案 1 :(得分:0)

在这种情况下,find_package函数可能太重了,您可以尝试像这样包含重定位的.cmake文件。

include(<local path>/FindTBB.cmake)