Укажите две минимально необходимые версии для пакета - PullRequest
0 голосов
/ 13 марта 2019

Мой проект CMake зависит от пакета, в котором была ошибка. Эта ошибка была исправлена ​​в выпусках исправлений для двух разных функциональных веток; скажем, ошибка исправлена ​​в 2.4.4 и 2.5.1, но все еще присутствует в 2.4.3 и 2.5.0. Некоторые из моих пользователей застряли с набором функций 2.4 из пакета зависимостей, а другие с 2.5, поэтому у меня проблема с применением 2.4.4 для первого и 2.5.1 для последнего. Как я могу сделать это при вызове find_package? Если я позвоню:

find_package(ExternalPackage 2.4.4 REQUIRED)

тогда это будет хорошо для людей с 2.4, но это также позволит 2.5.0; точно так же, если я позвоню:

find_package(ExternalPackage 2.5.1 REQUIRED)

тогда мой код не будет работать с 2.4.x. Есть ли способ это исправить? Спасибо.

1 Ответ

1 голос
/ 13 марта 2019

Проверка версии пакета выполняется файлом версии, предоставленным пакетом.Единственное, что может повлиять на его поведение, это параметр EXACT, который вы можете отправить на find_package.

. Я бы рекомендовал проверить версию 2.4.4, но утверждать, что версия не 2.5.0.

if(ExternalPackage_VERSION VERSION_EQUAL "2.5.0")
  message(FATAL_ERROR "ExternalPackage must not be version 2.5.0. 2.4.4 or 2.5.1 or better is required.")
endif()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...