* .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.tags/v1.9.13
@@ -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 |
@@ -1,34 +1,115 @@ | |||||
sudo: false | |||||
os: | |||||
- osx | |||||
- linux | |||||
language: | language: | ||||
- cpp | - cpp | ||||
compiler: | |||||
- gcc | |||||
- clang | |||||
addons: | |||||
apt: | |||||
packages: | |||||
- libsamplerate-dev | |||||
- libsndfile-dev | |||||
- libasound2-dev | |||||
sudo: required | |||||
matrix: | |||||
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: | 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 | |||||
- 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: | 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 | |||||
- 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 | |||||
matrix: | |||||
exclude: | |||||
- os: osx | |||||
compiler: gcc | |||||
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. | |||||