Skip to content
23 changes: 19 additions & 4 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ addons:

script:
- ./configure $PM_OPTS --prefix=$PWD/local && make -j6 && make install # build from checkout
- make dist && tar -zxf projectM-*.tar.gz && cd projectM-* && ./configure $PM_OPTS --prefix=$PWD/dist_install && make -j6 && make install # build from dist
- export PMVER=$(./configure --version | cut -d ' ' -f 3 | grep -m 1 .) # get pM version
- make dist && tar -zxf projectM-${PMVER}.tar.gz && cd projectM-${PMVER} && ./configure $PM_OPTS --prefix=$PWD/dist_install && make -j6 && make install # build from dist
- echo "PWD=$PWD"
- ls .
- test -e src/projectM-sdl/projectMSDL
Expand All @@ -35,8 +36,9 @@ script:
# test on GCC and Clang
matrix:
include:
# pulseaudio/qt/jack
# qt/pulseaudio/jack/sdl
- os: linux
dist: bionic
addons:
apt:
packages:
Expand All @@ -46,8 +48,21 @@ matrix:
- libjack-dev
- libpulse-dev
- libc++-dev
- libsdl-dev # for jack
- libsdl2-dev # for tests
- libsdl2-dev
env:
- MATRIX_EVAL="PM_OPTS=\"--enable-qt --enable-jack --enable-pulseaudio --enable-sdl\""
- os: linux
dist: xenial
addons:
apt:
packages:
- qt5-default
- qtdeclarative5-dev
- libqt5opengl5-dev
- libjack-dev
- libpulse-dev
- libc++-dev
- libsdl2-dev
env:
- MATRIX_EVAL="PM_OPTS=\"--enable-qt --enable-jack --enable-pulseaudio --enable-sdl\""

Expand Down
23 changes: 15 additions & 8 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ Relevant for Linux distributions, FreeBSD, macOS:

Main build options & their requirements:

| Configure flag | Required dependency | Produced binary |
|-----------------|-------------------------------------------------------------------- |----------------------- |
| `--enable-sdl` | `libsdl2-dev` | `projectMSDL` |
| `--enable-qt` | `qt5-default` `qtdeclarative5-dev` `libpulse-dev` `libqt5opengl5` | `projectM-pulseaudio` |
| `--enable-jack` | `libjack2-dev`OR`libjack1-dev`; `qt5-default` `qtdeclarative5-dev` `libqt5opengl5`| `projectM-jack` |
| Configure flag | Required dependency | Produced binary |
|-----------------------|----------------------------------------------------------------------------------------|-----------------------|
| `--enable-sdl` | `libsdl2-dev` | `projectMSDL` |
| `--enable-pulseaudio` | `qt5-default` `qtdeclarative5-dev` `libpulse-dev` `libqt5opengl5-dev` | `projectM-pulseaudio` |
| `--enable-jack` | `libjack2-dev`OR`libjack1-dev`; `qt5-default` `qtdeclarative5-dev` `libqt5opengl5-dev` | `projectM-jack` |

#### Additional information on dependencies
* `libglm` (headers only) for matrix math is required. lives in `vendor/glm`.
Expand All @@ -25,15 +25,19 @@ If extra information needed - you can refere to `configure.ac` and the assorted

### Building process under *nix systems
```sh
autoreconf --install # only needed if this is a git clone
# For macOS automation there is ./autogen.sh provided for autoreconf

./autogen.sh
./configure --enable-sdl # supply additional options here, info in Dependencies

make
sudo make install
```

### Debian/Ubuntu/Mint
```sh
sudo apt install clang libsdl2-dev libgl1-mesa-dev qt5-default qtdeclarative5-dev libqt5opengl5-dev libjack-dev libpulse-dev
./configure && make -j4 && sudo make install
```

### OpenGL ES
projectM supports OpenGL ES 3 for embedded systems. Be sure to configure with the `--enable--gles` flag.

Expand All @@ -58,6 +62,9 @@ make && make install-strip
Now you should be able to copy ./src/libprojectM/.libs/libprojectM.so
and appropriate headers to projectm-android, and build it using Android Studio

### LLVM JIT
There are some optmizations for parsing preset equations that leverage the LLVM JIT. You can try `./compile --enable--llvm` to enable them. They may not work with newer version of LLVM (https://github.com/projectM-visualizer/projectm/pull/360)


## libprojectM

Expand Down