diff --git a/.travis.yml b/.travis.yml index 1b25b0f60..390f7f0b6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,28 +1,20 @@ language: cpp compiler: gcc -env: - - TARGET_OS=linux - - TARGET_OS=win32 - - TARGET_OS=win64 +matrix: + include: + - env: TARGET_OS=win32 + - env: TARGET_OS=win64 + - os: osx before_install: - - if [ $TARGET_OS != linux ]; then sudo add-apt-repository ppa:tobydox/mingw -y; fi - # Travis only has CMake 2.8.7, we need >=2.8.8: - - if [ $TARGET_OS == linux ]; then sudo add-apt-repository ppa:kalakris/cmake -y; fi - - sudo apt-get update -qq - - if [ $TARGET_OS == linux ]; then sudo apt-get install -y cmake; fi + - sh ${TRAVIS_BUILD_DIR}/.travis/${TRAVIS_OS_NAME}.${TARGET_OS}.before_install.sh install: - - if [ $TARGET_OS != linux ]; then sudo apt-get install -y nsis cloog-isl libmpc2 mingw32; fi - - if [ $TARGET_OS != linux ]; then sudo apt-get install -y mingw32-x-qt mingw32-x-sdl mingw32-x-libvorbis mingw32-x-fluidsynth mingw32-x-stk mingw32-x-glib2 mingw32-x-portaudio mingw32-x-libsndfile mingw32-x-fftw mingw32-x-flac mingw32-x-fltk mingw32-x-libsamplerate mingw32-x-pkgconfig mingw32-x-binutils mingw32-x-gcc mingw32-x-runtime mingw32-x-libgig; fi - - if [ $TARGET_OS == win64 ]; then sudo apt-get install -y mingw64-x-qt mingw64-x-sdl mingw64-x-libvorbis mingw64-x-fluidsynth mingw64-x-stk mingw64-x-glib2 mingw64-x-portaudio mingw64-x-libsndfile mingw64-x-fftw mingw64-x-flac mingw64-x-fltk mingw64-x-libsamplerate mingw64-x-pkgconfig mingw64-x-binutils mingw64-x-gcc mingw64-x-runtime mingw64-x-libgig; fi - - if [ $TARGET_OS == linux ]; then sudo apt-get install -y libqt4-dev libsndfile-dev fftw3-dev libvorbis-dev libogg-dev libasound2-dev libjack-dev libsdl-dev libsamplerate0-dev libstk0-dev libfluidsynth-dev portaudio19-dev wine-dev g++-multilib libfltk1.3-dev libgig-dev; fi + - sh ${TRAVIS_BUILD_DIR}/.travis/${TRAVIS_OS_NAME}.${TARGET_OS}.install.sh before_script: - mkdir build && cd build script: - - if [ $TARGET_OS == win32 ]; then ../build_mingw32 || ../build_mingw32; fi - - if [ $TARGET_OS == win64 ]; then ../build_mingw64 || ../build_mingw64; fi - - if [ $TARGET_OS == linux ]; then cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..; fi + - sh ${TRAVIS_BUILD_DIR}/.travis/${TRAVIS_OS_NAME}.${TARGET_OS}.script.sh - make -j4 VERBOSE=1 - - if [ $TARGET_OS == linux ]; then make tests && ./tests/tests; fi + - if [[ $TARGET_OS != win* ]]; then make tests && ./tests/tests; fi; before_deploy: make package deploy: provider: releases diff --git a/.travis/linux..before_install.sh b/.travis/linux..before_install.sh new file mode 100644 index 000000000..233bd784f --- /dev/null +++ b/.travis/linux..before_install.sh @@ -0,0 +1,2 @@ +sudo add-apt-repository ppa:kalakris/cmake -y; +sudo apt-get update -qq diff --git a/.travis/linux..install.sh b/.travis/linux..install.sh new file mode 100644 index 000000000..49a6ea466 --- /dev/null +++ b/.travis/linux..install.sh @@ -0,0 +1,4 @@ +sudo apt-get install -y cmake libqt4-dev libsndfile-dev fftw3-dev libvorbis-dev \ + libogg-dev libasound2-dev libjack-dev libsdl-dev libsamplerate0-dev \ + libstk0-dev libfluidsynth-dev portaudio19-dev wine-dev g++-multilib \ + libfltk1.3-dev libgig-dev diff --git a/.travis/linux..script.sh b/.travis/linux..script.sh new file mode 100644 index 000000000..d89b130db --- /dev/null +++ b/.travis/linux..script.sh @@ -0,0 +1 @@ +cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .. diff --git a/.travis/linux.win32.before_install.sh b/.travis/linux.win32.before_install.sh new file mode 100644 index 000000000..02a9be79d --- /dev/null +++ b/.travis/linux.win32.before_install.sh @@ -0,0 +1,2 @@ +sudo add-apt-repository ppa:tobydox/mingw -y +sudo apt-get update -qq diff --git a/.travis/linux.win32.install.sh b/.travis/linux.win32.install.sh new file mode 100644 index 000000000..86babb1b7 --- /dev/null +++ b/.travis/linux.win32.install.sh @@ -0,0 +1,7 @@ +sudo apt-get install -y nsis cloog-isl libmpc2 mingw32 + +sudo apt-get install -y mingw32-x-qt mingw32-x-sdl mingw32-x-libvorbis \ + mingw32-x-fluidsynth mingw32-x-stk mingw32-x-glib2 mingw32-x-portaudio \ + mingw32-x-libsndfile mingw32-x-fftw mingw32-x-flac mingw32-x-fltk \ + mingw32-x-libsamplerate mingw32-x-pkgconfig mingw32-x-binutils \ + mingw32-x-gcc mingw32-x-runtime mingw32-x-libgig diff --git a/.travis/linux.win32.script.sh b/.travis/linux.win32.script.sh new file mode 100644 index 000000000..3831a842f --- /dev/null +++ b/.travis/linux.win32.script.sh @@ -0,0 +1 @@ +../build_mingw32 || ../build_mingw32 diff --git a/.travis/linux.win64.before_install.sh b/.travis/linux.win64.before_install.sh new file mode 100644 index 000000000..a598ff1ca --- /dev/null +++ b/.travis/linux.win64.before_install.sh @@ -0,0 +1 @@ +sh .travis/linux.win32.before_install.sh diff --git a/.travis/linux.win64.install.sh b/.travis/linux.win64.install.sh new file mode 100644 index 000000000..75cc3bcf1 --- /dev/null +++ b/.travis/linux.win64.install.sh @@ -0,0 +1,7 @@ +sh .travis/linux.win32.install.sh + +sudo apt-get install -y mingw64-x-qt mingw64-x-sdl mingw64-x-libvorbis \ + mingw64-x-fluidsynth mingw64-x-stk mingw64-x-glib2 mingw64-x-portaudio \ + mingw64-x-libsndfile mingw64-x-fftw mingw64-x-flac mingw64-x-fltk \ + mingw64-x-libsamplerate mingw64-x-pkgconfig mingw64-x-binutils mingw64-x-gcc\ + mingw64-x-runtime mingw64-x-libgig diff --git a/.travis/linux.win64.script.sh b/.travis/linux.win64.script.sh new file mode 100644 index 000000000..7c6c4f96a --- /dev/null +++ b/.travis/linux.win64.script.sh @@ -0,0 +1 @@ +../build_mingw64 || ../build_mingw64 diff --git a/.travis/osx..before_install.sh b/.travis/osx..before_install.sh new file mode 100644 index 000000000..3387d7dcf --- /dev/null +++ b/.travis/osx..before_install.sh @@ -0,0 +1 @@ +brew update diff --git a/.travis/osx..install.sh b/.travis/osx..install.sh new file mode 100644 index 000000000..af530b225 --- /dev/null +++ b/.travis/osx..install.sh @@ -0,0 +1 @@ +brew install qt libsndfile fftw libvorbis libogg jack sdl libsamplerate stk fluid-synth portaudio fltk diff --git a/.travis/osx..script.sh b/.travis/osx..script.sh new file mode 100644 index 000000000..d89b130db --- /dev/null +++ b/.travis/osx..script.sh @@ -0,0 +1 @@ +cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .. diff --git a/cmake/modules/BuildPlugin.cmake b/cmake/modules/BuildPlugin.cmake index 0fba9e829..3add78661 100644 --- a/cmake/modules/BuildPlugin.cmake +++ b/cmake/modules/BuildPlugin.cmake @@ -53,6 +53,7 @@ MACRO(BUILD_PLUGIN PLUGIN_NAME) IF(LMMS_BUILD_APPLE) SET_TARGET_PROPERTIES(${PLUGIN_NAME} PROPERTIES LINK_FLAGS "-bundle_loader ${CMAKE_BINARY_DIR}/lmms") + ADD_DEPENDENCIES(${PLUGIN_NAME} lmms) ENDIF(LMMS_BUILD_APPLE) IF(LMMS_BUILD_WIN32) SET_TARGET_PROPERTIES(${PLUGIN_NAME} PROPERTIES PREFIX "") diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 56520dd89..0a2df0256 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,6 +1,6 @@ -IF(CMAKE_MAJOR_VERSION LESS 2 OR - CMAKE_MINOR_VERSION LESS 8 OR - CMAKE_PATCH_VERSION LESS 8) +IF(NOT (CMAKE_MAJOR_VERSION GREATER 2 OR + CMAKE_MINOR_VERSION GREATER 8 OR + CMAKE_PATCH_VERSION GREATER 7)) MESSAGE("-- Unit tests are only available in CMake >=2.8.8. You have ${CMAKE_VERSION}") RETURN() ENDIF()