我正在尝试使用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这样的变量,但找不到解决方案或documentation entry来描述更多选项。
我正在使用的当前解决方案看起来像这样
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; })