我在包上运行cmake
,但结果make
失败,因为某些包未正确包含。我可以编辑特定的find*.cmake
文件以指向正确的位置吗?
目前,相应的cmake文件为find_tbb.make
:
include(CheckIncludeFileCXX)
check_include_file_cxx(tbb/tbb.h HAVE_TBB)
我想这意味着它正在tbb/tbb.h
查找文件。我的文件不存在,所以我可以编辑该文件的这一行以指向更好的位置吗?
答案 0 :(得分:1)
我建议您改为编辑生成的CMakeCache.txt。
CMake的设计考虑到由于某种原因,Find *模块可能会失败,将任务留给用户填充正确的值,通常在缓存中留空,或者使用{{1}之类的值}。
ttb_NOT_FOUND
或ccmake
工具专门用于此目的,它们提供了一个友好的界面来编辑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
文件夹中的模块文件将覆盖标准模块文件。