Обратитесь к свойству цели в выражении генератора пользовательской цели - PullRequest
0 голосов
/ 27 января 2020

Версия CMake: 3.16.2


Я пытаюсь написать собственную цель для CMake, которая позволяет мне получить некоторые свойства от известной цели.

У меня есть этот код:

add_custom_target(target_printer
    COMMAND ${CMAKE_COMMAND} -E echo "$<TARGET_PROPERTY:known_target, BINARY_DIR>"
)

На этапе настройки я столкнулся со следующей проблемой:

Error evaluating generator expression:
 $<TARGET_PROPERTY:known_target, BINARY_DIR>

Property name not supported.

Есть предложения?

1 Ответ

1 голос
/ 27 января 2020

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

add_custom_target(target_printer
    COMMAND ${CMAKE_COMMAND} -E echo "$<TARGET_PROPERTY:known_target,BINARY_DIR>"
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...