cmake сторонняя пошаговая зависимость - PullRequest
0 голосов
/ 17 сентября 2018

Мы используем код поставщика в качестве стороннего проекта в нашем исходном коде.Этот сторонний проект размещен на другом сервере.

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

Логически приложение может начать сборку после загрузки стороннего проекта и получения заголовочных файлов.Чтобы достичь того же, у меня может быть шаг, который зависит от configure / download

ExternalProject_Add_Step (CopyHeaderFileStep DEPENDS configure)

Однако, поскольку это всего лишь шаг, а не цель, Я не могу указать зависимость CopyHeaderFileStep в моем приложении CMake.

Я внимательно изучил документацию cmake, но без помощи.Есть ли здесь какой-нибудь выход?

1 Ответ

0 голосов
/ 17 сентября 2018

Однако, поскольку это всего лишь шаг, а не цель, я не могу указать зависимость CopyHeaderFileStep в моем приложении CMake.

Именно для этой цели есть функция ExternalProject_Add_StepTargets, которая создает обычные цели CMake для шагов ExternalProject. Из документации :

ExternalProject_Add_StepTargets() Функция генерирует цели для перечисленных шагов. Имя каждой созданной цели будет иметь вид <name>-<step>.

Пример:

# Create targets for steps
ExternalProject_Add_StepTargets(extProject # External project name
    CopyHeaderFileStep # List of steps, for which targets will be created
)

# Depend on these targets in outer code
add_dependencies(myApp extProject-CopyHeaderFileStep)
...