Мне нужно использовать mangrove (библиотека mongo ODM поверх mongo-c-driver и mongo-cxx-driver) и включить это в мой проект в качестве команды CMake ExternalProject_Add с зависимостью от mongo-c-driver / mongo-cxx-драйвер
mongocxx генерирует конфигурационные сценарии CMake с именами, такими как:
libmongocxx-config.cmake
libmongocxx-config-version.cmake
и никаких проблем, чтобы найти их мангровым с помощью этого скрипта:
set(LIBMONGOCXX_REQUIRED_VERSION 3.1.3)
set(LIBMONGOCXX_REQUIRED_ABI_VERSION v_noabi)
find_package(libmongocxx ${LIBMONGOCXX_REQUIRED_VERSION} REQUIRED)
Однако mongo-c-driver генерирует эти скрипты с именем, которое встраивает версию ABI в имена файлов.
libmongoc-1.0-config.cmake
libmongoc-1.0-config-version.cmake
и аналогичный код CMake:
set(LIBMONGOC_REQUIRED_VERSION 1.7.0)
set(LIBMONGOC_REQUIRED_ABI_VERSION 1.0)
find_package(LibMongoC ${LIBMONGOC_REQUIRED_VERSION} REQUIRED)
can 'Сценарии не выясняются.
Конечно, если я вручную удаляю версию из имен файлов, она может найти эти файлы, но я бы хотела исправить проблему в сценарии и на стороне мангового экрана.
Итак, вопрос о технике CMake:
Есть ливозможность указать версию пакета, которая будет автоматически использоваться (в именах скриптов CMake) find_package
для поиска?