diff options
author | Michael Stapelberg <michael@stapelberg.de> | 2019-07-29 20:57:48 +0200 |
---|---|---|
committer | Michael Stapelberg <michael@stapelberg.de> | 2019-07-29 21:07:40 +0200 |
commit | 23da59920c4c911ee08498eb283b69bdef80fd65 (patch) | |
tree | 59a9a8bac909e243eabdb2c58e48ec8e5c79f566 /.travis.yml | |
parent | 40aeb7bc44aa0fc8373acb8b57debb1c285e7009 (diff) |
make pulseaudio an optional dependency, follow best practices
For my thoughts about optional dependencies, see
https://michael.stapelberg.ch/posts/2019-05-23-optional-dependencies/
This commit follows the best practices outlined in that article:
1. The travis config was modified to verify both code paths build and link/don’t
link against pulseaudio.
2. If pulseaudio is missing, the build fails until packagers explicitly pass a
--disable flag. In practice, I think the only situation when this flag should
be set is in source-based linux distributions where users can express
package-level compilation preferences (e.g. Gentoo USE flags).
3. The --version output now reflects the status of the optional dependency.
fixes #359
Diffstat (limited to '.travis.yml')
-rw-r--r-- | .travis.yml | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/.travis.yml b/.travis.yml index 7ceaddf..2dbb498 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,5 +22,6 @@ addons: script: - clang-format-3.8 -i $(find . -name "*.[ch]" | tr '\n' ' ') && git diff --exit-code || (echo 'Code was not formatted using clang-format!'; false) # TODO: re-enable sanitizers once issues are fixed - - autoreconf -fi && mkdir -p build && cd build && (../configure --disable-sanitizers || (cat config.log; false)) && make -j V=1 - - make -j check V=1 || (cat test-suite.log; false) + - autoreconf -fi && mkdir -p build && cd build && (../configure --disable-sanitizers || (cat config.log; false)) && make -j 8 V=1 && ldd ./i3status |& grep -q pulse || (echo "not linked against pulseaudio"; exit 1) + - make clean && (../configure --disable-sanitizers --disable-pulseaudio || (cat config.log; false)) && make -j 8 V=1 && ldd ./i3status |& grep -q pulse && (echo "linked against pulseaudio"; exit 1) || true + - make -j 8 check V=1 || (cat test-suite.log; false) |