Как запустить команды cmake в add_custom_command по порядку - PullRequest
0 голосов
/ 07 февраля 2020

В частности, я ищу пример, чтобы сделать то, что указано в документации по 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 ...

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