platform:
- x86
- x64

environment:
  matrix:
  - SWIGLANG: csharp
    VSVER: 12
  - SWIGLANG: csharp
    VSVER: 14
  - SWIGLANG: java
    VSVER: 14
  - SWIGLANG: python
    VSVER: 14
    VER: 27
  - SWIGLANG: python
    VSVER: 14
    VER: 35
    PY3: 1

install:
- date /T & time /T
- set PATH=C:\cygwin\bin;%PATH%
- set CYGWIN=nodosfilewarning
- git clone -q --depth=1 --single-branch --branch cccl-1.0 git://github.com/swig/cccl.git C:\cccl-1.0
- bash -c "cp C:/cccl-1.0/cccl /usr/bin"
- ps: >-
    If ($env:Platform -Match "x86") {
      $env:PCRE_PLATFORM="Win32"
      $env:JAVA_HOME="C:/Program Files (x86)/Java/jdk1.8.0"
      $env:VCVARS_PLATFORM="x86"
      $env:LANG_PLATFORM=""
    } Else {
      $env:PCRE_PLATFORM="x64"
      $env:JAVA_HOME="C:/Program Files/Java/jdk1.8.0"
      $env:VCVARS_PLATFORM="amd64"
      $env:LANG_PLATFORM="-x64"
    }
- ps: $env:VSCOMNTOOLS=(Get-Content ("env:VS" + "$env:VSVER" + "0COMNTOOLS"))
- echo "Using Visual Studio %VSVER%.0 at %VSCOMNTOOLS%"
- call "%VSCOMNTOOLS%\..\..\VC\vcvarsall.bat" %VCVARS_PLATFORM%
- Tools\nuget-install.cmd pcre -Verbosity detailed -Version 8.33.0.1 -OutputDirectory C:\pcre
- set PCRE_ROOT=C:/pcre/pcre.8.33.0.1/build/native
- set PATH=C:\Python%VER%%LANG_PLATFORM%;%PATH%
- python -V
- bash -c "which python"
- bash -c "python -V"
- bash -c "which cl.exe"
- bash -c "cl.exe /? 2>&1 | head -n 2"
- bash -c "which csc.exe"
- bash -c "csc.exe /? | head -n 2"
- bash -c "which cccl"
- bash -c "cccl --version"
- make --version
- uname -a

build_script:
- set CCCL_OPTIONS=--cccl-muffle /W3
- set CHECK_OPTIONS=CSHARPOPTIONS=-platform:%Platform%
  # Open dummy file descriptor to fix error on cygwin: ./configure: line 560: 0: Bad file descriptor
- bash -c "exec 0</dev/null && ./autogen.sh && time ./configure --disable-dependency-tracking --disable-ccache CC=cccl CXX=cccl CFLAGS='-O2' CXXFLAGS='-O2' LDFLAGS='--cccl-link /LTCG' PCRE_CFLAGS='-I%PCRE_ROOT%/include -DPCRE_STATIC' PCRE_LIBS='-L%PCRE_ROOT%/lib/v110/%PCRE_PLATFORM%/Release/static/utf8 -lpcre8' --without-perl5 --without-go --with-boost=C:/Libraries/boost || cat config.log"
- bash -c "time make -s"

test_script:
- set CCCL_OPTIONS=--cccl-muffle /W3 /EHsc
# (Warning below is fixed in newer versions of Python (2.7.9)) '_hypot' : recursive on all control paths, function will cause runtime stack overflow
- ps: >-
    If ("$env:SWIGLANG$env:VER" -Match "python27") {
      $env:CCCL_OPTIONS="$env:CCCL_OPTIONS /wd4717"
    }
- .\swig.exe -version
- bash -c "file ./swig.exe"
- bash -c "time make -k check-%SWIGLANG%-version"
- bash -c "time make -k check-%SWIGLANG%-examples %CHECK_OPTIONS%"
- bash -c "time make -k check-%SWIGLANG%-test-suite %CHECK_OPTIONS%"

# Do not build on tags (GitHub only)
skip_tags: true
