Как определить цель для включения нескольких библиотек, хранящихся в одном каталоге

#cmake #cmake-modules

#cmake #cmake-модули

Вопрос:

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

Конечная цель — разрешить включение цели -L<library dir> -l<staticlib-1> -l<staticlib-2> ... -l<staticlib-n> при связывании.

Я попытался использовать target_link_libraries следующее, что не сработало:

     add_library(SomeTargetName INTERFACE)
    target_link_libraries(SomeTargetName INTERFACE "-L${SOME_TARGET_LIBRARY_DIR}" )
 

Приведенный выше фрагмент вызывает следующее сообщение об ошибке:

Цели INTERFACE_LIBRARY могут иметь только свойства, внесенные в белый список. Свойство «LINK_DIRECTORIES» не разрешено.

Поддерживает ли cmake такой тип использования? Если да, то как это делается?

Комментарии:

1. -L${SOME_TARGET_LIBRARY_DIR} нет библиотеки. Это вариант. target_link_options . И нет, создайте обычную библиотеку.

2. target_link_options был доступен только с версии cmake v3.13, поэтому должен быть способ сделать это без его использования. И, очевидно, да, -L<XXX> это не библиотека, а возможность добавить каталог в путь поиска , который был причиной, по которой он был там с самого начала и использовался в качестве примера.