我正在尝试为我的应用程序编写一个Travis CI脚本,该脚本需要CMake 3.5或更高版本。整个Travis脚本可在此处找到。遵循在其他地方找到的建议,我使用以下命令安装CMake:
install:
- DEPS_DIR="${TRAVIS_BUILD_DIR}/deps"
- mkdir -p ${DEPS_DIR} && cd ${DEPS_DIR}
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
CMAKE_URL="https://cmake.org/files/v3.7/cmake-3.7.2-Linux-x86_64.tar.gz";
mkdir cmake && travis_retry wget --no-check-certificate --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C cmake;
export PATH=${DEPS_DIR}/cmake/bin:${PATH};
else
brew outdated cmake || brew upgrade cmake;
fi
- cmake --version
然后,我matrix
用各种OS /编译器组合填充了构建,最后运行了Python安装脚本(请参阅此处):
before_script:
- cd "${TRAVIS_BUILD_DIR}"
script:
- ./install.py --compiler=$COMPILER
该Python脚本本质上只是调用cmake
和make
,第一CMakeLists.txt
,可以找到这里。
使用Homebrew安装CMake的OSX版本可以完美运行。但是,script
由于CMake不满足最低要求,所有Linux构建都在此阶段失败:
CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
CMake 3.5 or higher is required. You are running version 3.2.2
即使在以下期间成功安装了CMake 3.7 install
:
$ cmake --version
cmake version 3.7.2
我究竟做错了什么?
奇怪的是,使用的是预先安装的CMake版本(在Travis上为v3.2),而不是较新的版本-但仅当从Python调用时才使用。
您可以尝试以下方法:
这将阻止使用旧版本。如果这不起作用(例如,可能因为“找不到Cmake”),这将显示问题的实际原因。
您可以将其添加到该install
步骤的linux分支中:
sudo apt-get purge cmake
要么:
sudo apt-get remove cmake
(可能需要添加-y
以进行确认,因此变为remove -y
)。
通过CMake安装程序进行安装是一种更干净的方法。事实证明它是Travis btw上速度更快的一款。
...
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
CMAKE_INSTALLER=install-cmake.sh
curl -sSL https://cmake.org/files/v3.7/cmake-3.7.2-Linux-x86_64.sh -o ${CMAKE_INSTALLER}
chmod +x ${CMAKE_INSTALLER}
sudo ./${CMAKE_INSTALLER} --prefix=/usr/local --skip-license
else
...
我使用curl而不是wget + travis_retry,但这无关紧要。您仍然可以像以前一样使用它们。
如果两者都不起作用,则应检查Python脚本在何处查找可执行文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句