Передать несколько значений в find_package в cmake - PullRequest
1 голос
/ 05 апреля 2020

Я определил переменную в CMakeLists.txt следующим образом:

set(MY_PROJECT_DEPENDENCIES boost-core boost-optional sqlite3)

Я хочу проверить, найдены ли с использованием find_package(), следующим образом:

find_package(MY_PROJECT_DEPENDENCIES REQUIRED).

Но это не работает. Любой обходной путь для того же самого?

Редактировать: Как drescherjm предложил использовать foreach l oop работает отлично. Вот фрагмент кода:

macro(find_packages)
  foreach(package ${ARGN})
    find_package(${package} REQUIRED)
  endforeach()
endmacro()

Позвоните, используя:

find_packages(${MY_PROJECT_DEPENDENCIES})```

1 Ответ

1 голос
/ 05 апреля 2020

Ваша проблема в том, что MY_PROJECT_DEPENDENCIES - это список, и вы пытались использовать <a href="https://cmake.org/cmake/help/latest/command/find_package.html" rel="nofollow noreferrer">find_package</a> в этом списке, но find_package ожидает PackageName отдельно

, поэтому ваш обходной путь должен вызвать find_package для каждого пакета (используя циклы в этом списке) и определите это в macro для простоты использования.

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