--- /dev/null
+max_size = 500M
+compression = true
+compression_level = 1
+sloppiness = time_macros,include_file_mtime,include_file_ctime,file_macro
+run_second_cpp = false
+hash_dir = false
+
--- /dev/null
+#!/bin/sh
+
+set -e
+
+if [ "$DISTRO" != "" ] ; then
+ docker exec $(cat $HOME/cid) ccache -s
+else
+ ccache -s
+fi
if [ "$1" = "release-ready" ]; then
OPTS="$OPTS $RELEASE_READY_LINUX_COPTS"
fi
- docker run --env MAKEFLAGS="-j5" --env EIO_MONITOR_POLL=1 -v `pwd`:/src -w /src stefanschmidt1/ci-support-files:$DISTRO ./autogen.sh $OPTS
+ docker exec $(cat $HOME/cid) sh -c 'rm -f ~/.ccache/ccache.conf'
+ docker exec --env MAKEFLAGS="-j5" --env EIO_MONITOR_POLL=1 --env CC="ccache gcc" \
+ --env CXX="ccache g++" --env CFLAGS="-fdirectives-only" --env CXXFLAGS="-fdirectives-only" \
+ $(cat $HOME/cid) ./autogen.sh $OPTS
else
OSX_COPTS="--disable-cxx-bindings"
mkdir -p ~/Library/LaunchAgents
ln -sfv /usr/local/opt/d-bus/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/org.freedesktop.dbus-session.plist
- export PATH="$(brew --prefix gettext)/bin:$PATH"
+ export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
- export CFLAGS="-I/usr/local/opt/openssl/include $CFLAGS"
+ export CFLAGS="-I/usr/local/opt/openssl/include -frewrite-includes $CFLAGS"
+ export LDFLAGS="-L/usr/local/opt/openssl/lib $LDFLAGS"
export LDFLAGS="-L/usr/local/opt/openssl/lib $LDFLAGS"
# Normal build test of all targets
+ rm -f ~/.ccache/ccache.conf
./autogen.sh $OSX_COPTS
fi
fi
if [ "$DISTRO" != "" ] ; then
- docker exec --env MAKEFLAGS="-j5" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) make distcheck
+ docker exec --env MAKEFLAGS="-j5" --env EIO_MONITOR_POLL=1 --env CC="ccache gcc" \
+ --env CXX="ccache g++" \
+ --env CFLAGS="-fdirectives-only" --env CXXFLAGS="-fdirectives-only" \
+ $(cat $HOME/cid) make distcheck
else
export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
make
brew update
brew unlink python
-brew install gettext check bullet dbus fontconfig freetype fribidi gst-plugins-good gstreamer luajit openssl webp libsndfile glib libspectre libraw librsvg poppler lz4 pulseaudio
+brew install gettext check bullet dbus fontconfig freetype fribidi gst-plugins-good gstreamer luajit openssl webp libsndfile glib libspectre libraw librsvg poppler lz4 pulseaudio ccache
--- /dev/null
+#!/bin/sh
+
+set -e
+
+if [ "$DISTRO" != "" ] ; then
+ docker exec $(cat $HOME/cid) sh -c ".ci/docker-ccache-setup.sh $1"
+ docker exec $(cat $HOME/cid) ccache -pz
+else
+ cp .ci/ccache.conf ~/.ccache
+ ccache -o base_dir="$(pwd)"
+ ccache -pz
+fi
--- /dev/null
+#!/bin/sh
+
+CI_BUILD_TYPE="$1"
+
+cp .ci/ccache.conf ~/.ccache
+
+if [ "$1" = "release-ready" ] ; then
+ ccache -o base_dir="$(pwd)/$(grep '^PACKAGE_STRING' config.log|cut -d\' -f2|tr ' ' -)"
+else
+ ccache -o base_dir=$(pwd)
+fi
language: c
-
+cache: ccache
sudo: required
dist: trusty
global:
- MAKEFLAGS="-j5"
- EIO_MONITOR_POLL=1
+ - CC="ccache gcc"
+ - CXX="ccache g++"
matrix:
-
- DISTRO=Ubuntu1804
- |
if [[ "$TRAVIS_OS_NAME" == "linux" ]] ; then
docker version
- docker run --cidfile $HOME/cid -t -d -v `pwd`:/src -w /src stefanschmidt1/ci-support-files:$DISTRO bash
+ docker run --cidfile $HOME/cid -t -d -v `pwd`:/src -v $HOME/.ccache:/root/.ccache -w /src stefanschmidt1/ci-support-files:$DISTRO bash
cat $HOME/cid
fi
+ - .ci/ci-ccache-stats.sh
+
script:
- .ci/ci-configure.sh "$CI_BUILD_TYPE"
+ - .ci/ci-setup-ccache.sh "$CI_BUILD_TYPE"
- .ci/ci-make.sh "$CI_BUILD_TYPE"
- .ci/ci-make-checkbuild.sh "$CI_BUILD_TYPE"
- .ci/ci-make-examples.sh "$CI_BUILD_TYPE"
elif [[ "$CI_BUILD_TYPE" != "release-ready" ]] ; then
docker exec --env MAKEFLAGS="-j5" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) .ci/build-efl-app.sh
fi
+before_cache:
+ - .ci/ci-ccache-stats.sh
+ - |
+ if [[ "$TRAVIS_OS_NAME" == "linux" ]] ; then
+ sudo chown travis:travis $HOME/.ccache
+ else
+ fi
after_success:
- |