1
0
Fork 0
llvm-premerge-checks/scripts/run_cmake.ps1

65 lines
2.3 KiB
PowerShell
Raw Normal View History

2019-11-27 16:41:51 +01:00
# Copyright 2019 Google LLC
#
# Licensed under the the Apache License v2.0 with LLVM Exceptions (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://llvm.org/LICENSE.txt
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
2020-01-31 12:56:34 +01:00
param (
[Parameter(Mandatory=$false)][string]$projects="default"
)
2019-11-27 16:45:11 +01:00
. ${PSScriptRoot}\common.ps1
2019-11-27 16:41:51 +01:00
2020-01-31 12:56:34 +01:00
# set LLVM_ENABLE_PROJECTS to default value
# if -DetectProjects is set the projects are detected based on the files
# that were modified in the working copy
if ($projects -eq "default") {
$LLVM_ENABLE_PROJECTS="clang;clang-tools-extra;libcxx;libcxxabi;lld;libunwind;mlir"
} elseif ($projects -eq "detect") {
$LLVM_ENABLE_PROJECTS = (git diff | python ${PSScriptRoot}\choose_projects.py . ) | Out-String
$LLVM_ENABLE_PROJECTS = $LLVM_ENABLE_PROJECTS.replace("`n","").replace("`r","")
if ($LLVM_ENABLE_PROJECTS -eq "") {
Write-Error "Error detecting the affected projects."
exit 1
}
2020-01-31 12:56:34 +01:00
} else {
$LLVM_ENABLE_PROJECTS=$projects
}
Write-Output "Setting LLVM_ENABLE_PROJECTS=${LLVM_ENABLE_PROJECTS}"
2019-12-16 11:09:47 +01:00
# Delete and re-create build folder
Remove-Item build -Recurse -ErrorAction Ignore
2019-11-27 16:41:51 +01:00
New-Item -ItemType Directory -Force -Path build | Out-Null
Push-Location build
2019-12-16 11:09:47 +01:00
# load Vistual Studio environment variables
2019-11-27 16:41:51 +01:00
Invoke-CmdScript "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64
2020-02-04 08:49:00 +01:00
# Make sure we're using the Vistual Studio compiler and linker
$env:CC=cl
$env:CXX=cl
$env:LD=link
2019-12-16 11:09:47 +01:00
# call CMake
$ErrorActionPreference="Continue"
2019-12-13 18:59:35 +01:00
Invoke-Call -ScriptBlock {
cmake ..\llvm -G Ninja -DCMAKE_BUILD_TYPE=Release `
2020-01-31 12:56:34 +01:00
-D LLVM_ENABLE_PROJECTS="${LLVM_ENABLE_PROJECTS}" `
2019-12-13 18:59:35 +01:00
-D LLVM_ENABLE_ASSERTIONS=ON `
-DLLVM_LIT_ARGS="-v --xunit-xml-output test-results.xml" `
2019-12-16 10:46:47 +01:00
-D LLVM_ENABLE_DIA_SDK=OFF
2019-12-16 11:09:47 +01:00
}
2019-11-27 16:41:51 +01:00
# LLVM_ENABLE_DIA_SDK=OFF is a workaround to make the tests pass.
# see https://bugs.llvm.org/show_bug.cgi?id=44151
Pop-Location