diff --git a/src/secp256k1/.travis.yml b/src/secp256k1/.travis.yml --- a/src/secp256k1/.travis.yml +++ b/src/secp256k1/.travis.yml @@ -8,6 +8,9 @@ - ninja-build install: - ./travis/install_cmake.sh +cache: + directories: + - /opt/cmake compiler: - clang - gcc diff --git a/src/secp256k1/travis/build_cmake.sh b/src/secp256k1/travis/build_cmake.sh --- a/src/secp256k1/travis/build_cmake.sh +++ b/src/secp256k1/travis/build_cmake.sh @@ -18,8 +18,8 @@ mkdir -p buildcmake/install pushd buildcmake -# Use the cmake version installed via APT instead of the Travis custom one. -CMAKE_COMMAND=/usr/bin/cmake +# Use the cmake version installed via the install_cmake.sh script. +CMAKE_COMMAND=/opt/cmake/bin/cmake ${CMAKE_COMMAND} --version ${CMAKE_COMMAND} -GNinja .. \ diff --git a/src/secp256k1/travis/install_cmake.sh b/src/secp256k1/travis/install_cmake.sh --- a/src/secp256k1/travis/install_cmake.sh +++ b/src/secp256k1/travis/install_cmake.sh @@ -4,12 +4,36 @@ set -euxo pipefail -# Fetch Kitware signing key -wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add - - -# Add the Kitware PPA -sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ xenial main' -sudo apt-get update - -# Install cmake -sudo apt-get -y install cmake +### Change these values to select the cmake version to install +CMAKE_VERSION_MAJOR=3 +CMAKE_VERSION_MINOR=13 +CMAKE_VERSION_PATCH=0 + +CMAKE_INSTALL_SCRIPT_SHA256SUM=97220140fb5be4f1fa35600f7b45dd82d168c966dfbb877cae2bad4064b0d31b + +### Installation + +CMAKE_VERSION_FULL=${CMAKE_VERSION_MAJOR}.${CMAKE_VERSION_MINOR}.${CMAKE_VERSION_PATCH} + +# If cmake is already installed with the expected version (from cache), skip the +# installation process. +if /opt/cmake/bin/cmake --version | grep "${CMAKE_VERSION_FULL}"; then + exit 0 +fi + +# Download the pre-built binary from the cmake.org website. +# It is distributed as a script containing a self extractible archive. +URL_PREFIX=https://cmake.org/files/v${CMAKE_VERSION_MAJOR}.${CMAKE_VERSION_MINOR} +CMAKE_INSTALL_SCRIPT=cmake-${CMAKE_VERSION_MAJOR}.${CMAKE_VERSION_MINOR}.${CMAKE_VERSION_PATCH}-Linux-x86_64.sh + +wget ${URL_PREFIX}/${CMAKE_INSTALL_SCRIPT} +echo "${CMAKE_INSTALL_SCRIPT_SHA256SUM} ${CMAKE_INSTALL_SCRIPT}" | sha256sum -c + +# Make it executable +sudo chmod +x ${CMAKE_INSTALL_SCRIPT} + +# Install to /opt/cmake +CMAKE_INSTALL_PREFIX=/opt/cmake + +sudo mkdir -p ${CMAKE_INSTALL_PREFIX} +sudo ./${CMAKE_INSTALL_SCRIPT} --prefix=${CMAKE_INSTALL_PREFIX} --skip-license