CMake Настроить правило сборки файла - PullRequest
2 голосов
/ 21 августа 2010

Я использую CMake для своей системы сборки, и в проекте у нас будет куча файлов конфигурации. Некоторые из них нужно будет просто скопировать, а некоторые нужно будет модифицировать для каждого компьютера. В настоящее время я использую команду CMake "configure_file" для копирования / замены частей файла. Это прекрасно работает, и мне нравится, как я могу использовать любую переменную из CMake в процедуре настройки.

Но если вы измените исходный файл, CMake не подберет его, и вам придется повторно запустить cmake, чтобы настроить каталог. Когда я запускаю «make», я хочу, чтобы он понял, что я изменил файл, и снова запустил configure.

Он также всегда перенастраивает файлы, даже если перезаписываемый файл более новый. Я хочу, чтобы он действовал как пользовательская цель.

Я думаю, что могу сделать это с помощью add_custom_command, но не думаю, что смогу запустить команду CMake из add_custom_command. Так есть ли в любом случае дублировать поведение, которое configure_file делает в CMake?

Ответы [ 2 ]

1 голос
/ 16 января 2011

Я недавно обновился до CMake 2.8.Кажется, что он автоматически ведет себя точно так, как я хотел.

0 голосов
/ 24 августа 2010

Я не думаю, что на это есть простой ответ.Я вижу два варианта:

  1. Для запуска повторного запуска cmake при изменении ввода вы можете сделать так, чтобы ваш файл ввода зависел от CMakeLists.txt.

  2. Чтобы выполнить команду cmake как часть и add_custom_command, существует переменная ${CMAKE_COMMAND}, которая даст вам путь к работающему cmake.На этапе настройки вы можете сгенерировать фрагмент кода CMake (который вызывает configure_file), который вызывается с использованием параметра -P.Либо передайте подстановки в командной строке, используя -D, либо запишите их во фрагмент CMake.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...