* .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. | |||||