2015-08-09 4 views
4

Встроенная функция install(TARGETS ...) устанавливает объекты библиотеки в другое место, кроме исполняемых целей. Я хочу сделать что-то подобное. Учитывая список целевых имен, я хочу добавить все целевые объекты библиотеки среди них в переменную списка и все целевые среды выполнения для другой переменной.Как определить, является ли данная цель библиотекой или исполняемым файлом?

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

Как определить, является ли данная цель библиотекой или исполняемым файлом (или даже чем-то еще)?

ответ

9

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

Это будет один из STATIC_LIBRARY, MODULE_LIBRARY, SHARED_LIBRARY, исполнимый или один из внутренних типов мишеней.

Пример:

get_target_property(target_type <target> TYPE) 
if (target_type STREQUAL "EXECUTABLE") 
    # Process executable target 
endif() 
Смежные вопросы