2014-09-29 2 views
1

Используя cmake на окнах в visual studio 2012, мне нужно получить расположение библиотеки импорта. Я могу получить расположение моей цели длл как:CMAKE: получить расположение окна import lib

ADD_LIBRARY(foo SHARED ${CXX_SRCS}) 
GET_TARGET_PROPERTY(FOO_NAME foo LOCATION) 

Теперь, когда у меня есть путь к foo.dll, мне нужен путь к импорту Lib, foo.lib. Для этого есть свойство cmake? Если да, то какой минимальный cmake требуется?

+0

Вы уверены, что вам действительно нужно место? Вы можете напрямую связать библиотеку, указав целевое имя в 'TARGET_LINK_LIBRARIES()'. Вы можете установить обе части библиотеки с помощью 'install (TARGETS ... RUNTIME ... LIBRARY)'. – Peter

+0

Да, мне нужно место. Я не хочу использовать цель установки, я хочу, чтобы это было как шаг после сборки. – Juan

ответ

1

Чтобы создать шаг после сборки, который зависит от другого целевого объекта файла импорта .lib, использование «выражения генератор» TARGET_LINKER_FILE в add_custom_command:

$<TARGET_LINKER_FILE:tgt> = file used to link (.a, .lib, .so)

Вы также можете посмотреть на целевое свойство ARCHIVE_OUTPUT_DIRECTORY, но генератор VS2012 добавляет CONFIGURATION в этот каталог, и вы должны установить его вручную.

+0

Спасибо. Я искал целевые свойства, а не генераторные выражения. – Juan

Смежные вопросы