Я использую команду configure_file
в Cmake в режиме проверки доступности функции, как описано on this page. Эта страница предлагает использовать команду:Получение компилятора для создания созданного Cmake файла
configure_file(config.h.in config.h)
, который будет переводить ${CMAKE_CURRENT_SOURCE_DIR}/config.h.in
на ${CMAKE_CURRENT_BINARY_DIR}/config.h
. Но когда я компилирую свою программу, компилятор выглядит только в ${CMAKE_CURRENT_SOURCE_DIR}
для заголовков (например, config.h
), а не в ${CMAKE_CURRENT_BINARY_DIR}
. Поэтому, естественно, компилятор не находит config.h
, где он был сгенерирован, и сборка завершилась неудачей.
Каков стандартный способ решения этой проблемы? Должен ли я изменить CMakeLists.txt
так, чтобы config.h
был создан в исходном каталоге? Или я должен изменить его, чтобы добавить каталог сборки в путь include? (И действительно, почему мне приходится вообще обходиться с этим вообще? [Полу-риторический вопрос])
This question относится к аналогичной проблеме, но оба варианта предлагаются в качестве возможных решений; Я хочу знать, существует ли стандартная практика, или если это указывает на то, что мне не хватает чего-то о том, как Cmake предназначен для использования.
Ибо из источника сборки, добавьте 'include_directories ($ {CMAKE_CURRENT_BINARY_DIR})'. –