From 48351e70cd4732b913c49f6fd42621ff8b6d87f4 Mon Sep 17 00:00:00 2001 From: Jon Turney Date: Thu, 18 Oct 2018 23:06:58 +0100 Subject: azure: Add clang-cl/ninja to matrix Note that Vs2017 tools are also in PATH for llvm build --- azure-pipelines.yml | 4 ++++ ci/azure-steps.yml | 16 +++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 8c36abd..5f7e3c4 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -44,6 +44,10 @@ jobs: arch: x64 compiler: msvc2017 backend: vs2017 + clangclx64ninja: + arch: x64 + compiler: clang-cl + backend: ninja steps: - template: ci/azure-steps.yml diff --git a/ci/azure-steps.yml b/ci/azure-steps.yml index 5c4a058..40581c1 100644 --- a/ci/azure-steps.yml +++ b/ci/azure-steps.yml @@ -49,12 +49,26 @@ steps: $env:Path = "$env:SYSTEM_WORKFOLDER;$env:Path" # import visual studio variables + if ($env:compiler -eq 'msvc2015') { + $vsver = $env:compiler.Replace('msvc', '') + } else { + $vsver = '2017' + } Set-PSRepository -Name PSGallery -InstallationPolicy Trusted Install-Module Pscx -Scope CurrentUser -AllowClobber Install-Module VSSetup -Scope CurrentUser - $vsver = $env:compiler.Replace('msvc', '') Import-VisualStudioVars -VisualStudioVersion $vsver -Architecture $(arch) + # install llvm for clang-cl builds + # (note that we use LIB, WINDRES from VS, so leave those in PATH) + if ($env:compiler -eq 'clang-cl') { + DownloadFile -Source 'http://releases.llvm.org/7.0.0/LLVM-7.0.0-win64.exe' -Destination LLVM-7.0.0-win64.exe + Start-Process .\LLVM-7.0.0-win64.exe -ArgumentList '/S' -Wait + $env:Path = "C:\Program Files\LLVM\bin;$env:Path" + $env:CC = "clang-cl" + $env:CXX = "clang-cl" + } + # add .NET framework tools to path for resgen for C# tests # (always use 32-bit tool, as there doesn't seem to be a 64-bit tool) if ((Get-Command "resgen.exe" -ErrorAction SilentlyContinue) -eq $null) { -- cgit v1.1