diff --git a/.travis.yml b/.travis.yml index d8123e45..db37b78e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,11 @@ env: jobs: include: + - os: linux + env: + - CROSS_COMPILE=mingw32 + - CONTAINER=cross + - os: linux arch: amd64 dist: bionic diff --git a/.travis/after_success.sh b/.travis/after_success.sh index ee85f9a2..3577bb62 100755 --- a/.travis/after_success.sh +++ b/.travis/after_success.sh @@ -1,9 +1,10 @@ #!/bin/bash set -ex +. .travis/environment.sh cd build -make install +buildenv make install tar -zcvf "${INSTALL_DIR}.tar.gz" ${INSTALL_DIR} mv "${INSTALL_DIR}.tar.gz" ${TRAVIS_BUILD_DIR} cd .. diff --git a/.travis/before_install.sh b/.travis/before_install.sh index 07707831..772cebfe 100755 --- a/.travis/before_install.sh +++ b/.travis/before_install.sh @@ -1,18 +1,31 @@ #!/bin/bash set -ex +. .travis/environment.sh cmake_dir="cmake-3.13.0-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}" cmake_arc="${cmake_dir}.tar.gz" cmake_url="https://github.com/sfztools/cmake/releases/download/${TRAVIS_OS_NAME}/${cmake_arc}" -if [[ ${TRAVIS_OS_NAME} == "linux" ]]; then +if [[ ${CROSS_COMPILE} == "mingw32" ]]; then + buildenv bash -c "echo Hello from container" # ensure to start the container + docker cp "$container":/etc/pacman.conf pacman.conf + cat >>pacman.conf < ${TRAVIS_BUILD_DIR}/docker-container-id + fi +} diff --git a/.travis/install.sh b/.travis/install.sh index 082c10e5..cda08d97 100755 --- a/.travis/install.sh +++ b/.travis/install.sh @@ -1,8 +1,13 @@ #!/bin/bash set -ex +. .travis/environment.sh -if [[ ${TRAVIS_OS_NAME} == "linux" ]]; then +if [[ ${CROSS_COMPILE} == "mingw32" ]]; then + buildenv pacman -Sqy --noconfirm + buildenv pacman -Sq --noconfirm base-devel wget mingw-w64-cmake mingw-w64-gcc mingw-w64-pkg-config mingw-w64-libsndfile + buildenv i686-w64-mingw32-gcc -v && buildenv i686-w64-mingw32-g++ -v && buildenv i686-w64-mingw32-cmake --version +elif [[ ${TRAVIS_OS_NAME} == "linux" ]]; then sudo apt-get install libasound2-dev libjack-jackd2-dev libsndfile1-dev lv2-dev gcc -v && g++ -v && cmake --version && /usr/local/bin/cmake --version && $SHELL --version fi diff --git a/.travis/script.sh b/.travis/script.sh index 9c9da4a1..11ad9055 100755 --- a/.travis/script.sh +++ b/.travis/script.sh @@ -1,16 +1,22 @@ #!/bin/bash set -ex +. .travis/environment.sh mkdir -p build/${INSTALL_DIR} && cd build -/usr/local/bin/cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=${PWD}/${INSTALL_DIR} .. -if [[ ${TRAVIS_OS_NAME} == "linux" ]]; then +if [[ ${CROSS_COMPILE} == "mingw32" ]]; then - make -j$(nproc) + buildenv i686-w64-mingw32-cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=${PWD}/${INSTALL_DIR} -DSFIZZ_JACK=OFF .. + buildenv make -j +elif [[ ${TRAVIS_OS_NAME} == "linux" ]]; then + + buildenv cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=${PWD}/${INSTALL_DIR} .. + buildenv make -j$(nproc) elif [[ ${TRAVIS_OS_NAME} == "osx" ]]; then - make -j$(sysctl -n hw.ncpu) + buildenv cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=${PWD}/${INSTALL_DIR} .. + buildenv make -j$(sysctl -n hw.ncpu) # Xcode not currently supported, see https://gitlab.kitware.com/cmake/cmake/issues/18088 # xcodebuild -project sfizz.xcodeproj -alltargets -configuration Debug build diff --git a/.travis/update_dox.sh b/.travis/update_dox.sh index d36f4683..c316015c 100755 --- a/.travis/update_dox.sh +++ b/.travis/update_dox.sh @@ -1,9 +1,10 @@ #!/bin/bash set -x # No fail, we need to go back to the original branch at the end +. .travis/environment.sh # Build documentation only from Linux x86_64 builds -if [[ ${TRAVIS_CPU_ARCH} != "amd64" || ${TRAVIS_OS_NAME} != "linux" ]]; then +if [[ ${TRAVIS_CPU_ARCH} != "amd64" || ${TRAVIS_OS_NAME} != "linux" || "${CROSS_COMPILE}" != "" ]]; then exit 0 fi