find_package PATH_SUFFIXES не работает должным образом - PullRequest
0 голосов
/ 06 октября 2018

Я пытаюсь использовать find_package в моем файле CMake верхнего уровня.Вот моя структура папок

│   CMakeLists.txt
│
├───build
│
├───include
│
├───lib
│   └───crossguid
│       ├───include
│       │   └───crossguid
│       │           guid.hpp
│       │
│       ├───lib
│       │       libcrossguid.a
│       │
│       └───share
│           └───crossguid
│               │   LICENSE
│               │   README.md
│               │
│               └───cmake
│                       crossguid-config-release.cmake
│                       crossguid-config.cmake
│
└───src  

Как я это делаю: find_package(crossguid REQUIRED CONFIG PATH_SUFFIXES lib/).Согласно CMake Doc это должно соответствовать:

<prefix> / <name>* / (lib/<arch> | lib* | share) / <name>* /(cmake | CMake) / (W / U)

Если указано PATH_SUFFIXES, суффиксы добавляются к каждой записи каталога (W) или (U) по одному.

Итак, у меня есть "lib /" для <prefix>, кроссгид для name, share, снова кроссгид для name и папка cmake с необходимыми файлами конфигурации.Но по какой-то причине CMake не может их найти:

CMake Ошибка в CMakeLists.txt: 26 (find_package): Не удалось найти файл конфигурации пакета, предоставленный «crossguid», с любым из следующих имен:

crossguidConfig.cmake
crossguid-config.cmake

Добавьте префикс установки "crossguid" в CMAKE_PREFIX_PATH или установите "crossguid_DIR" в каталог, содержащий один из указанных выше файлов.Если «crossguid» предоставляет отдельный пакет разработки или SDK, убедитесь, что он установлен.

Более того, я попытался изменить суффикс пути на lib / crossguid / share / crossguid / cmake, чтобы он соответствовалсамая первая <prefix>/ (W), но все еще получала ту же ошибку.

Я могу исправить проблему с помощью PATHS или crossguid_DIR, но эта проблема все еще остается для меня загадкой.

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