Редактирование файлов cmake вручную для указания нужного места - PullRequest
0 голосов
/ 08 февраля 2011

Я запустил cmake для пакета, но результирующий make завершился ошибкой, потому что некоторые пакеты не были включены должным образом. Могу ли я отредактировать определенные find*.cmake файлы, чтобы они указывали на правильное место?

В настоящее время соответствующий файл cmake find_tbb.make:

include(CheckIncludeFileCXX)

check_include_file_cxx(tbb/tbb.h HAVE_TBB)

Полагаю, это означает, что он ищет в tbb/tbb.h файлы. Моих файлов там нет, поэтому я могу отредактировать эту строку файла, чтобы она указывала на лучшее место?

Ответы [ 2 ]

1 голос
/ 08 февраля 2011

Я рекомендую вместо этого отредактировать сгенерированный CMakeCache.txt.

CMake был разработан с мыслью, что по какой-то причине модули Find * могут потерпеть неудачу, оставляя задачу пользователю заполнить правильныезначения, обычно оставленные пустыми в кеше, или со значением типа ttb_NOT_FOUND.

. Инструменты ccmake или cmake-gui предназначены специально для этого, они предоставляют дружественный интерфейс для редактирования записей в CMake.кэш.

0 голосов
/ 08 февраля 2011

Не рекомендуется редактировать стандартные файлы модуля 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 проекта переопределятстандартные файлы модуля.

...