Travis integration with more platforms and compilers (#384)
* .ci/install-deps.sh: Install script for dependencies. * .travis.yml: Adding support for gcc 8,7,6,default and xcode 8.3,9.2,default. * .ci/install-deps.sh: Addin libsystemd-dev, opus and portaudio-dev. * .travis.yml: Removing install script covered package installations. Adding branch whitelist for all branches. * .ci/install-deps.sh: Adding executable bit. * ci/install-deps.sh: Moving to non-hidden directory to make execution less painful. * .travis.yml: Properly moving install script to hiddend directory. * .ci/install-deps.sh: Changing to trusty names for libraries and development packages. * .ci/install-deps.sh: Adding systemd, dbus and eigen3. * .ci/install-deps.sh: Adding libsystemd0,libopus-dev, libportaudio2. * .ci/install-deps.sh: Installing random systemd packages in the hopes they are the right ones... fuck yeah, ubuntu packaging hell. * .travis.yml: Setting build and install operations to verbose. * .ci/install-deps.sh: Install script for dependencies. * .travis.yml: Adding support for gcc 8,7,6,default and xcode 8.3,9.2,default. * .ci/install-deps.sh: Addin libsystemd-dev, opus and portaudio-dev. * .travis.yml: Removing install script covered package installations. Adding branch whitelist for all branches. * .ci/install-deps.sh: Adding executable bit. * ci/install-deps.sh: Moving to non-hidden directory to make execution less painful. * .travis.yml: Properly moving install script to hiddend directory. * .ci/install-deps.sh: Changing to trusty names for libraries and development packages. * .ci/install-deps.sh: Adding systemd, dbus and eigen3. * .ci/install-deps.sh: Adding libsystemd0,libopus-dev, libportaudio2. * .ci/install-deps.sh: Installing random systemd packages in the hopes they are the right ones... fuck yeah, ubuntu packaging hell. * .travis.yml: Setting build and install operations to verbose. * .ci/install-deps.sh: Adding berkeley db. * .travis.yml: Using default prefix on Linux (installing to /usr fails on travis - probably already installed). * .travis.yml: Adding back /usr prefix and adding sudo to install call. * README.rst: Adding initial version of a rst based README (only introduction and build information). * README.rst: Adding link to website in title. Fixing resource type to be image for build status image. Fixing sub bullet lists. * README.rst: Fixing bullet lists according to rst spec. * .travis.yml: Adding hacks for building with gcc on macOS. * .travis.yml: Adding missing envs and compiler types to macOS builds. * .ci/install-deps.sh: Fixing name of package portaudio19-dev. * .travis.yml: Adding comments to default gcc/clang versions. Unifying call to brew update with removal of custom c++ executable. * .ci/install-deps.sh: Adding install of gcc versions on macOS depending on CC variable. * .travis.yml: Removing installation of gcc from matrix setup (the local c++ executable has to be removed first). * .ci/install-deps.sh: Install the right gcc formula using brew. * .travis.yml: Also set CXX to gcc6, if CC is set to it. * .travis.yml: Removing disabling of options (they will be disabled automatically, if not available). * .travis.yml: Looking at what we're deleting in /usr/local/include/c++. * .travis.yml: Uninstalling oclint, if it's installed, as it conflicts with gcc. * .travis.yml: Test what removal of include-fixed stdio.h will do (otherwise there's a broken include of a _stdio.h). * .travis.yml: Creating one-liner for header removal, adding ; to configure. * .travis.yml: Fixing indent. Adding ; for one-liner. * .travis.yml: Moving to xcode9.2 image for testing, as the stdio.h issue seems xcode related (probably a bug with 9.4). Removing header removal. * .travis.yml: Adding -flax-vector-conversions to CXXFLAGS to fix vector conversion problems. * .travis.yml: Trying xcode8.3 with the build in the hopes that CoreAudio will behave more nicely. * .travis.yml: Moving to clang for all OSX based builds for now, as brew installed gcc proves to be very complicated. * .travis.yml: Removing support for Xcode 7.3. That stuff is too old.
This commit is contained in:
parent
a3a3eae791
commit
407e8c0513
|
@ -0,0 +1,66 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
|
||||
brew install --c++11 \
|
||||
pkg-config \
|
||||
aften \
|
||||
libsamplerate \
|
||||
libsndfile \
|
||||
opus \
|
||||
readline \
|
||||
doxygen
|
||||
# force installation of gcc-6 if required
|
||||
if [ "${CC}" == "gcc-6" ]; then
|
||||
brew install gcc@6
|
||||
fi
|
||||
# force installation of gcc-7 if required
|
||||
if [ "${CC}" == "gcc-7" ]; then
|
||||
brew install gcc@7
|
||||
fi
|
||||
# force installation of gcc-8 if required
|
||||
if [ "${CC}" == "gcc-8" ]; then
|
||||
brew install gcc@8
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$TRAVIS_OS_NAME" == "linux" ]; then
|
||||
# autotools, automake, make are present in the trusty image
|
||||
sudo apt-get install -y \
|
||||
doxygen \
|
||||
libffado-dev \
|
||||
libsamplerate-dev \
|
||||
libsndfile-dev \
|
||||
libasound2-dev \
|
||||
libdb-dev \
|
||||
systemd-services \
|
||||
systemd \
|
||||
libsystemd-journal-dev \
|
||||
libsystemd-login-dev \
|
||||
libsystemd-id128-dev \
|
||||
libsystemd-daemon-dev \
|
||||
libpam-systemd \
|
||||
libdbus-1-dev \
|
||||
libeigen3-dev \
|
||||
libopus-dev \
|
||||
portaudio19-dev
|
||||
# force installation of gcc-6 if required
|
||||
if [ "${CC}" == "gcc-6" ]; then
|
||||
sudo apt-get install gcc-6 g++-6
|
||||
fi
|
||||
# force installation of gcc-7 if required
|
||||
if [ "${CC}" == "gcc-7" ]; then
|
||||
sudo apt-get install gcc-7 g++-7
|
||||
fi
|
||||
# force installation of gcc-8 if required
|
||||
if [ "${CC}" == "gcc-8" ]; then
|
||||
sudo apt-get install gcc-8 g++-8
|
||||
fi
|
||||
# force installation of clang-3.8 if required
|
||||
if [ "${CC}" == "clang-3.8" ]; then
|
||||
sudo apt-get install clang-3.8
|
||||
fi
|
||||
fi
|
||||
|
||||
exit 0
|
141
.travis.yml
141
.travis.yml
|
@ -1,34 +1,115 @@
|
|||
sudo: false
|
||||
os:
|
||||
- osx
|
||||
- linux
|
||||
language:
|
||||
- cpp
|
||||
compiler:
|
||||
- gcc
|
||||
- clang
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- libsamplerate-dev
|
||||
- libsndfile-dev
|
||||
- libasound2-dev
|
||||
|
||||
before_install:
|
||||
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update; fi
|
||||
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew outdated pkg-config || brew upgrade pkg-config; fi
|
||||
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install aften; fi
|
||||
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install libsamplerate; fi
|
||||
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install libsndfile; fi
|
||||
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install opus; fi
|
||||
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install readline; fi
|
||||
|
||||
script:
|
||||
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then ./waf configure --alsa; fi
|
||||
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then ./waf configure --opus=no --readline=no; fi
|
||||
- ./waf build
|
||||
sudo: required
|
||||
|
||||
matrix:
|
||||
exclude:
|
||||
- os: osx
|
||||
compiler: gcc
|
||||
include:
|
||||
# linux with gcc 8
|
||||
- os: linux
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
install:
|
||||
- gcc-8
|
||||
dist: trusty
|
||||
env:
|
||||
- MATRIX_EVAL="CC=gcc-8 CXX=g++-8"
|
||||
compiler: gcc
|
||||
# linux with gcc 7
|
||||
- os: linux
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
install:
|
||||
- gcc-7
|
||||
dist: trusty
|
||||
env:
|
||||
- MATRIX_EVAL="CC=gcc-7 CXX=g++-7"
|
||||
compiler: gcc
|
||||
# linux with gcc 6
|
||||
- os: linux
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
install:
|
||||
- gcc-6
|
||||
dist: trusty
|
||||
env:
|
||||
- MATRIX_EVAL="CC=gcc-6 CXX=g++-6"
|
||||
compiler: gcc
|
||||
# linux with gcc default (4.8)
|
||||
- os: linux
|
||||
dist: trusty
|
||||
compiler: gcc
|
||||
# linux with clang default (3.5)
|
||||
- os: linux
|
||||
dist: trusty
|
||||
compiler: clang
|
||||
# linux with clang 3.8
|
||||
- os: linux
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
install:
|
||||
- clang-3.8
|
||||
dist: trusty
|
||||
env:
|
||||
- MATRIX_EVAL="CC=clang-3.8 CXX=clang++-3.8"
|
||||
compiler: clang
|
||||
# osx with xcode8.3/clang
|
||||
- os: osx
|
||||
osx_image: xcode8.3
|
||||
compiler: clang
|
||||
# osx with xcode9.2/clang
|
||||
- os: osx
|
||||
osx_image: xcode9.2
|
||||
compiler: clang
|
||||
# osx with xcode10.0/clang
|
||||
- os: osx
|
||||
osx_image: xcode10
|
||||
compiler: clang
|
||||
# osx with xcode10.1/clang
|
||||
- os: osx
|
||||
osx_image: xcode10.1
|
||||
compiler: clang
|
||||
# osx with xcode/clang (default)
|
||||
- os: osx
|
||||
compiler: clang
|
||||
|
||||
before_install:
|
||||
- eval "${MATRIX_EVAL}"
|
||||
# uninstalling oclint, as it's preinstalled and conflicts with all versions of gcc
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
brew cask uninstall oclint || true
|
||||
brew update;
|
||||
fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get -qq update; fi
|
||||
|
||||
install:
|
||||
- ./.ci/install-deps.sh
|
||||
|
||||
before_script:
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig; fi
|
||||
|
||||
script:
|
||||
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then
|
||||
./waf configure --prefix=/usr --alsa --classic --dbus;
|
||||
./waf -v build;
|
||||
fi
|
||||
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then
|
||||
CXXFLAGS="${CXXFLAGS} -flax-vector-conversions" ./waf configure;
|
||||
CXXFLAGS="${CXXFLAGS} -flax-vector-conversions" ./waf -v build;
|
||||
fi
|
||||
- sudo ./waf -v install
|
||||
|
||||
branches:
|
||||
only:
|
||||
- /.*/
|
||||
|
||||
notifications:
|
||||
email: false
|
||||
# vim:set ts=2 sw=2 et:
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
`JACK2 <http://jackaudio.org/>`_
|
||||
################################
|
||||
|
||||
.. image:: https://travis-ci.org/jackaudio/jack2.svg?branch=master
|
||||
:target: https://travis-ci.org/jackaudio/jack2
|
||||
|
||||
JACK2 aka jackdmp is a C++ version of the JACK low-latency audio server for
|
||||
multi-processor machines. It is a new implementation of the JACK server core
|
||||
features that aims in removing some limitations of the JACK1 design. The
|
||||
activation system has been changed for a data flow model and lock-free
|
||||
programming techniques for graph access have been used to have a more dynamic
|
||||
and robust system.
|
||||
|
||||
- uses a new client activation model, that allows simultaneous client
|
||||
execution (on a SMP machine) when parallel clients exist in the graph (client
|
||||
that have the same inputs). This activation model allows to better use
|
||||
available CPU on a smp machine, but also works on mono-processor machine.
|
||||
|
||||
- uses a lock-free way to access (read/write) the client graph, thus
|
||||
allowing connections/disconnection to be done without interrupting the audio
|
||||
stream. The result is that connections/disconnections are glitch-free.
|
||||
|
||||
- can work in two different modes at the server level:
|
||||
|
||||
- *synchronous activation*: in a given cycle, the server waits for all
|
||||
clients to be finished (similar to normal jackd)
|
||||
|
||||
- *asynchronous activation*: in a given cycle, the server does not wait for
|
||||
all clients to be finished and use output buffer computed the previous
|
||||
cycle.
|
||||
The audible result of this mode is that if a client is not activated
|
||||
during one cycle, other clients may still run and the resulting audio
|
||||
stream will still be produced (even if its partial in some way). This
|
||||
mode usually result in fewer (less audible) audio glitches in a loaded
|
||||
system.
|
||||
|
Loading…
Reference in New Issue