shallow_clone: true

# We're currently only testing 64-bit libffi built with Microsoft's
# tools.
# This matrix should be expanded to include at least:
#  32- and 64-bit gcc/cygwin
#  32- and 64-bit gcc/mingw
#  32- and 64-bit clang/mingw
#  and perhaps more.

platform:
  - x64

environment:
  global:
    CYG_ROOT: C:/cygwin
    CYG_CACHE: C:/cygwin/var/cache/setup
    CYG_MIRROR: http://mirrors.kernel.org/sourceware/cygwin/
  matrix:
    - PLATFORM: x64
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
    - PLATFORM: x64
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
    - PLATFORM: x86
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
    - PLATFORM: x64
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
    - PLATFORM: x86
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015

install:
  - ps: >-
      If ($env:Platform -Match "x86") {
          $env:BUILD="i386-pc-cygwin"
          $env:HOST="i386-pc-windows"
          $env:ARCH_CFLAG="-m32"
        } Else {
          $env:BUILD="x86_64-pc-cygwin"
          $env:HOST="x86_64-pc-winnt"
          $env:ARCH_CFLAG="-m64"
      }
  - 'appveyor DownloadFile http://cygwin.com/setup-x86.exe -FileName setup.exe'
  - 'setup.exe -qnNdO -R "%CYG_ROOT%" -s "%CYG_MIRROR%" -l "%CYG_CACHE%" -P dejagnu >NUL'
  - '%CYG_ROOT%/bin/bash -lc "cygcheck -dc cygwin"'
  - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" if "%PLATFORM%"=="x86" call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat"
  - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" if "%PLATFORM%"=="x64" call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
  - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" if "%PLATFORM%"=="x86" call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86
  - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" if "%PLATFORM%"=="x64" call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64
  - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" if "%PLATFORM%"=="x64" call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64
  - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2013" if "%PLATFORM%"=="x86" call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86
  - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2013" if "%PLATFORM%"=="x64" call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" amd64

build_script:
  - c:\cygwin\bin\sh -lc "(cd $OLDPWD; ./autogen.sh;)"
  - c:\cygwin\bin\sh -lc "(cd $OLDPWD; ./configure CC='/cygdrive/c/projects/libffi/msvcc.sh %ARCH_CFLAG%' CXX='/cygdrive/c/projects/libffi/msvcc.sh %ARCH_CFLAG%' LD=link CPP='cl -nologo -EP' --build=$BUILD --host=$HOST; cp src/x86/ffitarget.h include; make;)"
  - c:\cygwin\bin\sh -lc "(cd $OLDPWD/x86_64-pc-winnt/testsuite/libffi.bhaible; make CC='/cygdrive/c/projects/libffi/msvcc.sh %ARCH_CFLAG%' CXX='/cygdrive/c/projects/libffi/msvcc.sh %ARCH_CFLAG%' LD=link CPP='cl -nologo -EP'; )"

# FIXME: "make check" currently fails.  It just looks like msvcc needs
# to learn about -L and -l options.  If you add "make check; cat `find
# ./ -name libffi.log" to the end of that build command you'll see
# what I mean.
