Как мне транзитивно пересылать требования через ИМПОРТИРОВАННУЮ цель CMake? - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь создать псевдоним OpenSSL::Crypto для цели crypto, которая уже существует. До сих пор в моем CMakeLists.txt:

add_library(OpenSSL::Crypto STATIC IMPORTED)
target_link_libraries(OpenSSL::Crypto INTERFACE crypto)
...
add_executable(my_test ...)
target_link_libraries(my_test OpenSSL::Crypto)

Генерация работает нормально, но во время компиляции я получаю следующую ошибку:

CMakeFiles/my_test.dir/build.make:82: *** target pattern contains no '%'.  Stop.

и build.make:82:

my_test: OpenSSL::Crypto-NOTFOUND

Почему это не работает? Я ожидаю, что все необходимые целевые свойства будут транзитивно взяты из crypto. Чего мне не хватает?

Примечания:

  • Если я объявляю зависимость непосредственно от crypto (target_link_libraries(my_test crypto)), все работает как положено.
  • Я не могу использовать библиотеку ALIAS, потому что они не распространяются в других проектах (в соответствии с моими зависимостями, использующими try_compile).
  • Фон я пытаюсь использовать LibreSSL вместо OpenSSL, включив его в качестве подкаталога в мой проект и разрешив строить все другие зависимости от него.

Спасибо за ваши мысли.

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