From 747cdfe7f56eea383d6654d9108898d29ff772fc Mon Sep 17 00:00:00 2001 From: patrick96 Date: Sat, 19 May 2018 17:13:23 +0200 Subject: [PATCH] refactor(travis): Add minimal build configuration Uses none of the optional dependencies. This ensures that polybar can build without any of the supposedly optional dependencies. This would have detected the cause of the xrm build failure before it was merged --- .travis.yml | 6 ++++++ common/travis/configure.sh | 25 ++++++++++++++++++++++++- common/travis/install_xcb_xrm.sh | 6 ++++++ 3 files changed, 36 insertions(+), 1 deletion(-) 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