--- /dev/null
+language: c
+addons:
+ apt:
+ sources:
+ - ubuntu-toolchain-r-test
+ packages:
+ - binutils-mingw-w64-i686
+ - binutils-mingw-w64-x86-64
+ - gcc-mingw-w64
+ - gcc-mingw-w64-base
+ - gcc-mingw-w64-i686
+ - gcc-mingw-w64-x86-64
+ - gcc-multilib
+jobs:
+ include:
+# Testing on Linux GCC
+ - name: "Linux/GCC/Shared"
+ os: linux
+ dist: focal
+ compiler: gcc
+ env:
+ - BUILD_DIR=unix
+ - name: "Linux/GCC/Shared: UTF_MAX=4"
+ os: linux
+ dist: focal
+ compiler: gcc
+ env:
+ - BUILD_DIR=unix
+ - CFGOPT=CFLAGS=-DTCL_UTF_MAX=4
+ - name: "Linux/GCC/Shared: UTF_MAX=6"
+ os: linux
+ dist: focal
+ compiler: gcc
+ env:
+ - BUILD_DIR=unix
+ - CFGOPT=CFLAGS=-DTCL_UTF_MAX=6
+ - name: "Linux/GCC/Static"
+ os: linux
+ dist: focal
+ compiler: gcc
+ env:
+ - CFGOPT="--disable-shared"
+ - BUILD_DIR=unix
+ - name: "Linux/GCC/Debug"
+ os: linux
+ dist: focal
+ compiler: gcc
+ env:
+ - BUILD_DIR=unix
+ - CFGOPT="--enable-symbols"
+ - name: "Linux/GCC/Mem-Debug"
+ os: linux
+ dist: focal
+ compiler: gcc
+ env:
+ - BUILD_DIR=unix
+ - CFGOPT="--enable-symbols=mem"
+# Newer/Older versions of GCC
+ - name: "Linux/GCC 10/Shared"
+ os: linux
+ dist: focal
+ compiler: gcc-10
+ addons:
+ apt:
+ packages:
+ - g++-10
+ env:
+ - BUILD_DIR=unix
+ - name: "Linux/GCC 5/Shared"
+ os: linux
+ dist: bionic
+ compiler: gcc-5
+ addons:
+ apt:
+ packages:
+ - g++-5
+ env:
+ - BUILD_DIR=unix
+# Testing on Linux Clang
+ - name: "Linux/Clang/Shared"
+ os: linux
+ dist: focal
+ compiler: clang
+ env:
+ - BUILD_DIR=unix
+ - name: "Linux/Clang/Static"
+ os: linux
+ dist: focal
+ compiler: clang
+ env:
+ - CFGOPT="--disable-shared"
+ - BUILD_DIR=unix
+ - name: "Linux/Clang/Debug"
+ os: linux
+ dist: focal
+ compiler: clang
+ env:
+ - BUILD_DIR=unix
+ - CFGOPT="--enable-symbols"
+ - name: "Linux/Clang/Mem-Debug"
+ os: linux
+ dist: focal
+ compiler: clang
+ env:
+ - BUILD_DIR=unix
+ - CFGOPT="--enable-symbols=mem"
+# Testing on Mac, various styles
+ - name: "macOS/Xcode 12/Shared"
+ os: osx
+ osx_image: xcode12.2
+ env:
+ - BUILD_DIR=macosx
+ install: []
+ script: &mactest
+ - make all
+ # The styles=develop avoids some weird problems on OSX
+ - make test styles=develop
+ - name: "macOS/Xcode 12/Shared/Unix-like"
+ os: osx
+ osx_image: xcode12.2
+ env:
+ - BUILD_DIR=unix
+ - CFGOPT="--enable-dtrace"
+# Newer MacOS versions
+ - name: "macOS/Xcode 12/Universal Apps/Shared"
+ os: osx
+ osx_image: xcode12u
+ env:
+ - BUILD_DIR=macosx
+ install: []
+ script: *mactest
+# Older MacOS versions
+ - name: "macOS/Xcode 11/Shared"
+ os: osx
+ osx_image: xcode11.7
+ env:
+ - BUILD_DIR=macosx
+ install: []
+ script: *mactest
+ - name: "macOS/Xcode 10/Shared"
+ os: osx
+ osx_image: xcode10.3
+ env:
+ - BUILD_DIR=macosx
+ install: []
+ script: *mactest
+ - name: "macOS/Xcode 9/Shared"
+ os: osx
+ osx_image: xcode9.4
+ env:
+ - BUILD_DIR=macosx
+ install: []
+ script: *mactest
+ - name: "macOS/Xcode 8/Shared"
+ os: osx
+ osx_image: xcode8.3
+ env:
+ - BUILD_DIR=macosx
+ install: []
+ script: *mactest
+# Test with mingw-w64 cross-compile
+# Doesn't run tests because wine is only an imperfect Windows emulation
+ - name: "Linux-cross-Windows/GCC/Shared/no test"
+ os: linux
+ dist: focal
+ compiler: x86_64-w64-mingw32-gcc
+ env:
+ - BUILD_DIR=win
+ - CFGOPT="--host=x86_64-w64-mingw32 --enable-64bit"
+ script: &crosstest
+ - make all tcltest
+ # Include a high visibility marker that tests are skipped outright
+ - >
+ echo "`tput setaf 3`SKIPPED TEST: CROSS COMPILING`tput sgr0`"
+# Test with mingw-w64 (32 bit) cross-compile
+# Doesn't run tests because wine is only an imperfect Windows emulation
+ - name: "Linux-cross-Windows-32/GCC/Shared/no test"
+ os: linux
+ dist: focal
+ compiler: i686-w64-mingw32-gcc
+ env:
+ - BUILD_DIR=win
+ - CFGOPT=--host=i686-w64-mingw32
+ script: *crosstest
+# Test on Windows with MSVC native
+ - name: "Windows/MSVC/Shared"
+ os: windows
+ compiler: cl
+ env: &vcenv
+ - BUILD_DIR=win
+ - VCDIR="/C/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Auxiliary/Build"
+ before_install: &vcpreinst
+ - touch generic/tclStubInit.c generic/tclOOStubInit.c
+ - PATH="$PATH:$VCDIR"
+ - cd ${BUILD_DIR}
+ install: []
+ script:
+ - cmd.exe //C vcvarsall.bat x64 '&&' nmake '-f' makefile.vc all tcltest
+ - cmd.exe //C vcvarsall.bat x64 '&&' nmake '-f' makefile.vc test
+ - name: "Windows/MSVC/Shared: UTF_MAX=4"
+ os: windows
+ compiler: cl
+ env: *vcenv
+ before_install: *vcpreinst
+ install: []
+ script:
+ - cmd.exe //C vcvarsall.bat x64 '&&' nmake 'OPTS=utfmax' '-f' makefile.vc all tcltest
+ - cmd.exe //C vcvarsall.bat x64 '&&' nmake 'OPTS=utfmax' '-f' makefile.vc test
+ - name: "Windows/MSVC/Static"
+ os: windows
+ compiler: cl
+ env: *vcenv
+ before_install: *vcpreinst
+ install: []
+ script:
+ - cmd.exe //C vcvarsall.bat x64 '&&' nmake 'OPTS=static,msvcrt' '-f' makefile.vc all tcltest
+ - cmd.exe //C vcvarsall.bat x64 '&&' nmake 'OPTS=static,msvcrt' '-f' makefile.vc test
+ - name: "Windows/MSVC/StaticPackage"
+ os: windows
+ compiler: cl
+ env: *vcenv
+ before_install: *vcpreinst
+ install: []
+ script:
+ - cmd.exe //C vcvarsall.bat x64 '&&' nmake 'OPTS=static,staticpkg,msvcrt' '-f' makefile.vc all tcltest
+ - cmd.exe //C vcvarsall.bat x64 '&&' nmake 'OPTS=static,staticpkg,msvcrt' '-f' makefile.vc test
+ - name: "Windows/MSVC/Debug"
+ os: windows
+ compiler: cl
+ env: *vcenv
+ before_install: *vcpreinst
+ install: []
+ script:
+ - cmd.exe //C vcvarsall.bat x64 '&&' nmake 'OPTS=symbols' '-f' makefile.vc all tcltest
+ - cmd.exe //C vcvarsall.bat x64 '&&' nmake 'OPTS=symbols' '-f' makefile.vc test
+ - name: "Windows/MSVC/Mem-Debug"
+ os: windows
+ compiler: cl
+ env: *vcenv
+ before_install: *vcpreinst
+ install: []
+ script:
+ - cmd.exe //C vcvarsall.bat x64 '&&' nmake 'STATS=memdbg' '-f' makefile.vc all tcltest
+ - cmd.exe //C vcvarsall.bat x64 '&&' nmake 'STATS=memdbg' '-f' makefile.vc test
+# Test on Windows with MSVC native (32-bit)
+ - name: "Windows/MSVC-x86/Shared"
+ os: windows
+ compiler: cl
+ env: *vcenv
+ before_install: *vcpreinst
+ install: []
+ script:
+ - cmd.exe //C vcvarsall.bat x86 '&&' nmake '-f' makefile.vc all tcltest
+ - cmd.exe //C vcvarsall.bat x86 '&&' nmake '-f' makefile.vc test
+ - name: "Windows/MSVC-x86/Shared: UTF_MAX=4"
+ os: windows
+ compiler: cl
+ env: *vcenv
+ before_install: *vcpreinst
+ install: []
+ script:
+ - cmd.exe //C vcvarsall.bat x86 '&&' nmake 'OPTS=utfmax' '-f' makefile.vc all tcltest
+ - cmd.exe //C vcvarsall.bat x86 '&&' nmake 'OPTS=utfmax' '-f' makefile.vc test
+ - name: "Windows/MSVC-x86/Static"
+ os: windows
+ compiler: cl
+ env: *vcenv
+ before_install: *vcpreinst
+ install: []
+ script:
+ - cmd.exe //C vcvarsall.bat x86 '&&' nmake 'OPTS=static,msvcrt' '-f' makefile.vc all tcltest
+ - cmd.exe //C vcvarsall.bat x86 '&&' nmake 'OPTS=static,msvcrt' '-f' makefile.vc test
+ - name: "Windows/MSVC-x86/Debug"
+ os: windows
+ compiler: cl
+ env: *vcenv
+ before_install: *vcpreinst
+ install: []
+ script:
+ - cmd.exe //C vcvarsall.bat x86 '&&' nmake 'OPTS=symbols' '-f' makefile.vc all tcltest
+ - cmd.exe //C vcvarsall.bat x86 '&&' nmake 'OPTS=symbols' '-f' makefile.vc test
+ - name: "Windows/MSVC-x86/Mem-Debug"
+ os: windows
+ compiler: cl
+ env: *vcenv
+ before_install: *vcpreinst
+ install: []
+ script:
+ - cmd.exe //C vcvarsall.bat x86 '&&' nmake 'STATS=memdbg' '-f' makefile.vc all tcltest
+ - cmd.exe //C vcvarsall.bat x86 '&&' nmake 'STATS=memdbg' '-f' makefile.vc test
+# Test on Windows with GCC native
+ - name: "Windows/GCC/Shared"
+ os: windows
+ compiler: gcc
+ env:
+ - BUILD_DIR=win
+ - CFGOPT="--enable-64bit"
+ before_install: &makepreinst
+ - touch generic/tclStubInit.c generic/tclOOStubInit.c
+ - choco install -y make
+ - cd ${BUILD_DIR}
+ - name: "Windows/GCC/Shared: UTF_MAX=4"
+ os: windows
+ compiler: gcc
+ env:
+ - BUILD_DIR=win
+ - CFGOPT="--enable-64bit CFLAGS=-DTCL_UTF_MAX=4"
+ before_install: *makepreinst
+ - name: "Windows/GCC/Static"
+ os: windows
+ compiler: gcc
+ env:
+ - BUILD_DIR=win
+ - CFGOPT="--enable-64bit --disable-shared"
+ before_install: *makepreinst
+ - name: "Windows/GCC/Debug"
+ os: windows
+ compiler: gcc
+ env:
+ - BUILD_DIR=win
+ - CFGOPT="--enable-64bit --enable-symbols"
+ before_install: *makepreinst
+ - name: "Windows/GCC/Mem-Debug"
+ os: windows
+ compiler: gcc
+ env:
+ - BUILD_DIR=win
+ - CFGOPT="--enable-64bit --enable-symbols=mem"
+ before_install: *makepreinst
+# Test on Windows with GCC native (32-bit)
+ - name: "Windows/GCC-x86/Shared"
+ os: windows
+ compiler: gcc
+ env:
+ - BUILD_DIR=win
+ before_install: *makepreinst
+ - name: "Windows/GCC-x86/Shared: UTF_MAX=4"
+ os: windows
+ compiler: gcc
+ env:
+ - BUILD_DIR=win
+ - CFGOPT="CFLAGS=-DTCL_UTF_MAX=4"
+ before_install: *makepreinst
+ - name: "Windows/GCC-x86/Static"
+ os: windows
+ compiler: gcc
+ env:
+ - BUILD_DIR=win
+ - CFGOPT="--disable-shared"
+ before_install: *makepreinst
+ - name: "Windows/GCC-x86/Debug"
+ os: windows
+ compiler: gcc
+ env:
+ - BUILD_DIR=win
+ - CFGOPT="--enable-symbols"
+ before_install: *makepreinst
+ - name: "Windows/GCC-x86/Mem-Debug"
+ os: windows
+ compiler: gcc
+ env:
+ - BUILD_DIR=win
+ - CFGOPT="--enable-symbols=mem"
+ before_install: *makepreinst
+# "make dist" only
+ - name: "Linux: make dist"
+ os: linux
+ dist: focal
+ compiler: gcc
+ env:
+ - BUILD_DIR=unix
+ script:
+ - make dist
+before_install:
+ - touch generic/tclStubInit.c generic/tclOOStubInit.c
+ - cd ${BUILD_DIR}
+install:
+ - mkdir "$HOME/install dir"
+ - ./configure ${CFGOPT} "--prefix=$HOME/install dir" || (cat config.log && exit 1)
+before_script:
+ - export ERROR_ON_FAILURES=1
+script:
+ - make all tcltest || echo "Something wrong, maybe a hickup, let's try again"
+ - make test
+ - make install