# 31 march 2019

trigger:
  branches:
    include:
    - '*'
  tags:
    include:
    - '*'

variables:
  releaseExamples: 'controlgallery cpp-multithread datetime drawtext histogram tester timer'

jobs:

# linux {

- job: linux_386_shared
  displayName: 'Linux 386 Shared'
  pool:
    vmImage: 'ubuntu-16.04'
  workspace:
    clean: all
  steps:
  - template: azure-pipelines/setup-python3.yml
  - template: azure-pipelines/install-latest-meson.yml
  - template: azure-pipelines/linux-386-install-gtk-dev-ninja.yml
  - template: azure-pipelines/configure.yml
    parameters:
      beforeConfigure: export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig
      defaultLibrary: shared
  - template: azure-pipelines/build.yml
  - template: azure-pipelines/artifacts.yml
    parameters:
      os: linux
      arch: 386
      libtype: shared
      libfiles: libui.so.0
      osHeader: ui_unix.h

- job: linux_386_static
  displayName: 'Linux 386 Static'
  pool:
    vmImage: 'ubuntu-16.04'
  workspace:
    clean: all
  steps:
  - template: azure-pipelines/setup-python3.yml
  - template: azure-pipelines/install-latest-meson.yml
  - template: azure-pipelines/linux-386-install-gtk-dev-ninja.yml
  - template: azure-pipelines/configure.yml
    parameters:
      beforeConfigure: export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig
      defaultLibrary: static
  - template: azure-pipelines/build.yml
  - template: azure-pipelines/artifacts.yml
    parameters:
      os: linux
      arch: 386
      libtype: static
      libfiles: libui.a
      osHeader: ui_unix.h

- job: linux_amd64_shared
  displayName: 'Linux amd64 Shared'
  pool:
    vmImage: 'ubuntu-16.04'
  workspace:
    clean: all
  steps:
  - template: azure-pipelines/setup-python3.yml
  - template: azure-pipelines/install-latest-meson.yml
  - template: azure-pipelines/linux-install-gtk-dev-ninja.yml
  - template: azure-pipelines/configure.yml
    parameters:
      defaultLibrary: shared
  - template: azure-pipelines/build.yml
  - template: azure-pipelines/artifacts.yml
    parameters:
      os: linux
      arch: amd64
      libtype: shared
      libfiles: libui.so.0
      osHeader: ui_unix.h

- job: linux_amd64_static
  displayName: 'Linux amd64 Static'
  pool:
    vmImage: 'ubuntu-16.04'
  workspace:
    clean: all
  steps:
  - template: azure-pipelines/setup-python3.yml
  - template: azure-pipelines/install-latest-meson.yml
  - template: azure-pipelines/linux-install-gtk-dev-ninja.yml
  - template: azure-pipelines/configure.yml
    parameters:
      defaultLibrary: static
  - template: azure-pipelines/build.yml
  - template: azure-pipelines/artifacts.yml
    parameters:
      os: linux
      arch: amd64
      libtype: static
      libfiles: libui.a
      osHeader: ui_unix.h

# }

# windows vs2015 {

- job: windows_386_msvc2015_shared
  displayName: 'Windows 386 MSVC2015 Shared'
  pool:
    vmImage: 'vs2015-win2012r2'
  workspace:
    clean: all
  steps:
  - template: azure-pipelines/vs2015-install-python3.yml
  - template: azure-pipelines/install-latest-meson.yml
  - template: azure-pipelines/windows-install-ninja.yml
  - template: azure-pipelines/configure.yml
    parameters:
      beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86
      defaultLibrary: shared
  - template: azure-pipelines/build.yml
    parameters:
      beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86
  - template: azure-pipelines/windows-artifacts.yml
    parameters:
      os: windows
      arch: 386
      toolchain: msvc2015
      libtype: shared
      libfiles: libui.dll libui.exp libui.lib
      osHeader: ui_windows.h

- job: windows_386_msvc2015_static
  displayName: 'Windows 386 MSVC2015 Static'
  pool:
    vmImage: 'vs2015-win2012r2'
  workspace:
    clean: all
  steps:
  - template: azure-pipelines/vs2015-install-python3.yml
  - template: azure-pipelines/install-latest-meson.yml
  - template: azure-pipelines/windows-install-ninja.yml
  - template: azure-pipelines/configure.yml
    parameters:
      beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86
      defaultLibrary: static
  - template: azure-pipelines/build.yml
    parameters:
      beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86
      afterBuild: ren build\meson-out\libui.a libui.lib
  - template: azure-pipelines/windows-artifacts.yml
    parameters:
      os: windows
      arch: 386
      toolchain: msvc2015
      libtype: static
      libfiles: libui.lib
      osHeader: ui_windows.h

- job: windows_amd64_msvc2015_shared
  displayName: 'Windows amd64 MSVC2015 Shared'
  pool:
    vmImage: 'vs2015-win2012r2'
  workspace:
    clean: all
  steps:
  - template: azure-pipelines/vs2015-install-python3.yml
  - template: azure-pipelines/install-latest-meson.yml
  - template: azure-pipelines/windows-install-ninja.yml
  - template: azure-pipelines/configure.yml
    parameters:
      beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
      defaultLibrary: shared
  - template: azure-pipelines/build.yml
    parameters:
      beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
  - template: azure-pipelines/windows-artifacts.yml
    parameters:
      os: windows
      arch: amd64
      toolchain: msvc2015
      libtype: shared
      libfiles: libui.dll libui.exp libui.lib
      osHeader: ui_windows.h

