Imported Upstream version 6.12.0.98

Former-commit-id: 066e1c5ebb0cc420bd293e60a01325420779fdd1
This commit is contained in:
Xamarin Public Jenkins (auto-signing) 2020-09-12 08:45:37 +00:00
parent 15e620f34f
commit 7d4706c3d7
196 changed files with 12053 additions and 764 deletions

View File

@ -1 +1 @@
8079d951ba0d590b3d00e72a52601e11e9b7bee5
8698325c01e1f4f45fadab99512b09ba684b21dd

View File

@ -1 +1 @@
194b232c099b00e3474780ec58e99ac0f1702261
9dbc60240997b31d8917b11dc02b0f7c7777237f

File diff suppressed because it is too large Load Diff

View File

@ -10,11 +10,11 @@ generated by GNU Autoconf 2.69. Invocation command line was
## Platform. ##
## --------- ##
hostname = az-ubuntu-general157570
hostname = az-ubuntu-general49eaf0
uname -m = x86_64
uname -r = 4.15.0-1092-azure
uname -r = 4.15.0-1095-azure
uname -s = Linux
uname -v = #102~16.04.1-Ubuntu SMP Tue Jul 14 20:28:23 UTC 2020
uname -v = #105~16.04.1-Ubuntu SMP Sun Sep 6 00:30:35 UTC 2020
/usr/bin/uname -p = unknown
/bin/uname -X = unknown
@ -747,7 +747,7 @@ generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_COMMANDS =
$ ./config.status
on az-ubuntu-general157570
on az-ubuntu-general49eaf0
config.status:1238: creating Makefile
config.status:1238: creating bdw-gc.pc

File diff suppressed because it is too large Load Diff

View File

@ -1 +1 @@
c122cfe411f2629d15d9af8f4b0f91a95a6f0aae
ed9b497d611a8294a3dad8919e545c027ef410d0

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project>
<Import Project="dir.common.props" />
<Import Project="Sdk.props" Sdk="Microsoft.DotNet.Arcade.Sdk" />
</Project>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project>
<Import Project="Sdk.targets" Sdk="Microsoft.DotNet.Arcade.Sdk" />
</Project>

23
external/llvm-project/NuGet.config vendored Normal file
View File

@ -0,0 +1,23 @@
<configuration>
<!-- Don't use any higher level config files.
Our builds need to be isolated from user/machine state -->
<fallbackPackageFolders>
<clear />
</fallbackPackageFolders>
<packageSources>
<clear />
<!--
'src/test/PrepareTestAssets/PrepareTestAssets.proj' generates a NuGet.config file using this
one as a template. The following line is a marker to insert the test restore sources.
-->
<!-- TEST_RESTORE_SOURCES_INSERTION_LINE -->
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="dotnet-tools" value="https://dnceng.pkgs.visualstudio.com/public/_packaging/dotnet-tools/nuget/v3/index.json" />
<add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />
<add key="dotnet5" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json" />
<add key="dotnet5-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5-transport/nuget/v3/index.json" />
</packageSources>
<disabledPackageSources>
<clear />
</disabledPackageSources>
</configuration>

View File

