diff --git a/.travis.yml b/.travis.yml index f3401574..71d14461 100644 --- a/.travis.yml +++ b/.travis.yml @@ -69,6 +69,12 @@ matrix: env: BUILD_TYPE=Debug addons: {apt: {sources: *sources, packages: [*gcc, *base_deps, *optional_deps]}} + # Minimal build, contains no optional dependencies. This makes sure that + # we properly remove files from compilation that depend on libraries that + # are not installed + - compiler: gcc + env: BUILD_TYPE=Release POLYBAR_BUILD_TYPE=minimal + addons: {apt: {sources: *sources, packages: [*gcc, *base_deps]}} cache: ccache: true diff --git a/common/travis/configure.sh b/common/travis/configure.sh index dbb8a4a7..eb609236 100755 --- a/common/travis/configure.sh +++ b/common/travis/configure.sh @@ -1,9 +1,32 @@ #!/bin/bash mkdir -p "${TRAVIS_BUILD_DIR}/build" cd "${TRAVIS_BUILD_DIR}/build" || false + +FLAGS="" + +# Disable all extra modules and X extensions for minimal builds +# Most of these should already be turned off because their libraries are not +# installed, but some may not be +if [ "$POLYBAR_BUILD_TYPE" == "minimal" ]; then + FLAGS=( + "-DENABLE_PULSEAUDIO=OFF" + "-DENABLE_NETWORK=OFF" + "-DENABLE_MPD=OFF" + "-DENABLE_CURL=OFF" + "-DENABLE_ALSA=OFF" + "-DENABLE_I3=OFF" + "-DWITH_XRM=OFF" + "-DWITH_XKB=OFF" + "-DWITH_XRANDR_MONITORS=OFF" + "-DWITH_XCURSOR=OFF" + "-DWITH_XRANDR=ON" + ) +fi + cmake \ -DCMAKE_C_COMPILER="${CC}" \ -DCMAKE_CXX_COMPILER="${CXX}" \ -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ -DCMAKE_BUILD_TYPE="${BUILD_TYPE}" \ - -DBUILD_TESTS:BOOL="${BUILD_TESTS:-OFF}" .. + -DBUILD_TESTS:BOOL="${BUILD_TESTS:-OFF}" \ + "${FLAGS[@]}" .. diff --git a/common/travis/install_xcb_xrm.sh b/common/travis/install_xcb_xrm.sh index 46a544b7..455fcc98 100755 --- a/common/travis/install_xcb_xrm.sh +++ b/common/travis/install_xcb_xrm.sh @@ -1,5 +1,11 @@ #!/bin/bash +# Don't install xrm on minimal builds because it is an optional dependency +if [ "$POLYBAR_BUILD_TYPE" == "minimal" ]; then + echo "Not installing xcb-xrm on minimal build" + return 0 +fi + # Fail on error set -e