Merge pull request #706 from mayeut/issue135
[openjpeg.git] / .travis.yml
index 7587a4d9a523da4f55b980a02e79d2fa42eafb1e..d53145f350d3c89b11d701f1578e366e84ce0a17 100644 (file)
@@ -1,19 +1,67 @@
 language: c
-compiler:
-  - gcc
 
-before_install:
-  - cmake --version
-  - git clone --depth=1 --branch=master git://github.com/uclouvain/openjpeg-data.git data
-  - wget -qO - https://github.com/openpreserve/jpylyzer/archive/1.14.2.tar.gz | tar -xzf
+matrix:
+  include:
+    - os: osx
+      compiler: clang
+      env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release
+    - os: linux
+      compiler: gcc
+      env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release
+    - os: linux
+      compiler: gcc
+      env: OPJ_CI_ARCH=i386 OPJ_CI_BUILD_CONFIGURATION=Release
+      addons:
+        apt:
+          packages:
+            - gcc-multilib
+    - os: linux
+      compiler: gcc
+      env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Debug
+    - os: linux
+      compiler: clang
+      env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Debug OPJ_CI_ASAN=1
+    - os: linux
+      compiler: clang-3.9
+      env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release
+      sudo: true
+    - os: linux
+      compiler: x86_64-w64-mingw32-gcc
+      env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release
+      addons:
+        apt:
+          packages:
+            - gcc-mingw-w64-base
+            - binutils-mingw-w64-x86-64
+            - gcc-mingw-w64-x86-64
+            - gcc-mingw-w64
+    - os: linux
+      compiler: x86_64-w64-mingw32-gcc
+      env: OPJ_CI_ARCH=i386 OPJ_CI_BUILD_CONFIGURATION=Release
+      addons:
+        apt:
+          packages:
+            - gcc-mingw-w64-base
+            - binutils-mingw-w64-i686
+            - gcc-mingw-w64-i686
+            - gcc-mingw-w64      
+    - os: linux
+      compiler: gcc-4.8
+      env: OPJ_CI_ABI_CHECK=1
+      addons:
+        apt:
+          sources:
+            - ubuntu-toolchain-r-test
+          packages:
+            - gcc-4.8
+            - libelf-dev
+            - elfutils
+            - texinfo
+            - exuberant-ctags
+
 install:
-  - chmod +x jpylyzer-1.14.2/jpylyzer/jpylyzer.py
+  - ./tools/travis-ci/install.sh
 
 script:
-    - mkdir build
-    - cd build
-    - cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DBUILD_CODEC=ON -DBUILD_THIRDPARTY=ON -DBUILD_TESTING=ON -DOPJ_DATA_ROOT=${PWD}/../data -DJPYLYZER_EXECUTABLE=${PWD}/../jpylyzer-1.14.2/jpylyzer/jpylyzer.py -DSITE=travis-ci.org -DBUILDNAME=${TRAVIS_OS_NAME}-${CC}$(${CC} -dumpversion)-x86_64-${TRAVIS_BRANCH}$( [[ "${TRAVIS_PULL_REQUEST}" != "false" ]] && echo "-pr${TRAVIS_PULL_REQUEST}" )-Release-3rdP ..
-    - ctest -D ExperimentalStart
-    - ctest -D ExperimentalBuild -V
-    - ctest -D ExperimentalTest -j2 || true
-    - ctest -D ExperimentalSubmit || true
+  - ./tools/travis-ci/run.sh
+  - ./tools/travis-ci/abi-check.sh