Похоже, вы хотите что-то похожее на это:
add_custom_command(OUTPUT B
COMMAND ${CMAKE_COMMAND} -Dinput=A -P script_that_generates_B.cmake
DEPENDS A
)
Где «B» - полный путь к выходному файлу, «A» - полный путь к какому-либо входному файлу, а команда - это то, что запускается во время сборки, чтобы генерировать B при каждом изменении A.
Чтобы правило, создающее B, выполнялось во время сборки, что-то еще должно зависеть и от B. Он должен отображаться либо в ЗАВИСИМОСТИ от add_custom_target, который находится в «all», либо в виде исходного файла для команды add_library или add_executable, чтобы запустить команду.
EDIT:
Вы также можете использовать
if(file1 IS_NEWER_THAN file2)
построить во время настройки CMake, если необходимо. Документация по команде IF довольно длинная, но поиск на этой странице для IS_NEWER_THAN дает этот слепок:
"Истинно, если file1 новее, чем file2 или если один из двух файлов не существует. Поведение четко определено только для полных путей."