Я пытаюсь использовать CMake --find-package
режим для проверки в одну строку, если существует полезная версия повышения.
Обычно это можно сделать через
cmake --find-package -DNAME=Boost -DCOMPILER_ID=GNU -DLANGUAGE=CXX -DMODE=EXIST
но я хотел бы знать, если минимальная версия был найден.
Например, в CMakeList.txt это будет выглядеть
find_package(Boost 1.60.0)
Я пытался закодировать его в -DNAME, искал проблему в Интернете и пытался угадать переменную типа -DMINVERSION, но не смог найти решение или запись документации это описывает дальнейшие варианты.
Текущий обходной путь, который я использую, выглядит следующим образом
echo -e "#include <boost/version.hpp>\n#include <iostream>\n" \
"int main() { std::cout << BOOST_VERSION << std::endl; return 0; }" \
| g++ -I$BOOST_ROOT/include -x c++ - || { echo 0; }
BOOST_FOUND=$([ $(./a.out) -ge 106000 ] && { echo 0; } || { echo 1; })
Задача ещё не решена.
Других решений пока нет …