.travis.yml: add a configuration to test compilation of AVX2 (but disable tests since... 957/head
authorEven Rouault <even.rouault@spatialys.com>
Wed, 21 Jun 2017 10:28:51 +0000 (12:28 +0200)
committerEven Rouault <even.rouault@spatialys.com>
Wed, 21 Jun 2017 10:41:56 +0000 (12:41 +0200)
.travis.yml
tools/ctest_scripts/travis-ci.cmake

index 78c638d8b2f61087d3b25011163bbd2e5ff06a1a..6747fe30b969201f0fef981b656f99e4a95863bd 100644 (file)
@@ -2,9 +2,12 @@ language: cpp
 
 matrix:
   include:
+# OSX
     - os: osx
       compiler: clang
       env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release OPJ_CI_INCLUDE_IF_DEPLOY=1
+
+# Test code style
     - os: linux
       compiler: clang-3.8
       env: OPJ_CI_CC=clang-3.8 OPJ_CI_CXX=clang-3.8 OPJ_CI_CHECK_STYLE=1 OPJ_CI_SKIP_TESTS=1
@@ -16,12 +19,31 @@ matrix:
           packages:
             - clang-3.8
             - flip
+
+# Performance test with GCC
     - os: linux
       compiler: g++
       env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release OPJ_CI_INCLUDE_IF_DEPLOY=1 OPJ_CI_PERF_TESTS=1
+
+# Test compilation with AVX2
+    - os: linux
+      compiler: clang-3.8
+      # skip tests since Travis doesn't have AVX2 compatible machines
+      env: OPJ_CI_CC=clang-3.8 OPJ_CI_CXX=clang-3.8 OPJ_CI_INSTRUCTION_SETS="-mavx2" OPJ_CI_BUILD_CONFIGURATION=Release OPJ_CI_SKIP_TESTS=1
+      addons:
+        apt:
+          sources:
+            - llvm-toolchain-precise-3.8
+            - ubuntu-toolchain-r-test
+          packages:
+            - clang-3.8
+
+# Test multi-threading
     - os: linux
       compiler: g++
       env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release OPJ_NUM_THREADS=2
+
+# Test 32-bit compilation
     - os: linux
       compiler: g++
       env: OPJ_CI_ARCH=i386 OPJ_CI_BUILD_CONFIGURATION=Release
@@ -30,6 +52,8 @@ matrix:
           packages:
             - gcc-multilib
             - g++-multilib
+
+# Profile code (gcc -pg)
     - os: linux
       compiler: g++
       env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Debug OPJ_CI_PROFILE=1
@@ -37,9 +61,13 @@ matrix:
         apt:
           packages:
             - valgrind
+
+# Test under ASAN
     - os: linux
       compiler: clang
       env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Debug OPJ_CI_ASAN=1
+
+# Test with CLang 3.8
     - os: linux
       compiler: clang-3.8
       env: OPJ_CI_CC=clang-3.8 OPJ_CI_CXX=clang-3.8 OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release OPJ_CI_PERF_TESTS=1
@@ -50,6 +78,8 @@ matrix:
             - ubuntu-toolchain-r-test
           packages:
             - clang-3.8
+
+# Test with mingw 32 bit
     - os: linux
       compiler: x86_64-w64-mingw32-g++
       env: OPJ_CI_CC=x86_64-w64-mingw32-gcc OPJ_CI_CXX=x86_64-w64-mingw32-g++ OPJ_CI_ARCH=i386 OPJ_CI_BUILD_CONFIGURATION=Release
@@ -63,6 +93,8 @@ matrix:
             - g++-mingw-w64-i686
             - gcc-multilib
             - g++-multilib
+
+# Test with mingw 64 bit
     - os: linux
       compiler: x86_64-w64-mingw32-g++
       env: OPJ_CI_CC=x86_64-w64-mingw32-gcc OPJ_CI_CXX=x86_64-w64-mingw32-g++ OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release
@@ -74,6 +106,8 @@ matrix:
             - gcc-mingw-w64-x86-64
             - gcc-mingw-w64
             - g++-mingw-w64-x86-64
+
+# Test with gcc 4.8
     - os: linux
       compiler: g++-4.8
       env: OPJ_CI_CC=gcc-4.8 OPJ_CI_CXX=g++-4.8 OPJ_CI_ABI_CHECK=1
index 828b5af4de18d92c2729d353ee408584710d7c63..75ed6f6bf0b3faaf418bb5a843c97561d4228e33 100644 (file)
@@ -53,6 +53,11 @@ if (NOT "$ENV{OPJ_CI_ARCH}" STREQUAL "")
        endif()
 endif()
 
+if (NOT "$ENV{OPJ_CI_INSTRUCTION_SETS}" STREQUAL "")
+       set(CCFLAGS_ARCH "${CCFLAGS_ARCH} $ENV{OPJ_CI_INSTRUCTION_SETS}")
+endif()
+
+
 if ("$ENV{OPJ_CI_ASAN}" STREQUAL "1")
        set(OPJ_HAS_MEMCHECK TRUE)
        set(CTEST_MEMORYCHECK_TYPE "AddressSanitizer")