| #!/bin/bash |
| set -e |
| |
| if [ -z ${LOCAL_PKG+x} ] || [ -z "$LOCAL_PKG" ]; then |
| echo "LOCAL_PKG is not set. Aborting..." |
| exit 1 |
| fi |
| |
| if ! [ -z ${CLANG_FORMAT+x} ]; then |
| echo "CLANG_FORMAT does not need any dependencies. Done." |
| exit 0 |
| fi |
| |
| if [ -z ${DOCKER+x} ] && [ -z ${SONAR+x} ]; then |
| # Only on non-docker builds required |
| |
| echo "=== Installing from external package sources in $LOCAL_PKG ===" && echo -en 'travis_fold:start:before_install.external\\r' |
| |
| # Increase the environment version to force a rebuild of the packages |
| # The version is writen to the cache file after every build of the dependencies |
| ENV_VERSION="1" |
| ENV_INSTALLED="" |
| if [ -e $LOCAL_PKG/.build_env ]; then |
| echo "=== No cached build environment ===" |
| read -r ENV_INSTALLED < $LOCAL_PKG/.build_env |
| fi |
| |
| # travis caches the $LOCAL_PKG dir. If it is loaded, we don't need to reinstall the packages |
| if [ "$ENV_VERSION" = "$ENV_INSTALLED" ]; then |
| echo "=== The build environment is current ===" |
| exit 0 |
| fi |
| |
| echo "=== The build environment is outdated ===" |
| |
| # Clean up |
| # additional safety measure to avoid rm -rf on root |
| # only execute it on travis |
| if ! [ -z ${TRAVIS+x} ]; then |
| echo "rm -rf $LOCAL_PKG/*" |
| fi |
| |
| if [ "$CC" = "tcc" ]; then |
| mkdir tcc_install && cd tcc_install |
| wget https://mirror.netcologne.de/savannah/tinycc/tcc-0.9.27.tar.bz2 |
| tar xf tcc-0.9.27.tar.bz2 |
| cd tcc-0.9.27 |
| ./configure --prefix=$LOCAL_PKG |
| make |
| make install |
| cd ../.. |
| rm -rf tcc_install |
| fi |
| |
| wget https://github.com/ARMmbed/mbedtls/archive/mbedtls-2.7.1.tar.gz |
| tar xf mbedtls-2.7.1.tar.gz |
| cd mbedtls-mbedtls-2.7.1 |
| cmake -DENABLE_TESTING=Off -DCMAKE_INSTALL_PREFIX=$LOCAL_PKG . |
| make -j |
| make install |
| |
| echo -en 'travis_fold:end:script.before_install.external\\r' |
| |
| echo "=== Installing python packages ===" && echo -en 'travis_fold:start:before_install.python\\r' |
| pip install --user cpp-coveralls |
| # Pin docutils to version smaller 0.15. Otherwise we run into https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839299 |
| pip install --user 'docutils<=0.14' |
| pip install --user sphinx_rtd_theme |
| pip install --user cpplint |
| echo -en 'travis_fold:end:script.before_install.python\\r' |
| |
| fi |