手动编辑cmake文件以指向正确的位置

时间:2011-02-08 16:42:11

标签: include makefile cmake

我在包上运行cmake,但结果make失败,因为某些包未正确包含。我可以编辑特定的find*.cmake文件以指向正确的位置吗?

目前,相应的cmake文件为find_tbb.make

include(CheckIncludeFileCXX)

check_include_file_cxx(tbb/tbb.h HAVE_TBB)

我想这意味着它正在tbb/tbb.h查找文件。我的文件不存在,所以我可以编辑该文件的这一行以指向更好的位置吗?

2 个答案:

答案 0 :(得分:1)

我建议您改为编辑生成的CMakeCache.txt。

CMake的设计考虑到由于某种原因,Find *模块可能会失败,将任务留给用户填充正确的值,通常在缓存中留空,或者使用{{1}之类的值}。

ttb_NOT_FOUNDccmake工具专门用于此目的,它们提供了一个友好的界面来编辑CMake缓存中的条目。

答案 1 :(得分:0)

编辑系统上的标准CMake模块文件不是一个好主意。编辑这些文件可能会破坏其他CMake项目。它还使您的CMake列表文件不那么便携。

更好的选择是“分叉”那些CMake模块文件并使它们成为项目的一部分。在最外层的项目文件夹中,创建一个文件夹CMake并复制您需要适应它的find*.cmake个文件。进行更改,然后在根目录CMakeLists.txt中修改CMake模块搜索路径,首先查看项目的CMake文件夹:

project (MyProject)

set (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMake" ${CMAKE_MODULE_PATH})
...

项目的CMake文件夹中的模块文件将覆盖标准模块文件。