@ -0,0 +1,180 @@
trigger:
batch: true
branches:
include:
- release/6.x
- release/9.x
pr:
branches:
include:
- release/6.x
- release/9.x
variables:
- template: eng/common-variables.yml
stages:
- stage: build
displayName: Build
jobs:
- template: /eng/common/templates/jobs/jobs.yml
parameters:
enablePublishBuildArtifacts: true
enablePublishBuildAssets: true
enablePublishUsingPipelines: true
variables:
- _BuildConfig: Release
jobs:
############ LINUX BUILD ############
- job: Build_Linux
displayName: Linux
timeoutInMinutes: 120
strategy:
matrix:
x64:
poolname: Hosted Ubuntu 1604
assetManifestOS: linux
assetManifestPlatform: x64
imagename: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-bfcd90a-20200121150017
rootfs:
archflag: --arch x64
arm64:
poolname: Hosted Ubuntu 1604
assetManifestOS: linux
assetManifestPlatform: arm64
imagename: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-cfdd435-20200121150126
rootfs: /crossrootfs/arm64
archflag: --arch arm64
arm:
poolname: Hosted Ubuntu 1604
assetManifestOS: linux
assetManifestPlatform: arm
imagename: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-09ec757-20200320131433
rootfs: /crossrootfs/arm
archflag: --arch arm
pool:
name: $(poolname)
container:
image: $(imagename)
steps:
- bash: |
set -ex
git clean -ffdx
git reset --hard HEAD
displayName: 'Clean up working directory'
- bash: |
./build.sh --ci --restore --build --pack $(archflag) --configuration $(_BuildConfig) $(_InternalBuildArgs)
displayName: 'Build and package'
env:
ROOTFS_DIR: $(rootfs)
- bash: |
./eng/common/build.sh --ci --restore --publish --configuration $(_BuildConfig) $(_InternalBuildArgs) /p:AssetManifestOS=$(assetManifestOS) /p:PlatformName=$(assetManifestPlatform) --projects $(Build.SourcesDirectory)/llvm.proj
displayName: Publish packages
condition: and(succeeded(), ne(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest'))
############ MACOS BUILD ############
- job: Build_macOS
displayName: macOS
timeoutInMinutes: 120
strategy:
matrix:
x64:
poolname: Hosted macOS
assetManifestOS: osx
assetManifestPlatform: x64
pool:
name: $(poolname)
steps:
- bash: |
set -ex
git clean -ffdx
git reset --hard HEAD
displayName: 'Clean up working directory'
- bash: |
brew install autoconf automake libtool
displayName: 'Prepare macOS dependencies'
- bash: |
./build.sh --ci --restore --build --pack --configuration $(_BuildConfig) $(_InternalBuildArgs)
displayName: 'Build and package'
- bash:
./eng/common/build.sh --ci --restore --publish --configuration $(_BuildConfig) $(_InternalBuildArgs) /p:AssetManifestOS=$(assetManifestOS) /p:PlatformName=$(assetManifestPlatform) --projects $(Build.SourcesDirectory)/llvm.proj
displayName: Publish packages
condition: and(succeeded(), ne(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest'))
############ MXE BUILD ############
- job: Build_mxe
displayName: mxe
timeoutInMinutes: 120
strategy:
matrix:
x64:
poolname: Hosted macOS
assetManifestOS: osx
assetManifestPlatform: x64
pool:
name: $(poolname)
steps:
- bash: |
set -exv
git clean -ffdx
git reset --hard HEAD
displayName: 'Clean up working directory'
- bash: |
brew install autoconf automake libtool
brew tap xamarin/xamarin-android-windeps
brew install mingw-w64 xamarin/xamarin-android-windeps/mingw-zlib
displayName: 'Prepare macOS dependencies'
- bash: |
MXE_PREFIX=`brew --prefix`
sed -e "s,@MXE_PATH@,$MXE_PREFIX," < mxe-Win64.cmake.in > llvm/cmake/modules/mxe-Win64.cmake
./build.sh --ci --restore --build --pack --arch x64-mxe /p:MXE_PREFIX=$MXE_PREFIX -v:normal --configuration $(_BuildConfig) $(_InternalBuildArgs)
displayName: 'Build and package'
- bash:
#./eng/common/build.sh --ci --restore --publish --configuration $(_BuildConfig) $(_InternalBuildArgs) /p:AssetManifestOS=$(assetManifestOS) /p:PlatformName=$(assetManifestPlatform) --projects $(Build.SourcesDirectory)/llvm.proj
displayName: Publish packages
condition: and(succeeded(), ne(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest'))
############ WINDOWS BUILD ############
- job: Build_Windows
displayName: Windows
timeoutInMinutes: 120
strategy:
matrix:
x64:
poolname: Hosted VS2017
assetManifestOS: win
assetManifestPlatform: x64
pool:
name: $(poolname)
steps:
- bash: |
set -ex
git clean -ffdx
git reset --hard HEAD
displayName: 'Clean up working directory'
- powershell: eng\build.ps1 -ci -restore -build -pack -configuration $(_BuildConfig) $(_InternalBuildArgs)
displayName: 'Build and package'
- powershell: eng\common\build.ps1 -ci -restore -publish -configuration $(_BuildConfig) $(_InternalBuildArgs) /p:AssetManifestOS=$(assetManifestOS) /p:PlatformName=$(assetManifestPlatform) -projects $(Build.SourcesDirectory)\llvm.proj
displayName: Publish packages
condition: and(succeeded(), ne(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest'))
############ POST BUILD ARCADE LOGIC ############
- ${{ if and(ne(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}:
- template: /eng/common/templates/post-build/post-build.yml
parameters:
enableSourceLinkValidation: false
enableSigningValidation: false
enableSymbolValidation: false
enableNugetValidation: true

8
external/llvm-project/build.cmd vendored Normal file
View File

@ -0,0 +1,8 @@
@echo off
setlocal
set _args=%*
if "%~1"=="-?" set _args=-help
powershell -ExecutionPolicy ByPass -NoProfile -File "%~dp0eng\build.ps1" %_args%
exit /b %ERRORLEVEL%

33
external/llvm-project/build.sh vendored Executable file
View File

@ -0,0 +1,33 @@
#!/usr/bin/env bash
source="${BASH_SOURCE[0]}"
function is_cygwin_or_mingw()
{
case $(uname -s) in
CYGWIN*) return 0;;
MINGW*) return 0;;
*) return 1;;
esac
}
# resolve $SOURCE until the file is no longer a symlink
while [[ -h $source ]]; do
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
source="$(readlink "$source")"
# if $source was a relative symlink, we need to resolve it relative to the path where the
# symlink file was located
[[ $source != /* ]] && source="$scriptroot/$source"
done
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
if is_cygwin_or_mingw; then
# if bash shell running on Windows (not WSL),
# pass control to powershell build script.
scriptroot=$(cygpath -d "$scriptroot")
powershell -c "$scriptroot\\build.cmd" $@
else
"$scriptroot/eng/build.sh" $@
fi

76
external/llvm-project/dir.common.props vendored Normal file
View File

@ -0,0 +1,76 @@
<Project>
<!-- Set default Configuration and Platform -->
<PropertyGroup>
<BuildArch>$(__BuildArch)</BuildArch>
<BuildArch Condition="'$(__BuildArch)'==''">x64</BuildArch>
<BuildArch Condition="'$(__BuildArch)' == 'amd64'">x64</BuildArch>
<BuildType>$(__BuildType)</BuildType>
<BuildType Condition="'$(__BuildType)'==''">Debug</BuildType>
<BuildType Condition="'$(__BuildType)' == 'debug'">Debug</BuildType>
<BuildType Condition="'$(__BuildType)' == 'release'">Release</BuildType>
<BuildType Condition="'$(__BuildType)' == 'checked'">Checked</BuildType>
<BuildOS>$(__BuildOS)</BuildOS>
<BuildOS Condition="'$(__BuildOS)' == '' And '$([MSBuild]::IsOSPlatform(Windows))' == 'true'">Windows_NT</BuildOS>
<BuildOS Condition="'$(__BuildOS)' == '' And '$([MSBuild]::IsOSPlatform(Linux))' == 'true'">Linux</BuildOS>
<BuildOS Condition="'$(__BuildOS)' == '' And '$([MSBuild]::IsOSPlatform(OSX))' == 'true'">OSX</BuildOS>
<!-- TODO: converge on one property for BuildOS and __BuildOS (and similar), and remove these extra lines. -->
<__BuildOS>$(BuildOS)</__BuildOS>
<__BuildArch>$(BuildArch)</__BuildArch>
<Configuration Condition="'$(Configuration)' == ''">$(BuildType)</Configuration>
<Platform Condition="'$(Platform)' == ''">$(BuildArch)</Platform>
<PlatformConfigPathPart>$(BuildOS).$(BuildArch).$(BuildType)</PlatformConfigPathPart>
</PropertyGroup>
<!-- Common properties -->
<PropertyGroup>
<__ProjectDir Condition="'$(__ProjectDir)'==''">$(MSBuildThisFileDirectory)</__ProjectDir>
<ProjectDir>$(__ProjectDir)\</ProjectDir>
<RootRepoDir>$(ProjectDir)\..\..\</RootRepoDir>
<ProjectDir Condition="'$(__ProjectDir)'==''">$(MSBuildThisFileDirectory)</ProjectDir>
<BaseIntermediateOutputPath>$(RootRepoDir)artifacts\obj\llvm\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
<SourceDir>$(__SourceDir)\</SourceDir>
<SourceDir Condition="'$(__SourceDir)'==''">$(ProjectDir)src\</SourceDir>
<RootBinDir>$(__RootBinDir)\</RootBinDir>
<RootBinDir Condition="'$(__RootBinDir)'==''">$(RootRepoDir)artifacts\</RootBinDir>
<BinDir>$(__BinDir)\</BinDir>
<BinDir Condition="'$(__BinDir)'==''">$(RootBinDir)bin\llvm\$(PlatformConfigPathPart)\</BinDir>
</PropertyGroup>
<PropertyGroup>
<!-- Central place to set the versions of all nuget packages produced in the repo -->
<PackageVersion Condition="'$(PackageVersion)' == '' AND !Exists('$(ProjectDir)\artifacts\tmp\BuildRoot\version.txt')">1.0.0</PackageVersion>
<PackageVersion Condition="'$(PackageVersion)' == '' AND Exists('$(ProjectDir)\artifacts\tmp\BuildRoot\version.txt')">$([System.IO.File]::ReadAllText('$(ProjectDir)\artifacts\tmp\BuildRoot\version.txt'))</PackageVersion>
<!-- Set the boolean below to true to generate packages with stabilized versions -->
<StabilizePackageVersion Condition="'$(StabilizePackageVersion)' == ''">false</StabilizePackageVersion>
<StableVersion Condition="'$(StabilizePackageVersion)' == 'true' and '$(StableVersion)' == ''">$(PackageVersion)</StableVersion>
<PreReleaseLabel>preview8</PreReleaseLabel>
</PropertyGroup>
<!-- Set up common target properties that we use to conditionally include sources -->
<PropertyGroup>
<TargetsFreeBSD Condition="'$(BuildOS)' == 'FreeBSD'">true</TargetsFreeBSD>
<TargetsLinux Condition="'$(BuildOS)' == 'Linux'">true</TargetsLinux>
<TargetsNetBSD Condition="'$(BuildOS)' == 'NetBSD'">true</TargetsNetBSD>
<TargetsOSX Condition="'$(BuildOS)' == 'OSX'">true</TargetsOSX>
<TargetsWindows Condition="'$(BuildOS)' == 'Windows_NT'">true</TargetsWindows>
<TargetsUnix Condition="'$(TargetsFreeBSD)' == 'true' or '$(TargetsLinux)' == 'true' or '$(TargetsNetBSD)' == 'true' or '$(TargetsOSX)' == 'true'">true</TargetsUnix>
</PropertyGroup>
</Project>

6
external/llvm-project/eng/Build.props vendored Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ProjectToBuild Include="$(MSBuildThisFileDirectory)..\llvm.proj" />
</ItemGroup>
</Project>

11
external/llvm-project/eng/Tools.props vendored Normal file
View File

@ -0,0 +1,11 @@
<Project>
<PropertyGroup>
<MSBuildTreatWarningsAsErrors>false</MSBuildTreatWarningsAsErrors>
</PropertyGroup>
<ItemGroup>
<!-- arcade -->
<PackageReference Include="Microsoft.DotNet.Build.Tasks.Packaging" Version="$(MicrosoftDotNetBuildTasksPackagingVersion)" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<Dependencies>
<ProductDependencies>
</ProductDependencies>
<ToolsetDependencies>
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="5.0.0-beta.20261.9">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>898e51ed5fdcc4871087ac5754ca9056e58e575d</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="5.0.0-beta.20261.9">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>898e51ed5fdcc4871087ac5754ca9056e58e575d</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Build.Tasks.Packaging" Version="5.0.0-beta.20261.9">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>898e51ed5fdcc4871087ac5754ca9056e58e575d</Sha>
</Dependency>
</ToolsetDependencies>
</Dependencies>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<VersionPrefix>1.0.0</VersionPrefix>
<PreReleaseVersionLabel>alpha</PreReleaseVersionLabel>
<PreReleaseVersionIteration>1</PreReleaseVersionIteration>
</PropertyGroup>
<PropertyGroup>
<MicrosoftDotNetBuildTasksPackagingVersion>5.0.0-beta.20261.9</MicrosoftDotNetBuildTasksPackagingVersion>
</PropertyGroup>
</Project>

132
external/llvm-project/eng/build.ps1 vendored Normal file
View File

@ -0,0 +1,132 @@
[CmdletBinding(PositionalBinding=$false)]
Param(
[switch][Alias('h')]$help,
[switch][Alias('b')]$build,
[switch][Alias('t')]$test,
[switch]$buildtests,
[string][Alias('c')]$configuration = "Debug",
[string][Alias('f')]$framework,
[string]$vs,
[string]$os,
[switch]$allconfigurations,
[switch]$coverage,
[string]$testscope,
[string]$arch,
[string]$runtimeConfiguration,
[string]$librariesConfiguration,
[Parameter(ValueFromRemainingArguments=$true)][String[]]$properties
)
function Get-Help() {
Write-Host "Common settings:"
Write-Host " -os Build operating system: Windows_NT or Unix"
Write-Host " -arch Build platform: x86, x64, arm or arm64"
Write-Host " -configuration <value> Build configuration: Debug or Release (short: -c)"
Write-Host " -verbosity <value> MSBuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] (short: -v)"
Write-Host " -binaryLog Output binary log (short: -bl)"
Write-Host " -help Print help and exit (short: -h)"
Write-Host ""
Write-Host "Actions (defaults to -restore -build):"
Write-Host " -restore Restore dependencies (short: -r)"
Write-Host " -build Build all source projects (short: -b)"
Write-Host " -buildtests Build all test projects"
Write-Host " -rebuild Rebuild all source projects"
Write-Host " -test Run all unit tests (short: -t)"
Write-Host " -pack Package build outputs into NuGet packages"
Write-Host " -sign Sign build outputs"
Write-Host " -publish Publish artifacts (e.g. symbols)"
Write-Host " -clean Clean the solution"
Write-Host ""
Write-Host "Libraries settings:"
Write-Host " -vs Open the solution with VS for Test Explorer support. Path or solution name (ie -vs Microsoft.CSharp)"
Write-Host " -framework Build framework: netcoreapp5.0 or net472 (short: -f)"
Write-Host " -coverage Collect code coverage when testing"
Write-Host " -testscope Scope tests, allowed values: innerloop, outerloop, all"
Write-Host " -allconfigurations Build packages for all build configurations"
Write-Host ""
Write-Host "Command-line arguments not listed above are passed thru to msbuild."
Write-Host "The above arguments can be shortened as much as to be unambiguous (e.g. -con for configuration, -t for test, etc.)."
}
if ($help -or (($null -ne $properties) -and ($properties.Contains('/help') -or $properties.Contains('/?')))) {
Get-Help
exit 0
}
# VS Test Explorer support for libraries
if ($vs) {
. $PSScriptRoot\common\tools.ps1
# Microsoft.DotNet.CoreSetup.sln is special - hosting tests are currently meant to run on the
# bootstrapped .NET Core, not on the live-built runtime.
if ([System.IO.Path]::GetFileName($vs) -ieq "Microsoft.DotNet.CoreSetup.sln") {
if (-Not (Test-Path $vs)) {
$vs = Join-Path "$PSScriptRoot\..\src\installer" $vs
}
# This tells .NET Core to use the bootstrapped runtime to run the tests
$env:DOTNET_ROOT=InitializeDotNetCli -install:$false
}
else {
if (-Not (Test-Path $vs)) {
$vs = Join-Path "$PSScriptRoot\..\src\libraries" $vs | Join-Path -ChildPath "$vs.sln"
}
$archTestHost = if ($arch) { $arch } else { "x64" }
# This tells .NET Core to use the same dotnet.exe that build scripts use
$env:DOTNET_ROOT="$PSScriptRoot\..\artifacts\bin\testhost\netcoreapp5.0-Windows_NT-$configuration-$archTestHost";
$env:DEVPATH="$PSScriptRoot\..\artifacts\bin\testhost\net472-Windows_NT-$configuration-$archTestHost";
}
# This tells MSBuild to load the SDK from the directory of the bootstrapped SDK
$env:DOTNET_MSBUILD_SDK_RESOLVER_CLI_DIR=InitializeDotNetCli -install:$false
# This tells .NET Core not to go looking for .NET Core in other places
$env:DOTNET_MULTILEVEL_LOOKUP=0;
# Put our local dotnet.exe on PATH first so Visual Studio knows which one to use
$env:PATH=($env:DOTNET_ROOT + ";" + $env:PATH);
# Launch Visual Studio with the locally defined environment variables
."$vs"
exit 0
}
# Check if an action is passed in
$actions = "r","restore","b","build","buildtests","rebuild","t","test","pack","sign","publish","clean"
$actionPassedIn = @(Compare-Object -ReferenceObject @($PSBoundParameters.Keys) -DifferenceObject $actions -ExcludeDifferent -IncludeEqual).Length -ne 0
if ($null -ne $properties -and $actionPassedIn -ne $true) {
$actionPassedIn = @(Compare-Object -ReferenceObject $properties -DifferenceObject $actions.ForEach({ "-" + $_ }) -ExcludeDifferent -IncludeEqual).Length -ne 0
}
if (!$actionPassedIn) {
$arguments = "-restore -build"
}
$possibleDirToBuild = if($properties.Length -gt 0) { $properties[0]; } else { $null }
foreach ($argument in $PSBoundParameters.Keys)
{
switch($argument)
{
"build" { $arguments += " -build" }
"buildtests" { if ($build -eq $true) { $arguments += " /p:BuildTests=true" } else { $arguments += " -build /p:BuildTests=only" } }
"test" { $arguments += " -test" }
"configuration" { $configuration = (Get-Culture).TextInfo.ToTitleCase($($PSBoundParameters[$argument])); $arguments += " /p:ConfigurationGroup=$configuration -configuration $configuration" }
"runtimeConfiguration" { $arguments += " /p:RuntimeConfiguration=$((Get-Culture).TextInfo.ToTitleCase($($PSBoundParameters[$argument])))" }
"framework" { $arguments += " /p:BuildTargetFramework=$($PSBoundParameters[$argument].ToLowerInvariant())" }
"os" { $arguments += " /p:OSGroup=$($PSBoundParameters[$argument])" }
"allconfigurations" { $arguments += " /p:BuildAllConfigurations=true" }
"arch" { $arguments += " /p:ArchGroup=$($PSBoundParameters[$argument]) /p:TargetArchitecture=$($PSBoundParameters[$argument])" }
"properties" { $arguments += " " + $properties }
default { $arguments += " /p:$argument=$($PSBoundParameters[$argument])" }
}
}
Invoke-Expression "& `"$PSScriptRoot/common/build.ps1`" $arguments"
exit $lastExitCode

170
external/llvm-project/eng/build.sh vendored Executable file
View File

@ -0,0 +1,170 @@
#!/usr/bin/env bash
set -ue
source="${BASH_SOURCE[0]}"
# resolve $source until the file is no longer a symlink
while [[ -h "$source" ]]; do
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
source="$(readlink "$source")"
# if $source was a relative symlink, we need to resolve it relative to the path where the
# symlink file was located
[[ $source != /* ]] && source="$scriptroot/$source"
done
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
usage()
{
echo "Common settings:"
echo " --os Build operating system: Windows_NT or Unix"
echo " --arch Build platform: x86, x64, arm or arm64"
echo " --configuration <value> Build configuration: Debug or Release (short: -c)"
echo " --verbosity <value> MSBuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] (short: -v)"
echo " --binaryLog Output binary log (short: -bl)"
echo " --cross Optional argument to signify cross compilation"
echo " --help Print help and exit (short: -h)"
echo ""
echo "Actions (defaults to --restore --build):"
echo " --restore Restore dependencies (short: -r)"
echo " --build Build all source projects (short: -b)"
echo " --buildtests Build all test projects"
echo " --rebuild Rebuild all source projects"
echo " --test Run all unit tests (short: -t)"
echo " --pack Package build outputs into NuGet packages"
echo " --sign Sign build outputs"
echo " --publish Publish artifacts (e.g. symbols)"
echo " --clean Clean the solution"
echo ""
echo "Libraries settings:"
echo " --framework Build framework: netcoreapp or net472 (short: -f)"
echo " --coverage Collect code coverage when testing"
echo " --testscope Test scope, allowed values: innerloop, outerloop, all"
echo " --allconfigurations Build packages for all build configurations"
echo ""
echo "Native build settings:"
echo " --clang Optional argument to build using clang in PATH (default)"
echo " --clangx.y Optional argument to build using clang version x.y"
echo " --cmakeargs User-settable additional arguments passed to CMake."
echo " --gcc Optional argument to build using gcc in PATH (default)"
echo " --gccx.y Optional argument to build using gcc version x.y"
echo "Command line arguments starting with '/p:' are passed through to MSBuild."
echo "Arguments can also be passed in with a single hyphen."
}
arguments=''
cmakeargs=''
extraargs=''
build=false
buildtests=false
checkedPossibleDirectoryToBuild=false
# Check if an action is passed in
declare -a actions=("r" "restore" "b" "build" "buildtests" "rebuild" "t" "test" "pack" "sign" "publish" "clean")
actInt=($(comm -12 <(printf '%s\n' "${actions[@]/#/-}" | sort) <(printf '%s\n' "${@/#--/-}" | sort)))
while [[ $# > 0 ]]; do
opt="$(echo "${1/#--/-}" | awk '{print tolower($0)}')"
case "$opt" in
-help|-h)
usage
exit 0
;;
-arch)
arguments="$arguments /p:ArchGroup=$2 /p:TargetArchitecture=$2"
shift 2
;;
-configuration|-c)
val="$(tr '[:lower:]' '[:upper:]' <<< ${2:0:1})${2:1}"
arguments="$arguments /p:ConfigurationGroup=$val -configuration $val"
shift 2
;;
-framework|-f)
val="$(echo "$2" | awk '{print tolower($0)}')"
arguments="$arguments /p:BuildTargetFramework=$val"
shift 2
;;
-os)
arguments="$arguments /p:OSGroup=$2"
shift 2
;;
-allconfigurations)
arguments="$arguments /p:BuildAllConfigurations=true"
shift 1
;;
-build)
build=true
arguments="$arguments -build"
shift 1
;;
-buildtests)
buildtests=true
shift 1
;;
-testscope)
arguments="$arguments /p:TestScope=$2"
shift 2
;;
-coverage)
arguments="$arguments /p:Coverage=true"
shift 1
;;
-stripsymbols)
arguments="$arguments /p:BuildNativeStripSymbols=true"
shift 1
;;
-runtimeconfiguration)
val="$(tr '[:lower:]' '[:upper:]' <<< ${2:0:1})${2:1}"
arguments="$arguments /p:RuntimeConfiguration=$val"
shift 2
;;
-librariesconfiguration)
arguments="$arguments /p:LibrariesConfiguration=$2"
shift 2
;;
-cross)
arguments="$arguments /p:CrossBuild=True"
shift 1
;;
-clang*)
arguments="$arguments /p:Compiler=$opt"
shift 1
;;
-cmakeargs)
cmakeargs="${cmakeargs} ${opt} $2"
shift 2
;;
-gcc*)
arguments="$arguments /p:Compiler=$opt"
shift 1
;;
*)
ea=$1
extraargs="$extraargs $ea"
shift 1
;;
esac
done
if [[ "$buildtests" == true ]]; then
if [[ "$build" == true ]]; then
arguments="$arguments /p:BuildTests=true"
else
arguments="$arguments -build /p:BuildTests=only"
fi
fi
if [ ${#actInt[@]} -eq 0 ]; then
arguments="-restore -build $arguments"
fi
# URL-encode space (%20) to avoid quoting issues until the msbuild call in /eng/common/tools.sh.
# In *proj files (XML docs), URL-encoded string are rendered in their decoded form.
cmakeargs="${cmakeargs// /%20}"
arguments="$arguments /p:CMakeArgs=\"$cmakeargs\" $extraargs"
"$scriptroot/common/build.sh" $arguments

View File

@ -0,0 +1,40 @@
variables:
# Cannot use key:value syntax in root defined variables
- name: _TeamName
value: DotNetCore
- name: _DotNetArtifactsCategory
value: .NETCore
- name: _DotNetValidationArtifactsCategory
value: .NETCore
- name: HelixApiAccessToken
value: ''
- name: _RunAsPublic
value: True
- name: _RunAsInternal
value: False
- name: _InternalBuildArgs
value: ''
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- name: _RunAsPublic
value: False
- name: _RunAsInternal
value: True
- name: _SignType
value: real
# DotNet-Blob-Feed provides: dotnetfeed-storage-access-key-1
# Publish-Build-Assets provides: MaestroAccessToken, BotAccount-dotnet-maestro-bot-PAT
# DotNet-HelixApi-Access provides: HelixApiAccessToken
- group: DotNet-Blob-Feed
- group: Publish-Build-Assets
- group: DotNet-VSTS-Bot
- group: DotNet-HelixApi-Access
- name: _InternalBuildArgs
value: /p:DotNetSignType=$(_SignType) /p:TeamName=$(_TeamName)
/p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1)
/p:DotNetPublishBlobFeedUrl=https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json
/p:DotNetPublishToBlobFeed=true
/p:DotNetPublishUsingPipelines=true
/p:DotNetArtifactsCategory=$(_DotNetArtifactsCategory)
/p:OfficialBuildId=$(BUILD.BUILDNUMBER)

Some files were not shown because too many files have changed in this diff Show More