# intel oneapi installation is based on the examples at
# https://github.com/oneapi-src/oneapi-ci
#
# and are copyrighted:
#
# SPDX-FileCopyrightText: 2020 Intel Corporation
# SPDX-License-Identifier: MIT
#
# The rest of this file contains the standard Meson project copyright:
#
# SPDX-License-Identifer: Apache-2.0
# Copyright 2022 The Meson development team


name: $(BuildID)

trigger:
  branches:
    include:
    - 'master'
    # Release branches
    - '1.*'
  paths:
    include:
      - 'mesonbuild'
      - 'test cases'
      - 'unittests'
      - 'azure-pipelines.yml'
      - 'ci/azure-steps.yml'
      - 'run_project_tests.py'
      - 'run_tests.py'
      - 'run_unittests.py'
pr:
  autoCancel: true
  branches:
    include:
    - '*'
  paths:
    include:
      - 'mesonbuild'
      - 'test cases'
      - 'unittests'
      - 'azure-pipelines.yml'
      - 'ci/azure-steps.yml'
      - 'run_project_tests.py'
      - 'run_tests.py'
      - 'run_unittests.py'

variables:
  CI: 1
  SOURCE_VERSION: $(Build.SourceVersion)
  WINDOWS_HPCKIT_URL: https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18680/w_HPCKit_p_2022.2.0.173_offline.exe
  WINDOWS_FORTRAN_COMPONENTS: intel.oneapi.win.ifort-compiler

jobs:

- job: vs2019
  timeoutInMinutes: 120
  pool:
    vmImage: windows-2019

  strategy:
    matrix:
        vc2019x64ninja:
          arch: x64
          compiler: msvc2019
          backend: ninja
          ifort: true
        vc2019x64vs:
          arch: x64
          compiler: msvc2019
          backend: vs2019
          # mysteriously, several tests fail because vs cannot find
          # executables such as cmd.exe ???
          ifort: false
        vc2019arm64ninjacross:
          arch: arm64
          compiler: msvc2019
          backend: ninja
          extraargs: --cross arm64cl.txt --cross-only
          # ifort doesn't support arm64
          ifort: false

  steps:
  - task: Cache@2
    inputs:
      path: C:\Program Files (x86)\Intel\oneAPI
      key: '"install" | "$(WINDOWS_HPCKIT_URL)" | "$(WINDOWS_FORTRAN_COMPONENTS)" | "compiler" | ci/intel-scripts/cache_exclude_windows.sh'
      cacheHitVar: CACHE_RESTORED
    condition: eq(variables.ifort, 'true')
  - script: ci/intel-scripts/install_windows.bat $(WINDOWS_HPCKIT_URL) $(WINDOWS_FORTRAN_COMPONENTS)
    displayName: install ifort
    condition: and(ne(variables.CACHE_RESTORED, 'true'), eq(variables.ifort, 'true'))
  - bash: ci/intel-scripts/cache_exclude_windows.sh
    displayName: exclude unused files from cache
    condition: and(ne(variables.CACHE_RESTORED, 'true'), eq(variables.ifort, 'true'))
  - script: choco install -y nasm
    displayName: install NASM
  - task: UsePythonVersion@0
    inputs:
      versionSpec: '3.7'
      addToPath: true
      architecture: 'x64'
  - task: BatchScript@1
    displayName: insert ifort into environment
    inputs:
      filename: ci/intel-scripts/activate_windows.bat
      arguments: vs2019
      modifyEnvironment: True
    condition: eq(variables.ifort, 'true')
  - task: PowerShell@2
    inputs:
      targetType: 'filePath'
      filePath: .\ci\run.ps1
    env:
      MESON_CI_JOBNAME: azure-$(System.JobName)
  - task: PowerShell@2
    displayName: Gathering coverage report
    inputs:
      targetType: 'filePath'
      filePath: .\ci\coverage.ps1
