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