Travis full matrix
[openjpeg.git] / tools / ctest_scripts / travis-ci.cmake
index 4e6c50df2354c9bb700ad3da07074e696766cf44..fafc54ee5bb2689a4497858425af818696c39c7f 100644 (file)
@@ -40,6 +40,21 @@ if (NOT "$ENV{OPJ_CI_ARCH}" STREQUAL "")
        endif()
 endif()
 
+if ("$ENV{OPJ_CI_ASAN}" STREQUAL "1")
+       set(OPJ_HAS_MEMCHECK TRUE)
+       set(CTEST_MEMORYCHECK_TYPE "AddressSanitizer")
+       set(CCFLAGS_ARCH "${CCFLAGS_ARCH} -g -fsanitize=address -fno-omit-frame-pointer")
+endif()
+
+if("$ENV{CC}" MATCHES ".*mingw.*")
+       # We are trying to use mingw
+       if ("$ENV{OPJ_CI_ARCH}" MATCHES "^i[3-6]86$")
+               set(CTEST_CONFIGURE_OPTIONS "-DCMAKE_TOOLCHAIN_FILE=${CTEST_SCRIPT_DIRECTORY}/toolchain-mingw32.cmake")
+       else()
+               set(CTEST_CONFIGURE_OPTIONS "-DCMAKE_TOOLCHAIN_FILE=${CTEST_SCRIPT_DIRECTORY}/toolchain-mingw64.cmake")
+       endif()
+endif()
+
 if(NOT "$ENV{OPJ_CI_SKIP_TESTS}" STREQUAL "1")
        # To execute part of the encoding test suite, kakadu binaries are needed to decode encoded image and compare 
        # it to the baseline. Kakadu binaries are freely available for non-commercial purposes 
@@ -103,11 +118,14 @@ file(WRITE "${CTEST_BINARY_DIRECTORY}/CMakeCache.txt" "${CACHE_CONTENTS}")
 # Perform a Experimental build
 ctest_start(Experimental)
 #ctest_update(SOURCE "${CTEST_SOURCE_DIRECTORY}")
-ctest_configure(BUILD "${CTEST_BINARY_DIRECTORY}")
+ctest_configure(BUILD "${CTEST_BINARY_DIRECTORY}" OPTIONS "${CTEST_CONFIGURE_OPTIONS}")
 ctest_read_custom_files(${CTEST_BINARY_DIRECTORY})
 ctest_build(BUILD "${CTEST_BINARY_DIRECTORY}")
 if(NOT "$ENV{OPJ_CI_SKIP_TESTS}" STREQUAL "1")
        ctest_test(BUILD "${CTEST_BINARY_DIRECTORY}" PARALLEL_LEVEL 2)
+       if(OPJ_HAS_MEMCHECK)
+               ctest_memcheck(BUILD "${CTEST_BINARY_DIRECTORY}" PARALLEL_LEVEL 2)
+       endif()
 endif()
 if ("$ENV{OPJ_DO_SUBMIT}" STREQUAL "1")
        ctest_submit()