Что действительно делает get_directory_property? - PullRequest
0 голосов
/ 17 октября 2019

Я искал, как определить, есть ли у текущей области родительский элемент в CMake, и одно упомянутое решение использовало get_directory_property.

Может кто-нибудь объяснить, пожалуйста, об использовании get_directory_property?

1 Ответ

1 голос
/ 17 октября 2019

Когда CMake запускается, он заполняет несколько свойств (в основном метаданных) для целей, каталогов, исходных файлов, с которыми он взаимодействует. Есть даже глобальные свойства, определенные для текущего выполнения CMake. Полный, обширный список свойств находится в документации CMake . У цели на данный момент есть большинство свойств, но в вашем случае вас интересует каталог свойств здесь .

CMake предоставляет get_* функции, позволяющие нам получить свойства, которые уже были определены:

  • get_directory_property(): Используйте это, чтобы получить свойство очастности каталог , каталог, который уже был пройден CMake.
  • get_target_property(): используйте его для получения свойства, связанного с конкретным цель . Цель должна быть уже определена ранее в конфигурации CMake, или CMake должен знать об этом.
  • get_property(): команда, которую вы можете использовать для получения any тип свойства, но вы должны указать какой тип (например, GLOBAL, DIRECTORY, TARGET и т. д.)

Чтобы узнать, является ли текущая область действия CMakeимеет родительскую область, эту информацию можно найти в свойстве каталога PARENT_DIRECTORY. Это скажет нам, какой каталог является родительским текущего исходного каталога:

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