В частности, я ищу пример, чтобы сделать то, что указано в документации по cmake для add_custom_command :
Если указано более одной КОМАНДЫ, они будут выполнены в порядок, но не обязательно составленный из оболочки с сохранением состояния или пакетного сценария. (Чтобы запустить полный сценарий, используйте команду configure_file () или команду file (GENERATE), чтобы создать его, а затем укажите КОМАНДУ для его запуска.)
Немного подробнее, не вдаваясь в подробности слишком много: есть внешняя программа, которая генерирует 3 исходных файла, которые компилируются позже. Программа генерации обновляет временную метку только тех файлов, которые она изменяет, а не всех файлов. Поэтому, хотя моя временная метка DEPENDS является более новой, ей не нужно менять 1 исходный файл, и поэтому cmake пытается каждый раз запускать генератор кода. Я хочу коснуться всех файлов в конце генерации кода, чтобы ВСЕ их временные метки были обновлены.
Каков процесс для запуска команд в add_custom_command по порядку?
РЕДАКТИРОВАТЬ:
Вот что я сейчас пытаюсь сделать:
add_custom_command(
OUTPUT
${CONFIG_TOOLS_GENERATED_FILES}
COMMAND if exist ${Application_SOURCE_DIR}/..MCUExpresso/board rmdir ${Application_SOURCE_DIR}/..MCUExpresso/board
COMMAND
"${MCU_CONFIG_TOOLS_DIR}/bin/eclipsec.exe" -noSplash
-Load ${MEX_FILE}
-HeadlessTool Pins -ExportSrc "${Application_SOURCE_DIR}/../MCUExpresso"
-HeadlessTool Clocks -ExportSrc "${Application_SOURCE_DIR}/../MCUExpresso"
-HeadlessTool Peripherals -ExportSrc "${Application_SOURCE_DIR}/../MCUExpresso"
DEPENDS ${MEX_FILE}
COMMENT "Generating source files using MCU Config Tools"
)
Здесь есть две проблемы - каталог, который я пытаюсь удалить (с сгенерированный код) может закончиться удалением после запуска генерации кода, так как команды не сохраняют состояние. Во-вторых, каталог на самом деле не удаляется - похоже, это проблема с маршрутизацией windows ...