Как добавить add_custom_command () для самого процесса сборки CMake?

Есть ли способ сделать эквивалент add_custom_command (запустить внешний скрипт при изменении определенного файла), но для чего-то, что должно быть запущено во время выполнения самого скрипта CMake? (То есть для генерации графа зависимостей.)

У нас есть файлы исходного кода, разделенные на несколько под-библиотек, и есть файлы конфигурации, в которых указывается, какой исходный файл идет с какой библиотекой. (Формат этих файлов конфигурации фиксируется другим инструментом, который мы используем.) В настоящее время мы запускаем собственный внешний скрипт, который анализирует эти файлы конфигурации и записывает новые файлы, которые затем загружаются процессом сборки CMake, чтобы дать список имен файлов для быть переданным в add_library (). Это означает, что каждый раз, когда исходный файл добавляется / удаляется, мы должны помнить, что нужно выполнить команду prebuild повторно, перед тем как снова запустить CMake, а затем снова запустить команду build.

Я знаю, что CMake может распознать, что ему нужно перезапустить себя, поэтому я надеюсь, что мы сможем получить CMake 1) признать, что файлы конфигурации изменены 2) перезапустить анализатор configfile 3) загрузить новый список файлов 4) используйте новый список файлов для регенерации дерева зависимостей 5) наконец запустите реальный процесс сборки / компиляции с включением новых файлов. ... и все это из стандартной команды сборки, без необходимости вручную запускать внешний синтаксический анализатор configfile или повторного запуска команды CMake, а также без ненужного выполнения, когда configfile не изменился.

В поисках я нашелэтот вопрос, где предлагается использовать configure_file (), но это не относится к тому, как вызывать скрипт синтаксического анализатора внешнего configfile.

Ответы на вопрос(1)

Ваш ответ на вопрос