- job: windows_amd64_msvc2015_static
  displayName: 'Windows amd64 MSVC2015 Static'
  pool:
    vmImage: 'vs2015-win2012r2'
  workspace:
    clean: all
  steps:
  - template: azure-pipelines/vs2015-install-python3.yml
  - template: azure-pipelines/install-latest-meson.yml
  - template: azure-pipelines/windows-install-ninja.yml
  - template: azure-pipelines/configure.yml
    parameters:
      beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
      defaultLibrary: static
  - template: azure-pipelines/build.yml
    parameters:
      beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
      afterBuild: ren build\meson-out\libui.a libui.lib
  - template: azure-pipelines/windows-artifacts.yml
    parameters:
      os: windows
      arch: amd64
      toolchain: msvc2015
      libtype: static
      libfiles: libui.lib
      osHeader: ui_windows.h

# }

# windows vs2017 {

- job: windows_386_msvc2017_shared
  displayName: 'Windows 386 MSVC2017 Shared'
  pool:
    vmImage: 'vs2017-win2016'
  workspace:
    clean: all
  steps:
  - template: azure-pipelines/setup-python3.yml
  - template: azure-pipelines/install-latest-meson.yml
  - template: azure-pipelines/windows-install-ninja.yml
  - template: azure-pipelines/configure.yml
    parameters:
      beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86
      defaultLibrary: shared
  - template: azure-pipelines/build.yml
    parameters:
      beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86
  - template: azure-pipelines/windows-artifacts.yml
    parameters:
      os: windows
      arch: 386
      toolchain: msvc2017
      libtype: shared
      libfiles: libui.dll libui.exp libui.lib
      osHeader: ui_windows.h

- job: windows_386_msvc2017_static
  displayName: 'Windows 386 MSVC2017 Static'
  pool:
    vmImage: 'vs2017-win2016'
  workspace:
    clean: all
  steps:
  - template: azure-pipelines/setup-python3.yml
  - template: azure-pipelines/install-latest-meson.yml
  - template: azure-pipelines/windows-install-ninja.yml
  - template: azure-pipelines/configure.yml
    parameters:
      beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86
      defaultLibrary: static
  - template: azure-pipelines/build.yml
    parameters:
      beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86
      afterBuild: ren build\meson-out\libui.a libui.lib
  - template: azure-pipelines/windows-artifacts.yml
    parameters:
      os: windows
      arch: 386
      toolchain: msvc2017
      libtype: static
      libfiles: libui.lib
      osHeader: ui_windows.h

- job: windows_amd64_msvc2017_shared
  displayName: 'Windows amd64 MSVC2017 Shared'
  pool:
    vmImage: 'vs2017-win2016'
  workspace:
    clean: all
  steps:
  - template: azure-pipelines/setup-python3.yml
  - template: azure-pipelines/install-latest-meson.yml
  - template: azure-pipelines/windows-install-ninja.yml
  - template: azure-pipelines/configure.yml
    parameters:
      beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64
      defaultLibrary: shared
  - template: azure-pipelines/build.yml
    parameters:
      beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64
  - template: azure-pipelines/windows-artifacts.yml
    parameters:
      os: windows
      arch: amd64
      toolchain: msvc2017
      libtype: shared
      libfiles: libui.dll libui.exp libui.lib
      osHeader: ui_windows.h

- job: windows_amd64_msvc2017_static
  displayName: 'Windows amd64 MSVC2017 Static'
  pool:
    vmImage: 'vs2017-win2016'
  workspace:
    clean: all
  steps:
  - template: azure-pipelines/setup-python3.yml
  - template: azure-pipelines/install-latest-meson.yml
  - template: azure-pipelines/windows-install-ninja.yml
  - template: azure-pipelines/configure.yml
    parameters:
      beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64
      defaultLibrary: static
  - template: azure-pipelines/build.yml
    parameters:
      beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64
      afterBuild: ren build\meson-out\libui.a libui.lib
  - template: azure-pipelines/windows-artifacts.yml
    parameters:
      os: windows
      arch: amd64
      toolchain: msvc2017
      libtype: static
      libfiles: libui.lib
      osHeader: ui_windows.h

# }

# mac {

# TODO beforeConfigure/beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path)?

- job: darwin_amd64_shared
  displayName: 'Darwin amd64 Shared'
  pool:
    vmImage: 'macos-10.13'
  workspace:
    clean: all
  steps:
  - template: azure-pipelines/setup-python3.yml
  - template: azure-pipelines/install-latest-meson.yml
  - template: azure-pipelines/darwin-install-ninja.yml
  - template: azure-pipelines/configure.yml
    parameters:
      defaultLibrary: shared
  - template: azure-pipelines/build.yml
  - template: azure-pipelines/artifacts.yml
    parameters:
      os: darwin
      arch: amd64
      libtype: shared
      libfiles: libui.A.dylib
      osHeader: ui_darwin.h

- job: darwin_amd64_static
  displayName: 'Darwin amd64 Static'
  pool:
    vmImage: 'macos-10.13'
  workspace:
    clean: all
  steps:
  - template: azure-pipelines/setup-python3.yml
  - template: azure-pipelines/install-latest-meson.yml
  - template: azure-pipelines/darwin-install-ninja.yml
  - template: azure-pipelines/configure.yml
    parameters:
      defaultLibrary: static
  - template: azure-pipelines/build.yml
  - template: azure-pipelines/artifacts.yml
    parameters:
      os: darwin
      arch: amd64
      libtype: static
      libfiles: libui.a
      osHeader: ui_darwin.h

# }