cmake шаг стороннего проекта - PullRequest
       28

cmake шаг стороннего проекта

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

Мы используем код поставщика в качестве стороннего проекта в нашем исходном коде.Код поставщика использует Makefile, для которого мы написали новый CMake add_custom_target для исходного кода поставщика.

Чтобы скопировать библиотеку из каталога build / lib конкретного поставщика в наш каталог CMAKE binary / library, я кодировал Step, чтобы скопировать все библиотекиas

ExternalProject_Add_Step (CopyStep)

Однако я вижу, что всякий раз, когда я строю, CopyStep выполняется все время.Есть ли способ контролировать CopyStep для exec, только если есть изменения в библиотеке (что-то похожее на Make, когда нет изменения кода, исходный код не перестраивается).

Дайте мне знать, если есть какой-то другой способ, которым я мог бы сделать копию и т. Д.

1 Ответ

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

Чтобы сделать шаг ExternalProject повторным только при изменении некоторых файлов, добавьте к нему опцию DEPENDS :

ExternalProject_Add_Step(extLibrary CopyStep
    COMMAND cp <BINARY_DIR>/lib/libext.a <...>
    DEPENDS <BINARY_DIR>/lib/libext.a
    )

В качестве альтернативы (например, если вы нене хотите перечислять все файлы, от которых вы зависите), вы можете сделать шаг, чтобы быть частью этапа сборки .Для этого измените ExternalProject_Add, добавив соответствующую команду:

ExternalProject_Add(extLibrary
    ...
    BUILD_COMMAND make # Need to explicitely specify build command.
    COMMAND cp -r <BINARY_DIR>/lib <...> # Additional action for the build step
    )
...