diff --git a/Directory.Build.props b/Directory.Build.props
index ea0d91c..e62e306 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -1,26 +1,5 @@
-
-
-
-
-
- 9.0.1
-
-
-
- $(MicrosoftCodeAnalysisCSharpVersion)
-
-
-
+
true
true
@@ -30,15 +9,12 @@
true
- $(MSBuildThisFileDirectory)bin/
+ $(MSBuildThisFileDirectory)bin/
$(DotNetOutputPath)temp/
$(DotNetOutputPath)dotnet/
$(DotNetDirectory)dotnet
$(DotNetDirectory)packs/
- $(DotNetDirectory)library-packs/
$(DotNetDirectory)sdk-manifests/$(DotNetPreviewVersionBand)/
- $(DotNetDirectory)template-packs/
- https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json
main
@@ -58,7 +34,7 @@
$(MSBuildThisFileDirectory)artifacts
-
+
+
diff --git a/Directory.Build.targets b/Directory.Build.targets
index 1ba498e..a723b24 100644
--- a/Directory.Build.targets
+++ b/Directory.Build.targets
@@ -1,8 +1,6 @@
-
-
-
+
+
false
diff --git a/NuGet.config b/NuGet.config
index a22e8f9..7ac0ec6 100644
--- a/NuGet.config
+++ b/NuGet.config
@@ -5,10 +5,6 @@
-
-
-
-
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index b7e19d1..b510d5d 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -93,17 +93,13 @@ stages:
displayName: remove old dotnet 6
errorActionPreference: stop
- - pwsh: ./build.ps1 --target=dotnet --configuration="${{ BuildConfiguration }}" --verbosity=diagnostic
- displayName: 'Install .NET'
-
-
- # - pwsh: |
- # $ProgressPreference = 'SilentlyContinue'
- # Invoke-WebRequest -Uri "https://dot.net/v1/dotnet-install.ps1" -OutFile dotnet-install.ps1
- # & .\dotnet-install.ps1 -Version $(DotNet.Version) -InstallDir "$env:ProgramFiles\dotnet\" -Verbose
- # & dotnet --list-sdks
- # displayName: install .NET $(DotNet.Version)
- # errorActionPreference: stop
+ - pwsh: |
+ $ProgressPreference = 'SilentlyContinue'
+ Invoke-WebRequest -Uri "https://dot.net/v1/dotnet-install.ps1" -OutFile dotnet-install.ps1
+ & .\dotnet-install.ps1 -Version $(DotNet.Version) -InstallDir "$env:ProgramFiles\dotnet\" -Verbose
+ & dotnet --list-sdks
+ displayName: install .NET $(DotNet.Version)
+ errorActionPreference: stop
- pwsh: dotnet tool restore
displayName: install dotnet tools
@@ -123,16 +119,16 @@ stages:
- pwsh: echo "##vso[task.setvariable variable=JAVA_HOME]$(JAVA_HOME_11_X64)"
displayName: Select JDK 11
- # - pwsh: |
- # Invoke-WebRequest -Uri "$(DotNet.Workloads)" -OutFile rollback.json
- # & dotnet workload update --from-rollback-file rollback.json --source https://aka.ms/dotnet6/nuget/index.json
- # & dotnet workload install maui --skip-manifest-update --source https://aka.ms/dotnet6/nuget/index.json
- # displayName: install dotnet workloads
- # errorActionPreference: stop
+ - pwsh: |
+ Invoke-WebRequest -Uri "$(DotNet.Workloads)" -OutFile rollback.json
+ & dotnet workload update --from-rollback-file rollback.json --source https://aka.ms/dotnet6/nuget/index.json
+ & dotnet workload install maui --skip-manifest-update --source https://aka.ms/dotnet6/nuget/index.json
+ displayName: install dotnet workloads
+ errorActionPreference: stop
- pwsh: |
Invoke-WebRequest 'https://raw.githubusercontent.com/Samsung/Tizen.NET/main/workload/scripts/workload-install.ps1' -OutFile 'workload-install.ps1'
- .\workload-install.ps1 -DotnetInstallDir 'bin\dotnet'
+ .\workload-install.ps1
displayName: install tizen
- pwsh: |
@@ -141,16 +137,12 @@ stages:
& $msbuild /r ./build/Build.Microsoft.Maui.Graphics.Windows.sln /p:Configuration=${{ BuildConfiguration }} /bl:$(Build.ArtifactStagingDirectory)/${{ BuildConfiguration }}.binlog
displayName: build classic solutions
- - pwsh: ./build.ps1 --target=dotnet-build --configuration="${{ BuildConfiguration }}" --verbosity=diagnostic
+ - pwsh: |
+ $vs = & dotnet vs where --preview --prop=InstallationPath
+ $msbuild = "$vs\MSBuild\Current\Bin\MSBuild.exe"
+ & $msbuild /r ./Microsoft.Maui.Graphics-net6.sln /p:Configuration=${{ BuildConfiguration }} /bl:$(Build.ArtifactStagingDirectory)/${{ BuildConfiguration }}-net6.binlog
displayName: build net6 solutions
-
- # - pwsh: |
- # $vs = & dotnet vs where --preview --prop=InstallationPath
- # $msbuild = "$vs\MSBuild\Current\Bin\MSBuild.exe"
- # & $msbuild /r ./Microsoft.Maui.Graphics-net6.sln /p:Configuration=${{ BuildConfiguration }} /bl:$(Build.ArtifactStagingDirectory)/${{ BuildConfiguration }}-net6.binlog
- # displayName: build net6 solutions
-
- task: NuGetCommand@2
displayName: 'Pack nupkg'
inputs:
diff --git a/build.cake b/build.cake
index c6e6fb7..9d38bfc 100644
--- a/build.cake
+++ b/build.cake
@@ -22,14 +22,13 @@ PowerShell:
// #addin "nuget:?package=Cake.Boots&version=1.0.4.600-preview1"
// #addin "nuget:?package=Cake.AppleSimulator&version=0.2.0"
// #addin "nuget:?package=Cake.FileHelpers&version=3.2.1"
+#load "eng/cake/dotnet.cake"
//////////////////////////////////////////////////////////////////////
// TOOLS
//////////////////////////////////////////////////////////////////////
#tool nuget:?package=NUnit.ConsoleRunner&version=3.11.1
#tool "nuget:?package=nuget.commandline&version=5.8.1"
-#load "eng/cake/dotnet.cake"
-#load "eng/cake/helpers.cake"
//////////////////////////////////////////////////////////////////////
// ARGUMENTS
@@ -43,13 +42,7 @@ string envProgramFiles = EnvironmentVariable("ProgramFiles(x86)");
var configuration = GetBuildVariable("BUILD_CONFIGURATION", GetBuildVariable("configuration", "DEBUG"));
var msbuildPath = GetBuildVariable("msbuild", $"{envProgramFiles}\\Microsoft Visual Studio\\2019\\Enterprise\\MSBuild\\Current\\Bin\\MSBuild.exe");
bool isHostedAgent = agentName.StartsWith("Azure Pipelines") || agentName.StartsWith("Hosted Agent");
-string logDirectory = EnvironmentVariable("LogDirectory", $"{artifactStagingDirectory}/logs");
-string testResultsDirectory = EnvironmentVariable("TestResultsDirectory", $"{artifactStagingDirectory}/test-results");
-string MSBuildExe = Argument("msbuild", EnvironmentVariable("MSBUILD_EXE", ""));
-string MSBuildArgumentsENV = EnvironmentVariable("MSBuildArguments", "");
-string MSBuildArgumentsARGS = Argument("MSBuildArguments", "");
-string MSBuildArguments;
-var localDotnet = GetBuildVariable("workloads", (target == "VS-WINUI") ? "global" : "local") == "local";
+
var target = Argument("target", "Default");
if(String.IsNullOrWhiteSpace(target))
@@ -59,10 +52,18 @@ if(String.IsNullOrWhiteSpace(target))
// TASK TARGETS
//////////////////////////////////////////////////////////////////////
-// Task("Default").IsDependentOn("dotnet-pack");
+Task("Default").IsDependentOn("dotnet-pack");
//////////////////////////////////////////////////////////////////////
// EXECUTION
//////////////////////////////////////////////////////////////////////
-RunTarget(target);
\ No newline at end of file
+RunTarget(target);
+
+T GetBuildVariable(string key, T defaultValue)
+{
+ // on MAC all environment variables are upper case regardless of how you specify them in devops
+ // And then Environment Variable check is case sensitive
+ T upperCaseReturnValue = Argument(key.ToUpper(), EnvironmentVariable(key.ToUpper(), defaultValue));
+ return Argument(key, EnvironmentVariable(key, upperCaseReturnValue));
+}
diff --git a/build.ps1 b/build.ps1
deleted file mode 100644
index 4017aa8..0000000
--- a/build.ps1
+++ /dev/null
@@ -1,20 +0,0 @@
-# script inspired by https://andrewlock.net/simplifying-the-cake-global-tool-bootstrapper-scripts-in-netcore3-with-local-tools/
-
-[CmdletBinding()]
-Param(
- [string]$Script = "build.cake",
- [string]$Target,
- [Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)]
- [string[]]$ScriptArgs
-)
-
-# Restore Cake tool
-& dotnet tool restore
-
-# Build Cake arguments
-$cakeArguments = @("$Script");
-if ($Target) { $cakeArguments += "--target=$Target" }
-$cakeArguments += $ScriptArgs
-
-& dotnet tool run dotnet-cake -- $cakeArguments
-exit $LASTEXITCODE
\ No newline at end of file
diff --git a/build.sh b/build.sh
deleted file mode 100644
index c4773ac..0000000
--- a/build.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/usr/bin/env bash
-
-# script inspired by https://andrewlock.net/simplifying-the-cake-global-tool-bootstrapper-scripts-in-netcore3-with-local-tools/
-
-# Define default arguments.
-SCRIPT="build.cake"
-CAKE_ARGUMENTS=()
-
-# Parse arguments.
-for i in "$@"; do
- case $1 in
- -s|--script) SCRIPT="$2"; shift ;;
- --) shift; CAKE_ARGUMENTS+=("$@"); break ;;
- *) CAKE_ARGUMENTS+=("$1") ;;
- esac
- shift
-done
-
-# Restore Cake tool
-dotnet tool restore
-
-if [ $? -ne 0 ]; then
- echo "An error occured while installing Cake."
- exit 1
-fi
-
-echo "${CAKE_ARGUMENTS[@]}"
-
-# Start Cake
-dotnet tool run dotnet-cake "$SCRIPT" "${CAKE_ARGUMENTS[@]}"
\ No newline at end of file
diff --git a/build/DotNet/Dependencies/Packs.csproj b/build/DotNet/Dependencies/Packs.csproj
new file mode 100644
index 0000000..7aab168
--- /dev/null
+++ b/build/DotNet/Dependencies/Packs.csproj
@@ -0,0 +1,20 @@
+
+
+ netstandard2.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/DotNet/Dependencies/Workloads.csproj b/build/DotNet/Dependencies/Workloads.csproj
index 82a6140..8756a69 100644
--- a/build/DotNet/Dependencies/Workloads.csproj
+++ b/build/DotNet/Dependencies/Workloads.csproj
@@ -3,7 +3,6 @@
netstandard2.0
-
diff --git a/build/DotNet/DotNet.csproj b/build/DotNet/DotNet.csproj
index 02ffeba..0044745 100644
--- a/build/DotNet/DotNet.csproj
+++ b/build/DotNet/DotNet.csproj
@@ -2,7 +2,6 @@
netstandard2.0
false
- true
https://dot.net/v1/dotnet-install.ps1
@@ -22,60 +21,12 @@
<_ProvisionDependsOn>
_DownloadDotNetInstallScript;
_InstallDotNet;
- _AcquireWorkloadManifests;
- _InstallWorkloadPacks;
+ _AcquireWorkloads;
+ _AcquirePacks;
-
-
-
-
-
-
-
- <_InstallTempDirectory>$(DotNetTempDirectory)install/
-
-
-
-
- <_PackagesToUnzip Include="$(PackageOutputPath)/Microsoft.NET.Sdk.Maui.Manifest-$(DotNetPreviewVersionBand).*.nupkg" />
-
-
-
- <_WorkloadFiles Include="$(_InstallTempDirectory)data/WorkloadManifest.*" />
-
-
-
-
-
-
- <_WorkloadSource Include="$(PackageOutputPath)" />
- <_WorkloadSource Include="$(DotNet6Feed)" />
-
-
-
-
-
<_Inputs>
@@ -109,33 +60,23 @@
<_PacksToRemove Include="Microsoft.NET.Workload.iOS" />
<_PacksToRemove Include="Microsoft.NET.Workload.tvOS" />
<_PacksToRemove Include="Microsoft.NET.Workload.macOS" />
-
- <_WorkloadIds Include="android-aot" />
- <_WorkloadIds Include="maccatalyst" />
- <_WorkloadIds Include="macos" />
- <_WorkloadIds Include="ios" />
- <_WorkloadIds Include="tvos" />
-
-
- <_WorkloadManifestDir>$(DotNetTempDirectory)workload/
-
-
-
+
- <_WorkloadFiles Include="$(_WorkloadManifestDir)microsoft.net.*/*/data/WorkloadManifest.*" />
+ <_WorkloadFiles Include="$(DotNetTempDirectory)Microsoft.NET.*/*/data/WorkloadManifest.*" />
+
+
+
+
+
+
+
-
+
@@ -161,7 +129,6 @@
TaskFactory="RoslynCodeTaskFactory"
AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.Core.dll">
-
@@ -173,7 +140,7 @@
// This is only in C#, because the equivalent MSBuild XML would not be pretty.
foreach (var file in Files)
{
- var name = string.IsNullOrEmpty(Name) ? Directory.GetParent (file).Parent.Parent.Name : Name;
+ var name = Directory.GetParent (file).Parent.Parent.Name;
var directory = Path.Combine(WorkloadDirectory, name.Replace($".manifest-{VersionBand}", ""));
Directory.CreateDirectory(directory);
var destination = Path.Combine(directory, Path.GetFileName(file));
@@ -184,5 +151,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/eng/TargetFrameworkDefaults.props b/eng/TargetFrameworkDefaults.props
deleted file mode 100644
index ca3546e..0000000
--- a/eng/TargetFrameworkDefaults.props
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
- netcoreapp3.1
- net6.0
-
-
-
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 2b341c7..d5cf429 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -1,12 +1,12 @@
-
+
https://github.com/dotnet/installer
- 885ff3819901e75ee1782185a53a3ab4ea6deac8
+ 91aa470f1e6c40e1de1050f5ea63480e14fdc592
-
+
https://github.com/xamarin/xamarin-android
- 05ca38c7248b9af926c3c314bb99bf5cc22c3bd3
+ eadb58fc2d6e32759c1e6a8e500b4cfec36a0a51
https://github.com/xamarin/xamarin-macios
diff --git a/eng/Versions.props b/eng/Versions.props
index 4883adc..126e943 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -1,15 +1,8 @@
-
-
- 6.0.101
- preview.10
-
- 6.0.100-rtm.21476.2
-
- 6.0.0-rtm.21472.13
-
- 31.0.101-preview.10.31
-
+
+
+ 6.0.100-rc.1.21426.23
+ 31.0.100-rc.1.12
15.0.101-preview.10.165
15.0.101-preview.10.165
15.0.101-preview.10.165
diff --git a/eng/cake/.gitignore b/eng/cake/.gitignore
deleted file mode 100644
index c50f923..0000000
--- a/eng/cake/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-tools/
diff --git a/eng/cake/dotnet.cake b/eng/cake/dotnet.cake
index e10dae3..4f8a809 100644
--- a/eng/cake/dotnet.cake
+++ b/eng/cake/dotnet.cake
@@ -2,173 +2,32 @@
var ext = IsRunningOnWindows() ? ".exe" : "";
var dotnetPath = $"./bin/dotnet/dotnet{ext}";
-var dotnetProjectPath = "./build/DotNet/DotNet.csproj";
-var graphicsSln = "Microsoft.Maui.Graphics-net6.sln";
-
-// Tasks for CI
Task("dotnet")
.Description("Provisions .NET 6 into bin/dotnet based on eng/Versions.props")
.Does(() =>
{
- Information("Provisions");
- // if (!localDotnet)
- // return;
-
- DotNetCoreBuild(dotnetProjectPath, new DotNetCoreBuildSettings
+ var binlog = $"artifacts/dotnet-{configuration}.binlog";
+ var settings = new DotNetCoreBuildSettings
{
MSBuildSettings = new DotNetCoreMSBuildSettings()
- .EnableBinaryLogger($"{logDirectory}/dotnet-{configuration}.binlog")
+ .EnableBinaryLogger(binlog)
.SetConfiguration(configuration),
- });
+ };
+ DotNetCoreBuild("./build/DotNet/DotNet.csproj", settings);
});
-Task("dotnet-build")
- .IsDependentOn("dotnet")
- .Description("Build the solutions")
- .Does(() =>
+Task("dotnet-pack")
+ .Description("Build and create .NET 6 NuGet packages")
+ .Does(()=>
{
- RunMSBuildWithDotNet(graphicsSln);
- });
-
-Task("dotnet-local-workloads")
- .Does(() =>
- {
- if (!localDotnet)
- return;
-
- DotNetCoreBuild(dotnetProjectPath, new DotNetCoreBuildSettings
+ var settings = new DotNetCoreToolSettings
{
- MSBuildSettings = new DotNetCoreMSBuildSettings()
- .EnableBinaryLogger($"{logDirectory}/dotnet-{configuration}.binlog")
- .SetConfiguration(configuration)
- .WithProperty("InstallWorkloadPacks", "false"),
- });
-
- DotNetCoreBuild(dotnetProjectPath, new DotNetCoreBuildSettings
- {
- MSBuildSettings = new DotNetCoreMSBuildSettings()
- .EnableBinaryLogger($"{logDirectory}/dotnet-install-{configuration}.binlog")
- .SetConfiguration(configuration)
- .WithTarget("Install"),
- ToolPath = dotnetPath,
- });
- });
-
-
-string FindMSBuild()
-{
- if (!string.IsNullOrWhiteSpace(MSBuildExe))
- return MSBuildExe;
-
- if (IsRunningOnWindows())
- {
- var vsInstallation = VSWhereLatest(new VSWhereLatestSettings { Requires = "Microsoft.Component.MSBuild", IncludePrerelease = true });
- if (vsInstallation != null)
- {
- var path = vsInstallation.CombineWithFilePath(@"MSBuild\Current\Bin\MSBuild.exe");
- if (FileExists(path))
- return path.FullPath;
-
- path = vsInstallation.CombineWithFilePath(@"MSBuild\15.0\Bin\MSBuild.exe");
- if (FileExists(path))
- return path.FullPath;
- }
- }
- return "msbuild";
-}
-
-void SetDotNetEnvironmentVariables()
-{
- var dotnet = MakeAbsolute(Directory("./bin/dotnet/")).ToString();
-
- SetEnvironmentVariable("DOTNET_INSTALL_DIR", dotnet);
- SetEnvironmentVariable("DOTNET_ROOT", dotnet);
- SetEnvironmentVariable("DOTNET_MSBUILD_SDK_RESOLVER_CLI_DIR", dotnet);
- SetEnvironmentVariable("DOTNET_MULTILEVEL_LOOKUP", "0");
- SetEnvironmentVariable("MSBuildEnableWorkloadResolver", "true");
- SetEnvironmentVariable("PATH", dotnet, prepend: true);
-}
-
-
-// NOTE: These methods work as long as the "dotnet" target has already run
-
-void RunMSBuildWithDotNet(string sln, Dictionary properties = null, bool deployAndRun = false)
-{
- var name = System.IO.Path.GetFileNameWithoutExtension(sln);
- var binlog = $"\"{logDirectory}/{name}-{configuration}.binlog\"";
-
- if(localDotnet)
- SetDotNetEnvironmentVariables();
-
- // If we're not on Windows, use ./bin/dotnet/dotnet
- if (!IsRunningOnWindows() || deployAndRun)
- {
- var msbuildSettings = new DotNetCoreMSBuildSettings()
- .SetConfiguration(configuration)
- .EnableBinaryLogger(binlog);
-
- if (properties != null)
- {
- foreach (var property in properties)
- {
- msbuildSettings.WithProperty(property.Key, property.Value);
- }
- }
-
- if (deployAndRun)
- msbuildSettings.WithTarget("Run");
-
- var dotnetBuildSettings = new DotNetCoreBuildSettings
- {
- MSBuildSettings = msbuildSettings,
+ DiagnosticOutput = true,
+ ArgumentCustomization = args => args.Append($"./eng/package.ps1 -configuration \"{configuration}\"")
};
- if (localDotnet)
- dotnetBuildSettings.ToolPath = dotnetPath;
+ DotNetCoreTool("pwsh", settings);
- DotNetCoreBuild(sln, dotnetBuildSettings);
- }
- else
- {
- // Otherwise we need to run MSBuild for WinUI support
- var msbuild = FindMSBuild();
- Information("Using MSBuild: {0}", msbuild);
- var msbuildSettings = new MSBuildSettings { ToolPath = msbuild }
- .WithRestore()
- .SetConfiguration(configuration)
- .EnableBinaryLogger(binlog);
-
- if (properties != null)
- {
- foreach (var property in properties)
- {
- msbuildSettings.WithProperty(property.Key, property.Value);
- }
- }
-
- MSBuild(sln, msbuildSettings);
- }
-}
-
-// void RunTestWithLocalDotNet(string csproj)
-// {
-// var name = System.IO.Path.GetFileNameWithoutExtension(csproj);
-// var binlog = $"{logDirectory}/{name}-{configuration}.binlog";
-// var results = $"{name}-{configuration}.trx";
-
-// if(localDotnet)
-// SetDotNetEnvironmentVariables();
-
-// DotNetCoreTest(csproj,
-// new DotNetCoreTestSettings
-// {
-// Configuration = configuration,
-// ToolPath = dotnetPath,
-// NoBuild = true,
-// Logger = $"trx;LogFileName={results}",
-// ResultsDirectory = testResultsDirectory,
-// ArgumentCustomization = args => args.Append($"-bl:{binlog}")
-// });
-// }
+ });
\ No newline at end of file
diff --git a/eng/cake/helpers.cake b/eng/cake/helpers.cake
deleted file mode 100644
index 34eed89..0000000
--- a/eng/cake/helpers.cake
+++ /dev/null
@@ -1,86 +0,0 @@
-Task("Clean")
- .Description("Deletes all the obj/bin directories")
- .Does(() =>
-{
- List foldersToClean = new List();
-
- foreach (var item in new [] {"obj", "bin"})
- {
- foreach(string f in System.IO.Directory.GetDirectories(".", item, SearchOption.AllDirectories))
- {
- if(f.StartsWith(@".\bin") || f.StartsWith(@".\tools"))
- continue;
-
- // this is here as a safety check
- if(!f.StartsWith(@".\src"))
- continue;
-
- CleanDirectories(f);
- }
- }
-});
-
-
-
-T GetBuildVariable(string key, T defaultValue)
-{
- // on MAC all environment variables are upper case regardless of how you specify them in devops
- // And then Environment Variable check is case sensitive
- T upperCaseReturnValue = Argument(key.ToUpper(), EnvironmentVariable(key.ToUpper(), defaultValue));
- return Argument(key, EnvironmentVariable(key, upperCaseReturnValue));
-}
-
-string GetAndroidSDKPath()
-{
- var ANDROID_SDK_ROOT = Argument("android", EnvironmentVariable("ANDROID_SDK_ROOT") ?? EnvironmentVariable("ANDROID_HOME"));
-
- if (string.IsNullOrEmpty(ANDROID_SDK_ROOT)) {
- throw new Exception("Environment variable 'ANDROID_SDK_ROOT' or 'ANDROID_HOME' must be set to the Android SDK root.");
- }
-
- return ANDROID_SDK_ROOT;
-}
-
-public void PrintEnvironmentVariables()
-{
- var envVars = EnvironmentVariables();
-
- string path;
- if (envVars.TryGetValue("PATH", out path))
- {
- Information("Path: {0}", path);
- }
-
- foreach(var envVar in envVars)
- {
- Information(
- "Key: {0}\tValue: \"{1}\"",
- envVar.Key,
- envVar.Value
- );
- };
-}
-
-void SetDotNetEnvironmentVariables(string dotnetDir)
-{
- var dotnet = dotnetDir ?? MakeAbsolute(Directory("./bin/dotnet/")).ToString();
-
- SetEnvironmentVariable("DOTNET_INSTALL_DIR", dotnet);
- SetEnvironmentVariable("DOTNET_ROOT", dotnet);
- SetEnvironmentVariable("DOTNET_MSBUILD_SDK_RESOLVER_CLI_DIR", dotnet);
- SetEnvironmentVariable("DOTNET_MULTILEVEL_LOOKUP", "0");
- SetEnvironmentVariable("MSBuildEnableWorkloadResolver", "true");
- SetEnvironmentVariable("PATH", dotnet, prepend: true);
-}
-
-void SetEnvironmentVariable(string name, string value, bool prepend = false)
-{
- var target = EnvironmentVariableTarget.Process;
-
- if (prepend)
- value = value + System.IO.Path.PathSeparator + EnvironmentVariable(name);
-
- Environment.SetEnvironmentVariable(name, value, target);
-
- Information("Setting environment variable: {0} = '{1}'", name, value);
-}
diff --git a/eng/common/CIBuild.cmd b/eng/common/CIBuild.cmd
deleted file mode 100644
index 56c2f25..0000000
--- a/eng/common/CIBuild.cmd
+++ /dev/null
@@ -1,2 +0,0 @@
-@echo off
-powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0Build.ps1""" -restore -build -test -sign -pack -publish -ci %*"
\ No newline at end of file
diff --git a/eng/common/PSScriptAnalyzerSettings.psd1 b/eng/common/PSScriptAnalyzerSettings.psd1
deleted file mode 100644
index 4c1ea7c..0000000
--- a/eng/common/PSScriptAnalyzerSettings.psd1
+++ /dev/null
@@ -1,11 +0,0 @@
-@{
- IncludeRules=@('PSAvoidUsingCmdletAliases',
- 'PSAvoidUsingWMICmdlet',
- 'PSAvoidUsingPositionalParameters',
- 'PSAvoidUsingInvokeExpression',
- 'PSUseDeclaredVarsMoreThanAssignments',
- 'PSUseCmdletCorrectly',
- 'PSStandardDSCFunctionsInResource',
- 'PSUseIdenticalMandatoryParametersForDSC',
- 'PSUseIdenticalParametersForDSC')
-}
\ No newline at end of file
diff --git a/eng/common/README.md b/eng/common/README.md
deleted file mode 100644
index ff49c37..0000000
--- a/eng/common/README.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# Don't touch this folder
-
- uuuuuuuuuuuuuuuuuuuu
- u" uuuuuuuuuuuuuuuuuu "u
- u" u$$$$$$$$$$$$$$$$$$$$u "u
- u" u$$$$$$$$$$$$$$$$$$$$$$$$u "u
- u" u$$$$$$$$$$$$$$$$$$$$$$$$$$$$u "u
- u" u$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$u "u
- u" u$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$u "u
- $ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $
- $ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $
- $ $$$" ... "$... ...$" ... "$$$ ... "$$$ $
- $ $$$u `"$$$$$$$ $$$ $$$$$ $$ $$$ $$$ $
- $ $$$$$$uu "$$$$ $$$ $$$$$ $$ """ u$$$ $
- $ $$$""$$$ $$$$ $$$u "$$$" u$$ $$$$$$$$ $
- $ $$$$....,$$$$$..$$$$$....,$$$$..$$$$$$$$ $
- $ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $
- "u "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" u"
- "u "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" u"
- "u "$$$$$$$$$$$$$$$$$$$$$$$$$$$$" u"
- "u "$$$$$$$$$$$$$$$$$$$$$$$$" u"
- "u "$$$$$$$$$$$$$$$$$$$$" u"
- "u """""""""""""""""" u"
- """"""""""""""""""""
-
-!!! Changes made in this directory are subject to being overwritten by automation !!!
-
-The files in this directory are shared by all Arcade repos and managed by automation. If you need to make changes to these files, open an issue or submit a pull request to https://github.com/dotnet/arcade first.
diff --git a/eng/common/SetupNugetSources.ps1 b/eng/common/SetupNugetSources.ps1
deleted file mode 100644
index 1882384..0000000
--- a/eng/common/SetupNugetSources.ps1
+++ /dev/null
@@ -1,167 +0,0 @@
-# This file is a temporary workaround for internal builds to be able to restore from private AzDO feeds.
-# This file should be removed as part of this issue: https://github.com/dotnet/arcade/issues/4080
-#
-# What the script does is iterate over all package sources in the pointed NuGet.config and add a credential entry
-# under for each Maestro managed private feed. Two additional credential
-# entries are also added for the two private static internal feeds: dotnet3-internal and dotnet3-internal-transport.
-#
-# This script needs to be called in every job that will restore packages and which the base repo has
-# private AzDO feeds in the NuGet.config.
-#
-# See example YAML call for this script below. Note the use of the variable `$(dn-bot-dnceng-artifact-feeds-rw)`
-# from the AzureDevOps-Artifact-Feeds-Pats variable group.
-#
-# Any disabledPackageSources entries which start with "darc-int" will be re-enabled as part of this script executing
-#
-# - task: PowerShell@2
-# displayName: Setup Private Feeds Credentials
-# condition: eq(variables['Agent.OS'], 'Windows_NT')
-# inputs:
-# filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
-# arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
-# env:
-# Token: $(dn-bot-dnceng-artifact-feeds-rw)
-
-[CmdletBinding()]
-param (
- [Parameter(Mandatory = $true)][string]$ConfigFile,
- [Parameter(Mandatory = $true)][string]$Password
-)
-
-$ErrorActionPreference = "Stop"
-Set-StrictMode -Version 2.0
-[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
-
-. $PSScriptRoot\tools.ps1
-
-# Add source entry to PackageSources
-function AddPackageSource($sources, $SourceName, $SourceEndPoint, $creds, $Username, $Password) {
- $packageSource = $sources.SelectSingleNode("add[@key='$SourceName']")
-
- if ($packageSource -eq $null)
- {
- $packageSource = $doc.CreateElement("add")
- $packageSource.SetAttribute("key", $SourceName)
- $packageSource.SetAttribute("value", $SourceEndPoint)
- $sources.AppendChild($packageSource) | Out-Null
- }
- else {
- Write-Host "Package source $SourceName already present."
- }
-
- AddCredential -Creds $creds -Source $SourceName -Username $Username -Password $Password
-}
-
-# Add a credential node for the specified source
-function AddCredential($creds, $source, $username, $password) {
- # Looks for credential configuration for the given SourceName. Create it if none is found.
- $sourceElement = $creds.SelectSingleNode($Source)
- if ($sourceElement -eq $null)
- {
- $sourceElement = $doc.CreateElement($Source)
- $creds.AppendChild($sourceElement) | Out-Null
- }
-
- # Add the node to the credential if none is found.
- $usernameElement = $sourceElement.SelectSingleNode("add[@key='Username']")
- if ($usernameElement -eq $null)
- {
- $usernameElement = $doc.CreateElement("add")
- $usernameElement.SetAttribute("key", "Username")
- $sourceElement.AppendChild($usernameElement) | Out-Null
- }
- $usernameElement.SetAttribute("value", $Username)
-
- # Add the to the credential if none is found.
- # Add it as a clear text because there is no support for encrypted ones in non-windows .Net SDKs.
- # -> https://github.com/NuGet/Home/issues/5526
- $passwordElement = $sourceElement.SelectSingleNode("add[@key='ClearTextPassword']")
- if ($passwordElement -eq $null)
- {
- $passwordElement = $doc.CreateElement("add")
- $passwordElement.SetAttribute("key", "ClearTextPassword")
- $sourceElement.AppendChild($passwordElement) | Out-Null
- }
- $passwordElement.SetAttribute("value", $Password)
-}
-
-function InsertMaestroPrivateFeedCredentials($Sources, $Creds, $Username, $Password) {
- $maestroPrivateSources = $Sources.SelectNodes("add[contains(@key,'darc-int')]")
-
- Write-Host "Inserting credentials for $($maestroPrivateSources.Count) Maestro's private feeds."
-
- ForEach ($PackageSource in $maestroPrivateSources) {
- Write-Host "`tInserting credential for Maestro's feed:" $PackageSource.Key
- AddCredential -Creds $creds -Source $PackageSource.Key -Username $Username -Password $Password
- }
-}
-
-function EnablePrivatePackageSources($DisabledPackageSources) {
- $maestroPrivateSources = $DisabledPackageSources.SelectNodes("add[contains(@key,'darc-int')]")
- ForEach ($DisabledPackageSource in $maestroPrivateSources) {
- Write-Host "`tEnsuring private source '$($DisabledPackageSource.key)' is enabled by deleting it from disabledPackageSource"
- # Due to https://github.com/NuGet/Home/issues/10291, we must actually remove the disabled entries
- $DisabledPackageSources.RemoveChild($DisabledPackageSource)
- }
-}
-
-if (!(Test-Path $ConfigFile -PathType Leaf)) {
- Write-PipelineTelemetryError -Category 'Build' -Message "Eng/common/SetupNugetSources.ps1 returned a non-zero exit code. Couldn't find the NuGet config file: $ConfigFile"
- ExitWithExitCode 1
-}
-
-if (!$Password) {
- Write-PipelineTelemetryError -Category 'Build' -Message 'Eng/common/SetupNugetSources.ps1 returned a non-zero exit code. Please supply a valid PAT'
- ExitWithExitCode 1
-}
-
-# Load NuGet.config
-$doc = New-Object System.Xml.XmlDocument
-$filename = (Get-Item $ConfigFile).FullName
-$doc.Load($filename)
-
-# Get reference to or create one if none exist already
-$sources = $doc.DocumentElement.SelectSingleNode("packageSources")
-if ($sources -eq $null) {
- $sources = $doc.CreateElement("packageSources")
- $doc.DocumentElement.AppendChild($sources) | Out-Null
-}
-
-# Looks for a node. Create it if none is found.
-$creds = $doc.DocumentElement.SelectSingleNode("packageSourceCredentials")
-if ($creds -eq $null) {
- $creds = $doc.CreateElement("packageSourceCredentials")
- $doc.DocumentElement.AppendChild($creds) | Out-Null
-}
-
-# Check for disabledPackageSources; we'll enable any darc-int ones we find there
-$disabledSources = $doc.DocumentElement.SelectSingleNode("disabledPackageSources")
-if ($disabledSources -ne $null) {
- Write-Host "Checking for any darc-int disabled package sources in the disabledPackageSources node"
- EnablePrivatePackageSources -DisabledPackageSources $disabledSources
-}
-
-$userName = "dn-bot"
-
-# Insert credential nodes for Maestro's private feeds
-InsertMaestroPrivateFeedCredentials -Sources $sources -Creds $creds -Username $userName -Password $Password
-
-$dotnet31Source = $sources.SelectSingleNode("add[@key='dotnet3.1']")
-if ($dotnet31Source -ne $null) {
- AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal/nuget/v2" -Creds $creds -Username $userName -Password $Password
- AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v2" -Creds $creds -Username $userName -Password $Password
-}
-
-$dotnet5Source = $sources.SelectSingleNode("add[@key='dotnet5']")
-if ($dotnet5Source -ne $null) {
- AddPackageSource -Sources $sources -SourceName "dotnet5-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet5-internal/nuget/v2" -Creds $creds -Username $userName -Password $Password
- AddPackageSource -Sources $sources -SourceName "dotnet5-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet5-internal-transport/nuget/v2" -Creds $creds -Username $userName -Password $Password
-}
-
-$dotnet6Source = $sources.SelectSingleNode("add[@key='dotnet6']")
-if ($dotnet6Source -ne $null) {
- AddPackageSource -Sources $sources -SourceName "dotnet6-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet6-internal/nuget/v2" -Creds $creds -Username $userName -Password $Password
- AddPackageSource -Sources $sources -SourceName "dotnet6-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet6-internal-transport/nuget/v2" -Creds $creds -Username $userName -Password $Password
-}
-
-$doc.Save($filename)
diff --git a/eng/common/SetupNugetSources.sh b/eng/common/SetupNugetSources.sh
deleted file mode 100644
index ad3fb74..0000000
--- a/eng/common/SetupNugetSources.sh
+++ /dev/null
@@ -1,191 +0,0 @@
-#!/usr/bin/env bash
-
-# This file is a temporary workaround for internal builds to be able to restore from private AzDO feeds.
-# This file should be removed as part of this issue: https://github.com/dotnet/arcade/issues/4080
-#
-# What the script does is iterate over all package sources in the pointed NuGet.config and add a credential entry
-# under for each Maestro's managed private feed. Two additional credential
-# entries are also added for the two private static internal feeds: dotnet3-internal and dotnet3-internal-transport.
-#
-# This script needs to be called in every job that will restore packages and which the base repo has
-# private AzDO feeds in the NuGet.config.
-#
-# See example YAML call for this script below. Note the use of the variable `$(dn-bot-dnceng-artifact-feeds-rw)`
-# from the AzureDevOps-Artifact-Feeds-Pats variable group.
-#
-# Any disabledPackageSources entries which start with "darc-int" will be re-enabled as part of this script executing.
-#
-# - task: Bash@3
-# displayName: Setup Private Feeds Credentials
-# inputs:
-# filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh
-# arguments: $(Build.SourcesDirectory)/NuGet.config $Token
-# condition: ne(variables['Agent.OS'], 'Windows_NT')
-# env:
-# Token: $(dn-bot-dnceng-artifact-feeds-rw)
-
-ConfigFile=$1
-CredToken=$2
-NL='\n'
-TB=' '
-
-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 )"
-
-. "$scriptroot/tools.sh"
-
-if [ ! -f "$ConfigFile" ]; then
- Write-PipelineTelemetryError -Category 'Build' "Error: Eng/common/SetupNugetSources.sh returned a non-zero exit code. Couldn't find the NuGet config file: $ConfigFile"
- ExitWithExitCode 1
-fi
-
-if [ -z "$CredToken" ]; then
- Write-PipelineTelemetryError -category 'Build' "Error: Eng/common/SetupNugetSources.sh returned a non-zero exit code. Please supply a valid PAT"
- ExitWithExitCode 1
-fi
-
-if [[ `uname -s` == "Darwin" ]]; then
- NL=$'\\\n'
- TB=''
-fi
-
-# Ensure there is a ... section.
-grep -i "" $ConfigFile
-if [ "$?" != "0" ]; then
- echo "Adding ... section."
- ConfigNodeHeader=""
- PackageSourcesTemplate="${TB}${NL}${TB}"
-
- sed -i.bak "s|$ConfigNodeHeader|$ConfigNodeHeader${NL}$PackageSourcesTemplate|" $ConfigFile
-fi
-
-# Ensure there is a ... section.
-grep -i "" $ConfigFile
-if [ "$?" != "0" ]; then
- echo "Adding ... section."
-
- PackageSourcesNodeFooter=""
- PackageSourceCredentialsTemplate="${TB}${NL}${TB}"
-
- sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourcesNodeFooter${NL}$PackageSourceCredentialsTemplate|" $ConfigFile
-fi
-
-PackageSources=()
-
-# Ensure dotnet3.1-internal and dotnet3.1-internal-transport are in the packageSources if the public dotnet3.1 feeds are present
-grep -i ""
-
- sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
- fi
- PackageSources+=('dotnet3.1-internal')
-
- grep -i "" $ConfigFile
- if [ "$?" != "0" ]; then
- echo "Adding dotnet3.1-internal-transport to the packageSources."
- PackageSourcesNodeFooter=""
- PackageSourceTemplate="${TB}"
-
- sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
- fi
- PackageSources+=('dotnet3.1-internal-transport')
-fi
-
-# Ensure dotnet5-internal and dotnet5-internal-transport are in the packageSources if the public dotnet5 feeds are present
-grep -i ""
-
- sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
- fi
- PackageSources+=('dotnet5-internal')
-
- grep -i "" $ConfigFile
- if [ "$?" != "0" ]; then
- echo "Adding dotnet5-internal-transport to the packageSources."
- PackageSourcesNodeFooter=""
- PackageSourceTemplate="${TB}"
-
- sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
- fi
- PackageSources+=('dotnet5-internal-transport')
-fi
-
-# Ensure dotnet6-internal and dotnet6-internal-transport are in the packageSources if the public dotnet6 feeds are present
-grep -i ""
-
- sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
- fi
- PackageSources+=('dotnet6-internal')
-
- grep -i "" $ConfigFile
- if [ "$?" != "0" ]; then
- echo "Adding dotnet6-internal-transport to the packageSources."
- PackageSourcesNodeFooter=""
- PackageSourceTemplate="${TB}"
-
- sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
- fi
- PackageSources+=('dotnet6-internal-transport')
-fi
-
-# I want things split line by line
-PrevIFS=$IFS
-IFS=$'\n'
-PackageSources+="$IFS"
-PackageSources+=$(grep -oh '"darc-int-[^"]*"' $ConfigFile | tr -d '"')
-IFS=$PrevIFS
-
-for FeedName in ${PackageSources[@]} ; do
- # Check if there is no existing credential for this FeedName
- grep -i "<$FeedName>" $ConfigFile
- if [ "$?" != "0" ]; then
- echo "Adding credentials for $FeedName."
-
- PackageSourceCredentialsNodeFooter=""
- NewCredential="${TB}${TB}<$FeedName>${NL}${NL}${NL}$FeedName>"
-
- sed -i.bak "s|$PackageSourceCredentialsNodeFooter|$NewCredential${NL}$PackageSourceCredentialsNodeFooter|" $ConfigFile
- fi
-done
-
-# Re-enable any entries in disabledPackageSources where the feed name contains darc-int
-grep -i "" $ConfigFile
-if [ "$?" == "0" ]; then
- DisabledDarcIntSources=()
- echo "Re-enabling any disabled \"darc-int\" package sources in $ConfigFile"
- DisabledDarcIntSources+=$(grep -oh '"darc-int-[^"]*" value="true"' $ConfigFile | tr -d '"')
- for DisabledSourceName in ${DisabledDarcIntSources[@]} ; do
- if [[ $DisabledSourceName == darc-int* ]]
- then
- OldDisableValue=""
- NewDisableValue=""
- sed -i.bak "s|$OldDisableValue|$NewDisableValue|" $ConfigFile
- echo "Neutralized disablePackageSources entry for '$DisabledSourceName'"
- fi
- done
-fi
diff --git a/eng/common/build.ps1 b/eng/common/build.ps1
deleted file mode 100644
index 8943da2..0000000
--- a/eng/common/build.ps1
+++ /dev/null
@@ -1,161 +0,0 @@
-[CmdletBinding(PositionalBinding=$false)]
-Param(
- [string][Alias('c')]$configuration = "Debug",
- [string]$platform = $null,
- [string] $projects,
- [string][Alias('v')]$verbosity = "minimal",
- [string] $msbuildEngine = $null,
- [bool] $warnAsError = $true,
- [bool] $nodeReuse = $true,
- [switch][Alias('r')]$restore,
- [switch] $deployDeps,
- [switch][Alias('b')]$build,
- [switch] $rebuild,
- [switch] $deploy,
- [switch][Alias('t')]$test,
- [switch] $integrationTest,
- [switch] $performanceTest,
- [switch] $sign,
- [switch] $pack,
- [switch] $publish,
- [switch] $clean,
- [switch][Alias('bl')]$binaryLog,
- [switch][Alias('nobl')]$excludeCIBinarylog,
- [switch] $ci,
- [switch] $prepareMachine,
- [string] $runtimeSourceFeed = '',
- [string] $runtimeSourceFeedKey = '',
- [switch] $excludePrereleaseVS,
- [switch] $help,
- [Parameter(ValueFromRemainingArguments=$true)][String[]]$properties
-)
-
-# Unset 'Platform' environment variable to avoid unwanted collision in InstallDotNetCore.targets file
-# some computer has this env var defined (e.g. Some HP)
-if($env:Platform) {
- $env:Platform=""
-}
-function Print-Usage() {
- Write-Host "Common settings:"
- Write-Host " -configuration Build configuration: 'Debug' or 'Release' (short: -c)"
- Write-Host " -platform Platform configuration: 'x86', 'x64' or any valid Platform value to pass to msbuild"
- Write-Host " -verbosity 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"
- Write-Host ""
-
- Write-Host "Actions:"
- Write-Host " -restore Restore dependencies (short: -r)"
- Write-Host " -build Build solution (short: -b)"
- Write-Host " -rebuild Rebuild solution"
- Write-Host " -deploy Deploy built VSIXes"
- Write-Host " -deployDeps Deploy dependencies (e.g. VSIXes for integration tests)"
- Write-Host " -test Run all unit tests in the solution (short: -t)"
- Write-Host " -integrationTest Run all integration tests in the solution"
- Write-Host " -performanceTest Run all performance tests in the solution"
- Write-Host " -pack Package build outputs into NuGet packages and Willow components"
- Write-Host " -sign Sign build outputs"
- Write-Host " -publish Publish artifacts (e.g. symbols)"
- Write-Host " -clean Clean the solution"
- Write-Host ""
-
- Write-Host "Advanced settings:"
- Write-Host " -projects Semi-colon delimited list of sln/proj's to build. Globbing is supported (*.sln)"
- Write-Host " -ci Set when running on CI server"
- Write-Host " -excludeCIBinarylog Don't output binary log (short: -nobl)"
- Write-Host " -prepareMachine Prepare machine for CI run, clean up processes after build"
- Write-Host " -warnAsError Sets warnaserror msbuild parameter ('true' or 'false')"
- Write-Host " -msbuildEngine Msbuild engine to use to run build ('dotnet', 'vs', or unspecified)."
- Write-Host " -excludePrereleaseVS Set to exclude build engines in prerelease versions of Visual Studio"
- 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. -co for configuration, -t for test, etc.)."
-}
-
-. $PSScriptRoot\tools.ps1
-
-function InitializeCustomToolset {
- if (-not $restore) {
- return
- }
-
- $script = Join-Path $EngRoot 'restore-toolset.ps1'
-
- if (Test-Path $script) {
- . $script
- }
-}
-
-function Build {
- $toolsetBuildProj = InitializeToolset
- InitializeCustomToolset
-
- $bl = if ($binaryLog) { '/bl:' + (Join-Path $LogDir 'Build.binlog') } else { '' }
- $platformArg = if ($platform) { "/p:Platform=$platform" } else { '' }
-
- if ($projects) {
- # Re-assign properties to a new variable because PowerShell doesn't let us append properties directly for unclear reasons.
- # Explicitly set the type as string[] because otherwise PowerShell would make this char[] if $properties is empty.
- [string[]] $msbuildArgs = $properties
-
- # Resolve relative project paths into full paths
- $projects = ($projects.Split(';').ForEach({Resolve-Path $_}) -join ';')
-
- $msbuildArgs += "/p:Projects=$projects"
- $properties = $msbuildArgs
- }
-
- MSBuild $toolsetBuildProj `
- $bl `
- $platformArg `
- /p:Configuration=$configuration `
- /p:RepoRoot=$RepoRoot `
- /p:Restore=$restore `
- /p:DeployDeps=$deployDeps `
- /p:Build=$build `
- /p:Rebuild=$rebuild `
- /p:Deploy=$deploy `
- /p:Test=$test `
- /p:Pack=$pack `
- /p:IntegrationTest=$integrationTest `
- /p:PerformanceTest=$performanceTest `
- /p:Sign=$sign `
- /p:Publish=$publish `
- @properties
-}
-
-try {
- if ($clean) {
- if (Test-Path $ArtifactsDir) {
- Remove-Item -Recurse -Force $ArtifactsDir
- Write-Host 'Artifacts directory deleted.'
- }
- exit 0
- }
-
- if ($help -or (($null -ne $properties) -and ($properties.Contains('/help') -or $properties.Contains('/?')))) {
- Print-Usage
- exit 0
- }
-
- if ($ci) {
- if (-not $excludeCIBinarylog) {
- $binaryLog = $true
- }
- $nodeReuse = $false
- }
-
- if ($restore) {
- InitializeNativeTools
- }
-
- Build
-}
-catch {
- Write-Host $_.ScriptStackTrace
- Write-PipelineTelemetryError -Category 'InitializeToolset' -Message $_
- ExitWithExitCode 1
-}
-
-ExitWithExitCode 0
diff --git a/eng/common/build.sh b/eng/common/build.sh
deleted file mode 100644
index bc07a1c..0000000
--- a/eng/common/build.sh
+++ /dev/null
@@ -1,236 +0,0 @@
-#!/usr/bin/env bash
-
-# Stop script if unbound variable found (use ${var:-} if intentional)
-set -u
-
-# Stop script if command returns non-zero exit code.
-# Prevents hidden errors caused by missing error code propagation.
-set -e
-
-usage()
-{
- echo "Common settings:"
- echo " --configuration Build configuration: 'Debug' or 'Release' (short: -c)"
- echo " --verbosity Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] (short: -v)"
- echo " --binaryLog Create MSBuild binary log (short: -bl)"
- echo " --help Print help and exit (short: -h)"
- echo ""
-
- echo "Actions:"
- echo " --restore Restore dependencies (short: -r)"
- echo " --build Build solution (short: -b)"
- echo " --rebuild Rebuild solution"
- echo " --test Run all unit tests in the solution (short: -t)"
- echo " --integrationTest Run all integration tests in the solution"
- echo " --performanceTest Run all performance tests in the solution"
- echo " --pack Package build outputs into NuGet packages and Willow components"
- echo " --sign Sign build outputs"
- echo " --publish Publish artifacts (e.g. symbols)"
- echo " --clean Clean the solution"
- echo ""
-
- echo "Advanced settings:"
- echo " --projects Project or solution file(s) to build"
- echo " --ci Set when running on CI server"
- echo " --excludeCIBinarylog Don't output binary log (short: -nobl)"
- echo " --prepareMachine Prepare machine for CI run, clean up processes after build"
- echo " --nodeReuse Sets nodereuse msbuild parameter ('true' or 'false')"
- echo " --warnAsError Sets warnaserror msbuild parameter ('true' or 'false')"
- echo ""
- echo "Command line arguments not listed above are passed thru to msbuild."
- echo "Arguments can also be passed in with a single hyphen."
-}
-
-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 )"
-
-restore=false
-build=false
-rebuild=false
-test=false
-integration_test=false
-performance_test=false
-pack=false
-publish=false
-sign=false
-public=false
-ci=false
-clean=false
-
-warn_as_error=true
-node_reuse=true
-binary_log=false
-exclude_ci_binary_log=false
-pipelines_log=false
-
-projects=''
-configuration='Debug'
-prepare_machine=false
-verbosity='minimal'
-runtime_source_feed=''
-runtime_source_feed_key=''
-
-properties=''
-while [[ $# > 0 ]]; do
- opt="$(echo "${1/#--/-}" | tr "[:upper:]" "[:lower:]")"
- case "$opt" in
- -help|-h)
- usage
- exit 0
- ;;
- -clean)
- clean=true
- ;;
- -configuration|-c)
- configuration=$2
- shift
- ;;
- -verbosity|-v)
- verbosity=$2
- shift
- ;;
- -binarylog|-bl)
- binary_log=true
- ;;
- -excludeCIBinarylog|-nobl)
- exclude_ci_binary_log=true
- ;;
- -pipelineslog|-pl)
- pipelines_log=true
- ;;
- -restore|-r)
- restore=true
- ;;
- -build|-b)
- build=true
- ;;
- -rebuild)
- rebuild=true
- ;;
- -pack)
- pack=true
- ;;
- -test|-t)
- test=true
- ;;
- -integrationtest)
- integration_test=true
- ;;
- -performancetest)
- performance_test=true
- ;;
- -sign)
- sign=true
- ;;
- -publish)
- publish=true
- ;;
- -preparemachine)
- prepare_machine=true
- ;;
- -projects)
- projects=$2
- shift
- ;;
- -ci)
- ci=true
- ;;
- -warnaserror)
- warn_as_error=$2
- shift
- ;;
- -nodereuse)
- node_reuse=$2
- shift
- ;;
- -runtimesourcefeed)
- runtime_source_feed=$2
- shift
- ;;
- -runtimesourcefeedkey)
- runtime_source_feed_key=$2
- shift
- ;;
- *)
- properties="$properties $1"
- ;;
- esac
-
- shift
-done
-
-if [[ "$ci" == true ]]; then
- pipelines_log=true
- node_reuse=false
- if [[ "$exclude_ci_binary_log" == false ]]; then
- binary_log=true
- fi
-fi
-
-. "$scriptroot/tools.sh"
-
-function InitializeCustomToolset {
- local script="$eng_root/restore-toolset.sh"
-
- if [[ -a "$script" ]]; then
- . "$script"
- fi
-}
-
-function Build {
-
- if [[ "$ci" == true ]]; then
- TryLogClientIpAddress
- fi
- InitializeToolset
- InitializeCustomToolset
-
- if [[ ! -z "$projects" ]]; then
- properties="$properties /p:Projects=$projects"
- fi
-
- local bl=""
- if [[ "$binary_log" == true ]]; then
- bl="/bl:\"$log_dir/Build.binlog\""
- fi
-
- MSBuild $_InitializeToolset \
- $bl \
- /p:Configuration=$configuration \
- /p:RepoRoot="$repo_root" \
- /p:Restore=$restore \
- /p:Build=$build \
- /p:Rebuild=$rebuild \
- /p:Test=$test \
- /p:Pack=$pack \
- /p:IntegrationTest=$integration_test \
- /p:PerformanceTest=$performance_test \
- /p:Sign=$sign \
- /p:Publish=$publish \
- $properties
-
- ExitWithExitCode 0
-}
-
-if [[ "$clean" == true ]]; then
- if [ -d "$artifacts_dir" ]; then
- rm -rf $artifacts_dir
- echo "Artifacts directory deleted."
- fi
- exit 0
-fi
-
-if [[ "$restore" == true ]]; then
- InitializeNativeTools
-fi
-
-Build
diff --git a/eng/common/cibuild.sh b/eng/common/cibuild.sh
deleted file mode 100644
index 1a02c0d..0000000
--- a/eng/common/cibuild.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/usr/bin/env bash
-
-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 )"
-
-. "$scriptroot/build.sh" --restore --build --test --pack --publish --ci $@
\ No newline at end of file
diff --git a/eng/common/cross/armel/armel.jessie.patch b/eng/common/cross/armel/armel.jessie.patch
deleted file mode 100644
index 2d26156..0000000
--- a/eng/common/cross/armel/armel.jessie.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff -u -r a/usr/include/urcu/uatomic/generic.h b/usr/include/urcu/uatomic/generic.h
---- a/usr/include/urcu/uatomic/generic.h 2014-10-22 15:00:58.000000000 -0700
-+++ b/usr/include/urcu/uatomic/generic.h 2020-10-30 21:38:28.550000000 -0700
-@@ -69,10 +69,10 @@
- #endif
- #ifdef UATOMIC_HAS_ATOMIC_SHORT
- case 2:
-- return __sync_val_compare_and_swap_2(addr, old, _new);
-+ return __sync_val_compare_and_swap_2((uint16_t*) addr, old, _new);
- #endif
- case 4:
-- return __sync_val_compare_and_swap_4(addr, old, _new);
-+ return __sync_val_compare_and_swap_4((uint32_t*) addr, old, _new);
- #if (CAA_BITS_PER_LONG == 64)
- case 8:
- return __sync_val_compare_and_swap_8(addr, old, _new);
-@@ -109,7 +109,7 @@
- return;
- #endif
- case 4:
-- __sync_and_and_fetch_4(addr, val);
-+ __sync_and_and_fetch_4((uint32_t*) addr, val);
- return;
- #if (CAA_BITS_PER_LONG == 64)
- case 8:
-@@ -148,7 +148,7 @@
- return;
- #endif
- case 4:
-- __sync_or_and_fetch_4(addr, val);
-+ __sync_or_and_fetch_4((uint32_t*) addr, val);
- return;
- #if (CAA_BITS_PER_LONG == 64)
- case 8:
-@@ -187,7 +187,7 @@
- return __sync_add_and_fetch_2(addr, val);
- #endif
- case 4:
-- return __sync_add_and_fetch_4(addr, val);
-+ return __sync_add_and_fetch_4((uint32_t*) addr, val);
- #if (CAA_BITS_PER_LONG == 64)
- case 8:
- return __sync_add_and_fetch_8(addr, val);
diff --git a/eng/common/cross/armel/sources.list.jessie b/eng/common/cross/armel/sources.list.jessie
deleted file mode 100644
index 3d9c305..0000000
--- a/eng/common/cross/armel/sources.list.jessie
+++ /dev/null
@@ -1,3 +0,0 @@
-# Debian (jessie) # Stable
-deb http://ftp.debian.org/debian/ jessie main contrib non-free
-deb-src http://ftp.debian.org/debian/ jessie main contrib non-free
diff --git a/eng/common/cross/armel/tizen-build-rootfs.sh b/eng/common/cross/armel/tizen-build-rootfs.sh
deleted file mode 100644
index 9a4438a..0000000
--- a/eng/common/cross/armel/tizen-build-rootfs.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/env bash
-set -e
-
-__ARM_SOFTFP_CrossDir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
-__TIZEN_CROSSDIR="$__ARM_SOFTFP_CrossDir/tizen"
-
-if [[ -z "$ROOTFS_DIR" ]]; then
- echo "ROOTFS_DIR is not defined."
- exit 1;
-fi
-
-TIZEN_TMP_DIR=$ROOTFS_DIR/tizen_tmp
-mkdir -p $TIZEN_TMP_DIR
-
-# Download files
-echo ">>Start downloading files"
-VERBOSE=1 $__ARM_SOFTFP_CrossDir/tizen-fetch.sh $TIZEN_TMP_DIR
-echo "<>Start constructing Tizen rootfs"
-TIZEN_RPM_FILES=`ls $TIZEN_TMP_DIR/*.rpm`
-cd $ROOTFS_DIR
-for f in $TIZEN_RPM_FILES; do
- rpm2cpio $f | cpio -idm --quiet
-done
-echo "<>Start configuring Tizen rootfs"
-ln -sfn asm-arm ./usr/include/asm
-patch -p1 < $__TIZEN_CROSSDIR/tizen.patch
-echo "</dev/null; then
- VERBOSE=0
-fi
-
-Log()
-{
- if [ $VERBOSE -ge $1 ]; then
- echo ${@:2}
- fi
-}
-
-Inform()
-{
- Log 1 -e "\x1B[0;34m$@\x1B[m"
-}
-
-Debug()
-{
- Log 2 -e "\x1B[0;32m$@\x1B[m"
-}
-
-Error()
-{
- >&2 Log 0 -e "\x1B[0;31m$@\x1B[m"
-}
-
-Fetch()
-{
- URL=$1
- FILE=$2
- PROGRESS=$3
- if [ $VERBOSE -ge 1 ] && [ $PROGRESS ]; then
- CURL_OPT="--progress-bar"
- else
- CURL_OPT="--silent"
- fi
- curl $CURL_OPT $URL > $FILE
-}
-
-hash curl 2> /dev/null || { Error "Require 'curl' Aborting."; exit 1; }
-hash xmllint 2> /dev/null || { Error "Require 'xmllint' Aborting."; exit 1; }
-hash sha256sum 2> /dev/null || { Error "Require 'sha256sum' Aborting."; exit 1; }
-
-TMPDIR=$1
-if [ ! -d $TMPDIR ]; then
- TMPDIR=./tizen_tmp
- Debug "Create temporary directory : $TMPDIR"
- mkdir -p $TMPDIR
-fi
-
-TIZEN_URL=http://download.tizen.org/snapshots/tizen
-BUILD_XML=build.xml
-REPOMD_XML=repomd.xml
-PRIMARY_XML=primary.xml
-TARGET_URL="http://__not_initialized"
-
-Xpath_get()
-{
- XPATH_RESULT=''
- XPATH=$1
- XML_FILE=$2
- RESULT=$(xmllint --xpath $XPATH $XML_FILE)
- if [[ -z ${RESULT// } ]]; then
- Error "Can not find target from $XML_FILE"
- Debug "Xpath = $XPATH"
- exit 1
- fi
- XPATH_RESULT=$RESULT
-}
-
-fetch_tizen_pkgs_init()
-{
- TARGET=$1
- PROFILE=$2
- Debug "Initialize TARGET=$TARGET, PROFILE=$PROFILE"
-
- TMP_PKG_DIR=$TMPDIR/tizen_${PROFILE}_pkgs
- if [ -d $TMP_PKG_DIR ]; then rm -rf $TMP_PKG_DIR; fi
- mkdir -p $TMP_PKG_DIR
-
- PKG_URL=$TIZEN_URL/$PROFILE/latest
-
- BUILD_XML_URL=$PKG_URL/$BUILD_XML
- TMP_BUILD=$TMP_PKG_DIR/$BUILD_XML
- TMP_REPOMD=$TMP_PKG_DIR/$REPOMD_XML
- TMP_PRIMARY=$TMP_PKG_DIR/$PRIMARY_XML
- TMP_PRIMARYGZ=${TMP_PRIMARY}.gz
-
- Fetch $BUILD_XML_URL $TMP_BUILD
-
- Debug "fetch $BUILD_XML_URL to $TMP_BUILD"
-
- TARGET_XPATH="//build/buildtargets/buildtarget[@name=\"$TARGET\"]/repo[@type=\"binary\"]/text()"
- Xpath_get $TARGET_XPATH $TMP_BUILD
- TARGET_PATH=$XPATH_RESULT
- TARGET_URL=$PKG_URL/$TARGET_PATH
-
- REPOMD_URL=$TARGET_URL/repodata/repomd.xml
- PRIMARY_XPATH='string(//*[local-name()="data"][@type="primary"]/*[local-name()="location"]/@href)'
-
- Fetch $REPOMD_URL $TMP_REPOMD
-
- Debug "fetch $REPOMD_URL to $TMP_REPOMD"
-
- Xpath_get $PRIMARY_XPATH $TMP_REPOMD
- PRIMARY_XML_PATH=$XPATH_RESULT
- PRIMARY_URL=$TARGET_URL/$PRIMARY_XML_PATH
-
- Fetch $PRIMARY_URL $TMP_PRIMARYGZ
-
- Debug "fetch $PRIMARY_URL to $TMP_PRIMARYGZ"
-
- gunzip $TMP_PRIMARYGZ
-
- Debug "unzip $TMP_PRIMARYGZ to $TMP_PRIMARY"
-}
-
-fetch_tizen_pkgs()
-{
- ARCH=$1
- PACKAGE_XPATH_TPL='string(//*[local-name()="metadata"]/*[local-name()="package"][*[local-name()="name"][text()="_PKG_"]][*[local-name()="arch"][text()="_ARCH_"]]/*[local-name()="location"]/@href)'
-
- PACKAGE_CHECKSUM_XPATH_TPL='string(//*[local-name()="metadata"]/*[local-name()="package"][*[local-name()="name"][text()="_PKG_"]][*[local-name()="arch"][text()="_ARCH_"]]/*[local-name()="checksum"]/text())'
-
- for pkg in ${@:2}
- do
- Inform "Fetching... $pkg"
- XPATH=${PACKAGE_XPATH_TPL/_PKG_/$pkg}
- XPATH=${XPATH/_ARCH_/$ARCH}
- Xpath_get $XPATH $TMP_PRIMARY
- PKG_PATH=$XPATH_RESULT
-
- XPATH=${PACKAGE_CHECKSUM_XPATH_TPL/_PKG_/$pkg}
- XPATH=${XPATH/_ARCH_/$ARCH}
- Xpath_get $XPATH $TMP_PRIMARY
- CHECKSUM=$XPATH_RESULT
-
- PKG_URL=$TARGET_URL/$PKG_PATH
- PKG_FILE=$(basename $PKG_PATH)
- PKG_PATH=$TMPDIR/$PKG_FILE
-
- Debug "Download $PKG_URL to $PKG_PATH"
- Fetch $PKG_URL $PKG_PATH true
-
- echo "$CHECKSUM $PKG_PATH" | sha256sum -c - > /dev/null
- if [ $? -ne 0 ]; then
- Error "Fail to fetch $PKG_URL to $PKG_PATH"
- Debug "Checksum = $CHECKSUM"
- exit 1
- fi
- done
-}
-
-Inform "Initialize arm base"
-fetch_tizen_pkgs_init standard base
-Inform "fetch common packages"
-fetch_tizen_pkgs armv7l gcc gcc-devel-static glibc glibc-devel libicu libicu-devel libatomic linux-glibc-devel keyutils keyutils-devel libkeyutils
-Inform "fetch coreclr packages"
-fetch_tizen_pkgs armv7l lldb lldb-devel libgcc libstdc++ libstdc++-devel libunwind libunwind-devel lttng-ust-devel lttng-ust userspace-rcu-devel userspace-rcu
-Inform "fetch corefx packages"
-fetch_tizen_pkgs armv7l libcom_err libcom_err-devel zlib zlib-devel libopenssl11 libopenssl1.1-devel krb5 krb5-devel
-
-Inform "Initialize standard unified"
-fetch_tizen_pkgs_init standard unified
-Inform "fetch corefx packages"
-fetch_tizen_pkgs armv7l gssdp gssdp-devel tizen-release
-
diff --git a/eng/common/cross/armel/tizen/tizen-dotnet.ks b/eng/common/cross/armel/tizen/tizen-dotnet.ks
deleted file mode 100644
index 506d455..0000000
--- a/eng/common/cross/armel/tizen/tizen-dotnet.ks
+++ /dev/null
@@ -1,50 +0,0 @@
-lang en_US.UTF-8
-keyboard us
-timezone --utc Asia/Seoul
-
-part / --fstype="ext4" --size=3500 --ondisk=mmcblk0 --label rootfs --fsoptions=defaults,noatime
-
-rootpw tizen
-desktop --autologinuser=root
-user --name root --groups audio,video --password 'tizen'
-
-repo --name=standard --baseurl=http://download.tizen.org/releases/milestone/tizen/unified/latest/repos/standard/packages/ --ssl_verify=no
-repo --name=base --baseurl=http://download.tizen.org/releases/milestone/tizen/base/latest/repos/standard/packages/ --ssl_verify=no
-
-%packages
-tar
-gzip
-
-sed
-grep
-gawk
-perl
-
-binutils
-findutils
-util-linux
-lttng-ust
-userspace-rcu
-procps-ng
-tzdata
-ca-certificates
-
-
-### Core FX
-libicu
-libunwind
-iputils
-zlib
-krb5
-libcurl
-libopenssl
-
-%end
-
-%post
-
-### Update /tmp privilege
-chmod 777 /tmp
-####################################
-
-%end
diff --git a/eng/common/cross/armel/tizen/tizen.patch b/eng/common/cross/armel/tizen/tizen.patch
deleted file mode 100644
index ca7c7c1..0000000
--- a/eng/common/cross/armel/tizen/tizen.patch
+++ /dev/null
@@ -1,9 +0,0 @@
-diff -u -r a/usr/lib/libc.so b/usr/lib/libc.so
---- a/usr/lib/libc.so 2016-12-30 23:00:08.284951863 +0900
-+++ b/usr/lib/libc.so 2016-12-30 23:00:32.140951815 +0900
-@@ -2,4 +2,4 @@
- Use the shared library, but some functions are only in
- the static library, so try that secondarily. */
- OUTPUT_FORMAT(elf32-littlearm)
--GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a AS_NEEDED ( /lib/ld-linux.so.3 ) )
-+GROUP ( libc.so.6 libc_nonshared.a AS_NEEDED ( ld-linux.so.3 ) )
diff --git a/eng/common/cross/build-android-rootfs.sh b/eng/common/cross/build-android-rootfs.sh
deleted file mode 100644
index 42516bb..0000000
--- a/eng/common/cross/build-android-rootfs.sh
+++ /dev/null
@@ -1,131 +0,0 @@
-#!/usr/bin/env bash
-set -e
-__NDK_Version=r21
-
-usage()
-{
- echo "Creates a toolchain and sysroot used for cross-compiling for Android."
- echo.
- echo "Usage: $0 [BuildArch] [ApiLevel]"
- echo.
- echo "BuildArch is the target architecture of Android. Currently only arm64 is supported."
- echo "ApiLevel is the target Android API level. API levels usually match to Android releases. See https://source.android.com/source/build-numbers.html"
- echo.
- echo "By default, the toolchain and sysroot will be generated in cross/android-rootfs/toolchain/[BuildArch]. You can change this behavior"
- echo "by setting the TOOLCHAIN_DIR environment variable"
- echo.
- echo "By default, the NDK will be downloaded into the cross/android-rootfs/android-ndk-$__NDK_Version directory. If you already have an NDK installation,"
- echo "you can set the NDK_DIR environment variable to have this script use that installation of the NDK."
- echo "By default, this script will generate a file, android_platform, in the root of the ROOTFS_DIR directory that contains the RID for the supported and tested Android build: android.28-arm64. This file is to replace '/etc/os-release', which is not available for Android."
- exit 1
-}
-
-__ApiLevel=28 # The minimum platform for arm64 is API level 21 but the minimum version that support glob(3) is 28. See $ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/glob.h
-__BuildArch=arm64
-__AndroidArch=aarch64
-__AndroidToolchain=aarch64-linux-android
-
-for i in "$@"
- do
- lowerI="$(echo $i | tr "[:upper:]" "[:lower:]")"
- case $lowerI in
- -?|-h|--help)
- usage
- exit 1
- ;;
- arm64)
- __BuildArch=arm64
- __AndroidArch=aarch64
- __AndroidToolchain=aarch64-linux-android
- ;;
- arm)
- __BuildArch=arm
- __AndroidArch=arm
- __AndroidToolchain=arm-linux-androideabi
- ;;
- *[0-9])
- __ApiLevel=$i
- ;;
- *)
- __UnprocessedBuildArgs="$__UnprocessedBuildArgs $i"
- ;;
- esac
-done
-
-# Obtain the location of the bash script to figure out where the root of the repo is.
-__ScriptBaseDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-
-__CrossDir="$__ScriptBaseDir/../../../.tools/android-rootfs"
-
-if [[ ! -f "$__CrossDir" ]]; then
- mkdir -p "$__CrossDir"
-fi
-
-# Resolve absolute path to avoid `../` in build logs
-__CrossDir="$( cd "$__CrossDir" && pwd )"
-
-__NDK_Dir="$__CrossDir/android-ndk-$__NDK_Version"
-__lldb_Dir="$__CrossDir/lldb"
-__ToolchainDir="$__CrossDir/android-ndk-$__NDK_Version"
-
-if [[ -n "$TOOLCHAIN_DIR" ]]; then
- __ToolchainDir=$TOOLCHAIN_DIR
-fi
-
-if [[ -n "$NDK_DIR" ]]; then
- __NDK_Dir=$NDK_DIR
-fi
-
-echo "Target API level: $__ApiLevel"
-echo "Target architecture: $__BuildArch"
-echo "NDK location: $__NDK_Dir"
-echo "Target Toolchain location: $__ToolchainDir"
-
-# Download the NDK if required
-if [ ! -d $__NDK_Dir ]; then
- echo Downloading the NDK into $__NDK_Dir
- mkdir -p $__NDK_Dir
- wget -q --progress=bar:force:noscroll --show-progress https://dl.google.com/android/repository/android-ndk-$__NDK_Version-linux-x86_64.zip -O $__CrossDir/android-ndk-$__NDK_Version-linux-x86_64.zip
- unzip -q $__CrossDir/android-ndk-$__NDK_Version-linux-x86_64.zip -d $__CrossDir
-fi
-
-if [ ! -d $__lldb_Dir ]; then
- mkdir -p $__lldb_Dir
- echo Downloading LLDB into $__lldb_Dir
- wget -q --progress=bar:force:noscroll --show-progress https://dl.google.com/android/repository/lldb-2.3.3614996-linux-x86_64.zip -O $__CrossDir/lldb-2.3.3614996-linux-x86_64.zip
- unzip -q $__CrossDir/lldb-2.3.3614996-linux-x86_64.zip -d $__lldb_Dir
-fi
-
-echo "Download dependencies..."
-__TmpDir=$__CrossDir/tmp/$__BuildArch/
-mkdir -p "$__TmpDir"
-
-# combined dependencies for coreclr, installer and libraries
-__AndroidPackages="libicu"
-__AndroidPackages+=" libandroid-glob"
-__AndroidPackages+=" liblzma"
-__AndroidPackages+=" krb5"
-__AndroidPackages+=" openssl"
-
-for path in $(wget -qO- http://termux.net/dists/stable/main/binary-$__AndroidArch/Packages |\
- grep -A15 "Package: \(${__AndroidPackages// /\\|}\)" | grep -v "static\|tool" | grep Filename); do
-
- if [[ "$path" != "Filename:" ]]; then
- echo "Working on: $path"
- wget -qO- http://termux.net/$path | dpkg -x - "$__TmpDir"
- fi
-done
-
-cp -R "$__TmpDir/data/data/com.termux/files/usr/"* "$__ToolchainDir/sysroot/usr/"
-
-# Generate platform file for build.sh script to assign to __DistroRid
-echo "Generating platform file..."
-echo "RID=android.${__ApiLevel}-${__BuildArch}" > $__ToolchainDir/sysroot/android_platform
-
-echo "Now to build coreclr, libraries and installers; run:"
-echo ROOTFS_DIR=\$\(realpath $__ToolchainDir/sysroot\) ./build.sh --cross --arch $__BuildArch \
- --subsetCategory coreclr
-echo ROOTFS_DIR=\$\(realpath $__ToolchainDir/sysroot\) ./build.sh --cross --arch $__BuildArch \
- --subsetCategory libraries
-echo ROOTFS_DIR=\$\(realpath $__ToolchainDir/sysroot\) ./build.sh --cross --arch $__BuildArch \
- --subsetCategory installer
diff --git a/eng/common/cross/build-rootfs.sh b/eng/common/cross/build-rootfs.sh
deleted file mode 100644
index 6fa2c8a..0000000
--- a/eng/common/cross/build-rootfs.sh
+++ /dev/null
@@ -1,363 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-usage()
-{
- echo "Usage: $0 [BuildArch] [CodeName] [lldbx.y] [--skipunmount] --rootfsdir ]"
- echo "BuildArch can be: arm(default), armel, arm64, x86"
- echo "CodeName - optional, Code name for Linux, can be: xenial(default), zesty, bionic, alpine, alpine3.13 or alpine3.14. If BuildArch is armel, LinuxCodeName is jessie(default) or tizen."
- echo " for FreeBSD can be: freebsd11, freebsd12, freebsd13"
- echo " for illumos can be: illumos."
- echo "lldbx.y - optional, LLDB version, can be: lldb3.9(default), lldb4.0, lldb5.0, lldb6.0 no-lldb. Ignored for alpine and FreeBSD"
- echo "--skipunmount - optional, will skip the unmount of rootfs folder."
- echo "--use-mirror - optional, use mirror URL to fetch resources, when available."
- exit 1
-}
-
-__CodeName=xenial
-__CrossDir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
-__InitialDir=$PWD
-__BuildArch=arm
-__AlpineArch=armv7
-__QEMUArch=arm
-__UbuntuArch=armhf
-__UbuntuRepo="http://ports.ubuntu.com/"
-__LLDB_Package="liblldb-3.9-dev"
-__SkipUnmount=0
-
-# base development support
-__UbuntuPackages="build-essential"
-
-__AlpinePackages="alpine-base"
-__AlpinePackages+=" build-base"
-__AlpinePackages+=" linux-headers"
-__AlpinePackages+=" lldb-dev"
-__AlpinePackages+=" python3"
-__AlpinePackages+=" libedit"
-
-# symlinks fixer
-__UbuntuPackages+=" symlinks"
-
-# CoreCLR and CoreFX dependencies
-__UbuntuPackages+=" libicu-dev"
-__UbuntuPackages+=" liblttng-ust-dev"
-__UbuntuPackages+=" libunwind8-dev"
-
-__AlpinePackages+=" gettext-dev"
-__AlpinePackages+=" icu-dev"
-__AlpinePackages+=" libunwind-dev"
-__AlpinePackages+=" lttng-ust-dev"
-
-# CoreFX dependencies
-__UbuntuPackages+=" libcurl4-openssl-dev"
-__UbuntuPackages+=" libkrb5-dev"
-__UbuntuPackages+=" libssl-dev"
-__UbuntuPackages+=" zlib1g-dev"
-
-__AlpinePackages+=" curl-dev"
-__AlpinePackages+=" krb5-dev"
-__AlpinePackages+=" openssl-dev"
-__AlpinePackages+=" zlib-dev"
-
-__FreeBSDBase="12.2-RELEASE"
-__FreeBSDPkg="1.12.0"
-__FreeBSDABI="12"
-__FreeBSDPackages="libunwind"
-__FreeBSDPackages+=" icu"
-__FreeBSDPackages+=" libinotify"
-__FreeBSDPackages+=" lttng-ust"
-__FreeBSDPackages+=" krb5"
-__FreeBSDPackages+=" terminfo-db"
-
-__IllumosPackages="icu-64.2nb2"
-__IllumosPackages+=" mit-krb5-1.16.2nb4"
-__IllumosPackages+=" openssl-1.1.1e"
-__IllumosPackages+=" zlib-1.2.11"
-
-# ML.NET dependencies
-__UbuntuPackages+=" libomp5"
-__UbuntuPackages+=" libomp-dev"
-
-__UseMirror=0
-
-__UnprocessedBuildArgs=
-while :; do
- if [ $# -le 0 ]; then
- break
- fi
-
- lowerI="$(echo $1 | tr "[:upper:]" "[:lower:]")"
- case $lowerI in
- -?|-h|--help)
- usage
- exit 1
- ;;
- arm)
- __BuildArch=arm
- __UbuntuArch=armhf
- __AlpineArch=armv7
- __QEMUArch=arm
- ;;
- arm64)
- __BuildArch=arm64
- __UbuntuArch=arm64
- __AlpineArch=aarch64
- __QEMUArch=aarch64
- ;;
- armel)
- __BuildArch=armel
- __UbuntuArch=armel
- __UbuntuRepo="http://ftp.debian.org/debian/"
- __CodeName=jessie
- ;;
- s390x)
- __BuildArch=s390x
- __UbuntuArch=s390x
- __UbuntuRepo="http://ports.ubuntu.com/ubuntu-ports/"
- __UbuntuPackages=$(echo ${__UbuntuPackages} | sed 's/ libunwind8-dev//')
- __UbuntuPackages=$(echo ${__UbuntuPackages} | sed 's/ libomp-dev//')
- __UbuntuPackages=$(echo ${__UbuntuPackages} | sed 's/ libomp5//')
- unset __LLDB_Package
- ;;
- x86)
- __BuildArch=x86
- __UbuntuArch=i386
- __UbuntuRepo="http://archive.ubuntu.com/ubuntu/"
- ;;
- lldb3.6)
- __LLDB_Package="lldb-3.6-dev"
- ;;
- lldb3.8)
- __LLDB_Package="lldb-3.8-dev"
- ;;
- lldb3.9)
- __LLDB_Package="liblldb-3.9-dev"
- ;;
- lldb4.0)
- __LLDB_Package="liblldb-4.0-dev"
- ;;
- lldb5.0)
- __LLDB_Package="liblldb-5.0-dev"
- ;;
- lldb6.0)
- __LLDB_Package="liblldb-6.0-dev"
- ;;
- no-lldb)
- unset __LLDB_Package
- ;;
- xenial) # Ubuntu 16.04
- if [ "$__CodeName" != "jessie" ]; then
- __CodeName=xenial
- fi
- ;;
- zesty) # Ubuntu 17.04
- if [ "$__CodeName" != "jessie" ]; then
- __CodeName=zesty
- fi
- ;;
- bionic) # Ubuntu 18.04
- if [ "$__CodeName" != "jessie" ]; then
- __CodeName=bionic
- fi
- ;;
- jessie) # Debian 8
- __CodeName=jessie
- __UbuntuRepo="http://ftp.debian.org/debian/"
- ;;
- stretch) # Debian 9
- __CodeName=stretch
- __UbuntuRepo="http://ftp.debian.org/debian/"
- __LLDB_Package="liblldb-6.0-dev"
- ;;
- buster) # Debian 10
- __CodeName=buster
- __UbuntuRepo="http://ftp.debian.org/debian/"
- __LLDB_Package="liblldb-6.0-dev"
- ;;
- tizen)
- if [ "$__BuildArch" != "armel" ] && [ "$__BuildArch" != "arm64" ]; then
- echo "Tizen is available only for armel and arm64."
- usage;
- exit 1;
- fi
- __CodeName=
- __UbuntuRepo=
- __Tizen=tizen
- ;;
- alpine|alpine3.13)
- __CodeName=alpine
- __UbuntuRepo=
- __AlpineVersion=3.13
- __AlpinePackages+=" llvm10-libs"
- ;;
- alpine3.14)
- __CodeName=alpine
- __UbuntuRepo=
- __AlpineVersion=3.14
- __AlpinePackages+=" llvm11-libs"
- ;;
- freebsd11)
- __FreeBSDBase="11.3-RELEASE"
- __FreeBSDABI="11"
- ;&
- freebsd12)
- __CodeName=freebsd
- __BuildArch=x64
- __SkipUnmount=1
- ;;
- freebsd13)
- __CodeName=freebsd
- __FreeBSDBase="13.0-RELEASE"
- __FreeBSDABI="13"
- __BuildArch=x64
- __SkipUnmount=1
- ;;
- illumos)
- __CodeName=illumos
- __BuildArch=x64
- __SkipUnmount=1
- ;;
- --skipunmount)
- __SkipUnmount=1
- ;;
- --rootfsdir|-rootfsdir)
- shift
- __RootfsDir=$1
- ;;
- --use-mirror)
- __UseMirror=1
- ;;
- *)
- __UnprocessedBuildArgs="$__UnprocessedBuildArgs $1"
- ;;
- esac
-
- shift
-done
-
-if [ "$__BuildArch" == "armel" ]; then
- __LLDB_Package="lldb-3.5-dev"
-fi
-__UbuntuPackages+=" ${__LLDB_Package:-}"
-
-if [ -z "$__RootfsDir" ] && [ ! -z "$ROOTFS_DIR" ]; then
- __RootfsDir=$ROOTFS_DIR
-fi
-
-if [ -z "$__RootfsDir" ]; then
- __RootfsDir="$__CrossDir/../../../.tools/rootfs/$__BuildArch"
-fi
-
-if [ -d "$__RootfsDir" ]; then
- if [ $__SkipUnmount == 0 ]; then
- umount $__RootfsDir/* || true
- fi
- rm -rf $__RootfsDir
-fi
-
-mkdir -p $__RootfsDir
-__RootfsDir="$( cd "$__RootfsDir" && pwd )"
-
-if [[ "$__CodeName" == "alpine" ]]; then
- __ApkToolsVersion=2.9.1
- __ApkToolsDir=$(mktemp -d)
- wget https://github.com/alpinelinux/apk-tools/releases/download/v$__ApkToolsVersion/apk-tools-$__ApkToolsVersion-x86_64-linux.tar.gz -P $__ApkToolsDir
- tar -xf $__ApkToolsDir/apk-tools-$__ApkToolsVersion-x86_64-linux.tar.gz -C $__ApkToolsDir
- mkdir -p $__RootfsDir/usr/bin
- cp -v /usr/bin/qemu-$__QEMUArch-static $__RootfsDir/usr/bin
-
- $__ApkToolsDir/apk-tools-$__ApkToolsVersion/apk \
- -X http://dl-cdn.alpinelinux.org/alpine/v$__AlpineVersion/main \
- -X http://dl-cdn.alpinelinux.org/alpine/v$__AlpineVersion/community \
- -U --allow-untrusted --root $__RootfsDir --arch $__AlpineArch --initdb \
- add $__AlpinePackages
-
- rm -r $__ApkToolsDir
-elif [[ "$__CodeName" == "freebsd" ]]; then
- mkdir -p $__RootfsDir/usr/local/etc
- JOBS="$(getconf _NPROCESSORS_ONLN)"
- wget -O - https://download.freebsd.org/ftp/releases/amd64/${__FreeBSDBase}/base.txz | tar -C $__RootfsDir -Jxf - ./lib ./usr/lib ./usr/libdata ./usr/include ./usr/share/keys ./etc ./bin/freebsd-version
- echo "ABI = \"FreeBSD:${__FreeBSDABI}:amd64\"; FINGERPRINTS = \"${__RootfsDir}/usr/share/keys\"; REPOS_DIR = [\"${__RootfsDir}/etc/pkg\"]; REPO_AUTOUPDATE = NO; RUN_SCRIPTS = NO;" > ${__RootfsDir}/usr/local/etc/pkg.conf
- echo "FreeBSD: { url: "pkg+http://pkg.FreeBSD.org/\${ABI}/quarterly", mirror_type: \"srv\", signature_type: \"fingerprints\", fingerprints: \"${__RootfsDir}/usr/share/keys/pkg\", enabled: yes }" > ${__RootfsDir}/etc/pkg/FreeBSD.conf
- mkdir -p $__RootfsDir/tmp
- # get and build package manager
- wget -O - https://github.com/freebsd/pkg/archive/${__FreeBSDPkg}.tar.gz | tar -C $__RootfsDir/tmp -zxf -
- cd $__RootfsDir/tmp/pkg-${__FreeBSDPkg}
- # needed for install to succeed
- mkdir -p $__RootfsDir/host/etc
- ./autogen.sh && ./configure --prefix=$__RootfsDir/host && make -j "$JOBS" && make install
- rm -rf $__RootfsDir/tmp/pkg-${__FreeBSDPkg}
- # install packages we need.
- INSTALL_AS_USER=$(whoami) $__RootfsDir/host/sbin/pkg -r $__RootfsDir -C $__RootfsDir/usr/local/etc/pkg.conf update
- INSTALL_AS_USER=$(whoami) $__RootfsDir/host/sbin/pkg -r $__RootfsDir -C $__RootfsDir/usr/local/etc/pkg.conf install --yes $__FreeBSDPackages
-elif [[ "$__CodeName" == "illumos" ]]; then
- mkdir "$__RootfsDir/tmp"
- pushd "$__RootfsDir/tmp"
- JOBS="$(getconf _NPROCESSORS_ONLN)"
- echo "Downloading sysroot."
- wget -O - https://github.com/illumos/sysroot/releases/download/20181213-de6af22ae73b-v1/illumos-sysroot-i386-20181213-de6af22ae73b-v1.tar.gz | tar -C "$__RootfsDir" -xzf -
- echo "Building binutils. Please wait.."
- wget -O - https://ftp.gnu.org/gnu/binutils/binutils-2.33.1.tar.bz2 | tar -xjf -
- mkdir build-binutils && cd build-binutils
- ../binutils-2.33.1/configure --prefix="$__RootfsDir" --target="x86_64-sun-solaris2.10" --program-prefix="x86_64-illumos-" --with-sysroot="$__RootfsDir"
- make -j "$JOBS" && make install && cd ..
- echo "Building gcc. Please wait.."
- wget -O - https://ftp.gnu.org/gnu/gcc/gcc-8.4.0/gcc-8.4.0.tar.xz | tar -xJf -
- CFLAGS="-fPIC"
- CXXFLAGS="-fPIC"
- CXXFLAGS_FOR_TARGET="-fPIC"
- CFLAGS_FOR_TARGET="-fPIC"
- export CFLAGS CXXFLAGS CXXFLAGS_FOR_TARGET CFLAGS_FOR_TARGET
- mkdir build-gcc && cd build-gcc
- ../gcc-8.4.0/configure --prefix="$__RootfsDir" --target="x86_64-sun-solaris2.10" --program-prefix="x86_64-illumos-" --with-sysroot="$__RootfsDir" --with-gnu-as \
- --with-gnu-ld --disable-nls --disable-libgomp --disable-libquadmath --disable-libssp --disable-libvtv --disable-libcilkrts --disable-libada --disable-libsanitizer \
- --disable-libquadmath-support --disable-shared --enable-tls
- make -j "$JOBS" && make install && cd ..
- BaseUrl=https://pkgsrc.joyent.com
- if [[ "$__UseMirror" == 1 ]]; then
- BaseUrl=http://pkgsrc.smartos.skylime.net
- fi
- BaseUrl="$BaseUrl"/packages/SmartOS/2020Q1/x86_64/All
- echo "Downloading dependencies."
- read -ra array <<<"$__IllumosPackages"
- for package in "${array[@]}"; do
- echo "Installing $package..."
- wget "$BaseUrl"/"$package".tgz
- ar -x "$package".tgz
- tar --skip-old-files -xzf "$package".tmp.tgz -C "$__RootfsDir" 2>/dev/null
- done
- echo "Cleaning up temporary files."
- popd
- rm -rf "$__RootfsDir"/{tmp,+*}
- mkdir -p "$__RootfsDir"/usr/include/net
- mkdir -p "$__RootfsDir"/usr/include/netpacket
- wget -P "$__RootfsDir"/usr/include/net https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/io/bpf/net/bpf.h
- wget -P "$__RootfsDir"/usr/include/net https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/io/bpf/net/dlt.h
- wget -P "$__RootfsDir"/usr/include/netpacket https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/inet/sockmods/netpacket/packet.h
- wget -P "$__RootfsDir"/usr/include/sys https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/sys/sdt.h
-elif [[ -n $__CodeName ]]; then
- qemu-debootstrap --arch $__UbuntuArch $__CodeName $__RootfsDir $__UbuntuRepo
- cp $__CrossDir/$__BuildArch/sources.list.$__CodeName $__RootfsDir/etc/apt/sources.list
- chroot $__RootfsDir apt-get update
- chroot $__RootfsDir apt-get -f -y install
- chroot $__RootfsDir apt-get -y install $__UbuntuPackages
- chroot $__RootfsDir symlinks -cr /usr
- chroot $__RootfsDir apt-get clean
-
- if [ $__SkipUnmount == 0 ]; then
- umount $__RootfsDir/* || true
- fi
-
- if [[ "$__BuildArch" == "armel" && "$__CodeName" == "jessie" ]]; then
- pushd $__RootfsDir
- patch -p1 < $__CrossDir/$__BuildArch/armel.jessie.patch
- popd
- fi
-elif [[ "$__Tizen" == "tizen" ]]; then
- ROOTFS_DIR=$__RootfsDir $__CrossDir/$__BuildArch/tizen-build-rootfs.sh
-else
- echo "Unsupported target platform."
- usage;
- exit 1
-fi
diff --git a/eng/common/cross/s390x/sources.list.bionic b/eng/common/cross/s390x/sources.list.bionic
deleted file mode 100644
index 2109557..0000000
--- a/eng/common/cross/s390x/sources.list.bionic
+++ /dev/null
@@ -1,11 +0,0 @@
-deb http://ports.ubuntu.com/ubuntu-ports/ bionic main restricted universe
-deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic main restricted universe
-
-deb http://ports.ubuntu.com/ubuntu-ports/ bionic-updates main restricted universe
-deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic-updates main restricted universe
-
-deb http://ports.ubuntu.com/ubuntu-ports/ bionic-backports main restricted
-deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic-backports main restricted
-
-deb http://ports.ubuntu.com/ubuntu-ports/ bionic-security main restricted universe multiverse
-deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic-security main restricted universe multiverse
diff --git a/eng/common/cross/toolchain.cmake b/eng/common/cross/toolchain.cmake
deleted file mode 100644
index 6501c3a..0000000
--- a/eng/common/cross/toolchain.cmake
+++ /dev/null
@@ -1,245 +0,0 @@
-set(CROSS_ROOTFS $ENV{ROOTFS_DIR})
-
-set(TARGET_ARCH_NAME $ENV{TARGET_BUILD_ARCH})
-if(EXISTS ${CROSS_ROOTFS}/bin/freebsd-version)
- set(CMAKE_SYSTEM_NAME FreeBSD)
-elseif(EXISTS ${CROSS_ROOTFS}/usr/platform/i86pc)
- set(CMAKE_SYSTEM_NAME SunOS)
- set(ILLUMOS 1)
-else()
- set(CMAKE_SYSTEM_NAME Linux)
-endif()
-set(CMAKE_SYSTEM_VERSION 1)
-
-if(TARGET_ARCH_NAME STREQUAL "armel")
- set(CMAKE_SYSTEM_PROCESSOR armv7l)
- set(TOOLCHAIN "arm-linux-gnueabi")
- if("$ENV{__DistroRid}" MATCHES "tizen.*")
- set(TIZEN_TOOLCHAIN "armv7l-tizen-linux-gnueabi/9.2.0")
- endif()
-elseif(TARGET_ARCH_NAME STREQUAL "arm")
- set(CMAKE_SYSTEM_PROCESSOR armv7l)
- if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/armv7-alpine-linux-musleabihf)
- set(TOOLCHAIN "armv7-alpine-linux-musleabihf")
- elseif(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/armv6-alpine-linux-musleabihf)
- set(TOOLCHAIN "armv6-alpine-linux-musleabihf")
- else()
- set(TOOLCHAIN "arm-linux-gnueabihf")
- endif()
-elseif(TARGET_ARCH_NAME STREQUAL "arm64")
- set(CMAKE_SYSTEM_PROCESSOR aarch64)
- if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/aarch64-alpine-linux-musl)
- set(TOOLCHAIN "aarch64-alpine-linux-musl")
- else()
- set(TOOLCHAIN "aarch64-linux-gnu")
- endif()
- if("$ENV{__DistroRid}" MATCHES "tizen.*")
- set(TIZEN_TOOLCHAIN "aarch64-tizen-linux-gnu/9.2.0")
- endif()
-elseif(TARGET_ARCH_NAME STREQUAL "s390x")
- set(CMAKE_SYSTEM_PROCESSOR s390x)
- set(TOOLCHAIN "s390x-linux-gnu")
-elseif(TARGET_ARCH_NAME STREQUAL "x86")
- set(CMAKE_SYSTEM_PROCESSOR i686)
- set(TOOLCHAIN "i686-linux-gnu")
-elseif (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
- set(CMAKE_SYSTEM_PROCESSOR "x86_64")
- set(triple "x86_64-unknown-freebsd12")
-elseif (ILLUMOS)
- set(CMAKE_SYSTEM_PROCESSOR "x86_64")
- set(TOOLCHAIN "x86_64-illumos")
-else()
- message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only armel, arm, arm64, s390x and x86 are supported!")
-endif()
-
-if(DEFINED ENV{TOOLCHAIN})
- set(TOOLCHAIN $ENV{TOOLCHAIN})
-endif()
-
-# Specify include paths
-if(DEFINED TIZEN_TOOLCHAIN)
- if(TARGET_ARCH_NAME STREQUAL "armel")
- include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}/include/c++/)
- include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}/include/c++/armv7l-tizen-linux-gnueabi)
- endif()
- if(TARGET_ARCH_NAME STREQUAL "arm64")
- include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}/include/c++/)
- include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}/include/c++/aarch64-tizen-linux-gnu)
- endif()
-endif()
-
-if("$ENV{__DistroRid}" MATCHES "android.*")
- if(TARGET_ARCH_NAME STREQUAL "arm")
- set(ANDROID_ABI armeabi-v7a)
- elseif(TARGET_ARCH_NAME STREQUAL "arm64")
- set(ANDROID_ABI arm64-v8a)
- endif()
-
- # extract platform number required by the NDK's toolchain
- string(REGEX REPLACE ".*\\.([0-9]+)-.*" "\\1" ANDROID_PLATFORM "$ENV{__DistroRid}")
-
- set(ANDROID_TOOLCHAIN clang)
- set(FEATURE_EVENT_TRACE 0) # disable event trace as there is no lttng-ust package in termux repository
- set(CMAKE_SYSTEM_LIBRARY_PATH "${CROSS_ROOTFS}/usr/lib")
- set(CMAKE_SYSTEM_INCLUDE_PATH "${CROSS_ROOTFS}/usr/include")
-
- # include official NDK toolchain script
- include(${CROSS_ROOTFS}/../build/cmake/android.toolchain.cmake)
-elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
- # we cross-compile by instructing clang
- set(CMAKE_C_COMPILER_TARGET ${triple})
- set(CMAKE_CXX_COMPILER_TARGET ${triple})
- set(CMAKE_ASM_COMPILER_TARGET ${triple})
- set(CMAKE_SYSROOT "${CROSS_ROOTFS}")
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=lld")
- set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fuse-ld=lld")
- set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fuse-ld=lld")
-elseif(ILLUMOS)
- set(CMAKE_SYSROOT "${CROSS_ROOTFS}")
-
- include_directories(SYSTEM ${CROSS_ROOTFS}/include)
-
- set(TOOLSET_PREFIX ${TOOLCHAIN}-)
- function(locate_toolchain_exec exec var)
- string(TOUPPER ${exec} EXEC_UPPERCASE)
- if(NOT "$ENV{CLR_${EXEC_UPPERCASE}}" STREQUAL "")
- set(${var} "$ENV{CLR_${EXEC_UPPERCASE}}" PARENT_SCOPE)
- return()
- endif()
-
- find_program(EXEC_LOCATION_${exec}
- NAMES
- "${TOOLSET_PREFIX}${exec}${CLR_CMAKE_COMPILER_FILE_NAME_VERSION}"
- "${TOOLSET_PREFIX}${exec}")
-
- if (EXEC_LOCATION_${exec} STREQUAL "EXEC_LOCATION_${exec}-NOTFOUND")
- message(FATAL_ERROR "Unable to find toolchain executable. Name: ${exec}, Prefix: ${TOOLSET_PREFIX}.")
- endif()
- set(${var} ${EXEC_LOCATION_${exec}} PARENT_SCOPE)
- endfunction()
-
- set(CMAKE_SYSTEM_PREFIX_PATH "${CROSS_ROOTFS}")
-
- locate_toolchain_exec(gcc CMAKE_C_COMPILER)
- locate_toolchain_exec(g++ CMAKE_CXX_COMPILER)
-
- set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp")
- set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp")
-else()
- set(CMAKE_SYSROOT "${CROSS_ROOTFS}")
-
- set(CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN "${CROSS_ROOTFS}/usr")
- set(CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN "${CROSS_ROOTFS}/usr")
- set(CMAKE_ASM_COMPILER_EXTERNAL_TOOLCHAIN "${CROSS_ROOTFS}/usr")
-endif()
-
-# Specify link flags
-
-function(add_toolchain_linker_flag Flag)
- set(Config "${ARGV1}")
- set(CONFIG_SUFFIX "")
- if (NOT Config STREQUAL "")
- set(CONFIG_SUFFIX "_${Config}")
- endif()
- set("CMAKE_EXE_LINKER_FLAGS${CONFIG_SUFFIX}_INIT" "${CMAKE_EXE_LINKER_FLAGS${CONFIG_SUFFIX}_INIT} ${Flag}" PARENT_SCOPE)
- set("CMAKE_SHARED_LINKER_FLAGS${CONFIG_SUFFIX}_INIT" "${CMAKE_SHARED_LINKER_FLAGS${CONFIG_SUFFIX}_INIT} ${Flag}" PARENT_SCOPE)
-endfunction()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
- add_toolchain_linker_flag("-Wl,--rpath-link=${CROSS_ROOTFS}/lib/${TOOLCHAIN}")
- add_toolchain_linker_flag("-Wl,--rpath-link=${CROSS_ROOTFS}/usr/lib/${TOOLCHAIN}")
-endif()
-
-if(TARGET_ARCH_NAME STREQUAL "armel")
- if(DEFINED TIZEN_TOOLCHAIN) # For Tizen only
- add_toolchain_linker_flag("-B${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}")
- add_toolchain_linker_flag("-L${CROSS_ROOTFS}/lib")
- add_toolchain_linker_flag("-L${CROSS_ROOTFS}/usr/lib")
- add_toolchain_linker_flag("-L${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}")
- endif()
-elseif(TARGET_ARCH_NAME STREQUAL "arm64")
- if(DEFINED TIZEN_TOOLCHAIN) # For Tizen only
- add_toolchain_linker_flag("-B${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}")
- add_toolchain_linker_flag("-L${CROSS_ROOTFS}/lib64")
- add_toolchain_linker_flag("-L${CROSS_ROOTFS}/usr/lib64")
- add_toolchain_linker_flag("-L${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}")
-
- add_toolchain_linker_flag("-Wl,--rpath-link=${CROSS_ROOTFS}/lib64")
- add_toolchain_linker_flag("-Wl,--rpath-link=${CROSS_ROOTFS}/usr/lib64")
- add_toolchain_linker_flag("-Wl,--rpath-link=${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}")
- endif()
-elseif(TARGET_ARCH_NAME STREQUAL "x86")
- add_toolchain_linker_flag(-m32)
-elseif(ILLUMOS)
- add_toolchain_linker_flag("-L${CROSS_ROOTFS}/lib/amd64")
- add_toolchain_linker_flag("-L${CROSS_ROOTFS}/usr/amd64/lib")
-endif()
-
-# Specify compile options
-
-if((TARGET_ARCH_NAME MATCHES "^(arm|armel|arm64|s390x)$" AND NOT "$ENV{__DistroRid}" MATCHES "android.*") OR ILLUMOS)
- set(CMAKE_C_COMPILER_TARGET ${TOOLCHAIN})
- set(CMAKE_CXX_COMPILER_TARGET ${TOOLCHAIN})
- set(CMAKE_ASM_COMPILER_TARGET ${TOOLCHAIN})
-endif()
-
-if(TARGET_ARCH_NAME MATCHES "^(arm|armel)$")
- add_compile_options(-mthumb)
- if (NOT DEFINED CLR_ARM_FPU_TYPE)
- set (CLR_ARM_FPU_TYPE vfpv3)
- endif (NOT DEFINED CLR_ARM_FPU_TYPE)
-
- add_compile_options (-mfpu=${CLR_ARM_FPU_TYPE})
- if (NOT DEFINED CLR_ARM_FPU_CAPABILITY)
- set (CLR_ARM_FPU_CAPABILITY 0x7)
- endif (NOT DEFINED CLR_ARM_FPU_CAPABILITY)
-
- add_definitions (-DCLR_ARM_FPU_CAPABILITY=${CLR_ARM_FPU_CAPABILITY})
-
- if(TARGET_ARCH_NAME STREQUAL "armel")
- add_compile_options(-mfloat-abi=softfp)
- endif()
-elseif(TARGET_ARCH_NAME STREQUAL "x86")
- add_compile_options(-m32)
- add_compile_options(-Wno-error=unused-command-line-argument)
-endif()
-
-if(DEFINED TIZEN_TOOLCHAIN)
- if(TARGET_ARCH_NAME MATCHES "^(armel|arm64)$")
- add_compile_options(-Wno-deprecated-declarations) # compile-time option
- add_compile_options(-D__extern_always_inline=inline) # compile-time option
- endif()
-endif()
-
-# Set LLDB include and library paths for builds that need lldb.
-if(TARGET_ARCH_NAME MATCHES "^(arm|armel|x86)$")
- if(TARGET_ARCH_NAME STREQUAL "x86")
- set(LLVM_CROSS_DIR "$ENV{LLVM_CROSS_HOME}")
- else() # arm/armel case
- set(LLVM_CROSS_DIR "$ENV{LLVM_ARM_HOME}")
- endif()
- if(LLVM_CROSS_DIR)
- set(WITH_LLDB_LIBS "${LLVM_CROSS_DIR}/lib/" CACHE STRING "")
- set(WITH_LLDB_INCLUDES "${LLVM_CROSS_DIR}/include" CACHE STRING "")
- set(LLDB_H "${WITH_LLDB_INCLUDES}" CACHE STRING "")
- set(LLDB "${LLVM_CROSS_DIR}/lib/liblldb.so" CACHE STRING "")
- else()
- if(TARGET_ARCH_NAME STREQUAL "x86")
- set(WITH_LLDB_LIBS "${CROSS_ROOTFS}/usr/lib/i386-linux-gnu" CACHE STRING "")
- set(CHECK_LLVM_DIR "${CROSS_ROOTFS}/usr/lib/llvm-3.8/include")
- if(EXISTS "${CHECK_LLVM_DIR}" AND IS_DIRECTORY "${CHECK_LLVM_DIR}")
- set(WITH_LLDB_INCLUDES "${CHECK_LLVM_DIR}")
- else()
- set(WITH_LLDB_INCLUDES "${CROSS_ROOTFS}/usr/lib/llvm-3.6/include")
- endif()
- else() # arm/armel case
- set(WITH_LLDB_LIBS "${CROSS_ROOTFS}/usr/lib/${TOOLCHAIN}" CACHE STRING "")
- set(WITH_LLDB_INCLUDES "${CROSS_ROOTFS}/usr/lib/llvm-3.6/include" CACHE STRING "")
- endif()
- endif()
-endif()
-
-set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
-set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
-set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
-set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
diff --git a/eng/common/darc-init.ps1 b/eng/common/darc-init.ps1
deleted file mode 100644
index 435e764..0000000
--- a/eng/common/darc-init.ps1
+++ /dev/null
@@ -1,47 +0,0 @@
-param (
- $darcVersion = $null,
- $versionEndpoint = 'https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16',
- $verbosity = 'minimal',
- $toolpath = $null
-)
-
-. $PSScriptRoot\tools.ps1
-
-function InstallDarcCli ($darcVersion, $toolpath) {
- $darcCliPackageName = 'microsoft.dotnet.darc'
-
- $dotnetRoot = InitializeDotNetCli -install:$true
- $dotnet = "$dotnetRoot\dotnet.exe"
- $toolList = & "$dotnet" tool list -g
-
- if ($toolList -like "*$darcCliPackageName*") {
- & "$dotnet" tool uninstall $darcCliPackageName -g
- }
-
- # If the user didn't explicitly specify the darc version,
- # query the Maestro API for the correct version of darc to install.
- if (-not $darcVersion) {
- $darcVersion = $(Invoke-WebRequest -Uri $versionEndpoint -UseBasicParsing).Content
- }
-
- $arcadeServicesSource = 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json'
-
- Write-Host "Installing Darc CLI version $darcVersion..."
- Write-Host 'You may need to restart your command window if this is the first dotnet tool you have installed.'
- if (-not $toolpath) {
- Write-Host "'$dotnet' tool install $darcCliPackageName --version $darcVersion --add-source '$arcadeServicesSource' -v $verbosity -g"
- & "$dotnet" tool install $darcCliPackageName --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity -g
- }else {
- Write-Host "'$dotnet' tool install $darcCliPackageName --version $darcVersion --add-source '$arcadeServicesSource' -v $verbosity --tool-path '$toolpath'"
- & "$dotnet" tool install $darcCliPackageName --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity --tool-path "$toolpath"
- }
-}
-
-try {
- InstallDarcCli $darcVersion $toolpath
-}
-catch {
- Write-Host $_.ScriptStackTrace
- Write-PipelineTelemetryError -Category 'Darc' -Message $_
- ExitWithExitCode 1
-}
\ No newline at end of file
diff --git a/eng/common/darc-init.sh b/eng/common/darc-init.sh
deleted file mode 100644
index 39abdbe..0000000
--- a/eng/common/darc-init.sh
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/usr/bin/env bash
-
-source="${BASH_SOURCE[0]}"
-darcVersion=''
-versionEndpoint='https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16'
-verbosity='minimal'
-
-while [[ $# > 0 ]]; do
- opt="$(echo "$1" | tr "[:upper:]" "[:lower:]")"
- case "$opt" in
- --darcversion)
- darcVersion=$2
- shift
- ;;
- --versionendpoint)
- versionEndpoint=$2
- shift
- ;;
- --verbosity)
- verbosity=$2
- shift
- ;;
- --toolpath)
- toolpath=$2
- shift
- ;;
- *)
- echo "Invalid argument: $1"
- usage
- exit 1
- ;;
- esac
-
- shift
-done
-
-# 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 )"
-
-. "$scriptroot/tools.sh"
-
-if [ -z "$darcVersion" ]; then
- darcVersion=$(curl -X GET "$versionEndpoint" -H "accept: text/plain")
-fi
-
-function InstallDarcCli {
- local darc_cli_package_name="microsoft.dotnet.darc"
-
- InitializeDotNetCli
- local dotnet_root=$_InitializeDotNetCli
-
- if [ -z "$toolpath" ]; then
- local tool_list=$($dotnet_root/dotnet tool list -g)
- if [[ $tool_list = *$darc_cli_package_name* ]]; then
- echo $($dotnet_root/dotnet tool uninstall $darc_cli_package_name -g)
- fi
- else
- local tool_list=$($dotnet_root/dotnet tool list --tool-path "$toolpath")
- if [[ $tool_list = *$darc_cli_package_name* ]]; then
- echo $($dotnet_root/dotnet tool uninstall $darc_cli_package_name --tool-path "$toolpath")
- fi
- fi
-
- local arcadeServicesSource="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json"
-
- echo "Installing Darc CLI version $darcVersion..."
- echo "You may need to restart your command shell if this is the first dotnet tool you have installed."
- if [ -z "$toolpath" ]; then
- echo $($dotnet_root/dotnet tool install $darc_cli_package_name --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity -g)
- else
- echo $($dotnet_root/dotnet tool install $darc_cli_package_name --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity --tool-path "$toolpath")
- fi
-}
-
-InstallDarcCli
diff --git a/eng/common/dotnet-install.cmd b/eng/common/dotnet-install.cmd
deleted file mode 100644
index b1c2642..0000000
--- a/eng/common/dotnet-install.cmd
+++ /dev/null
@@ -1,2 +0,0 @@
-@echo off
-powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0dotnet-install.ps1""" %*"
\ No newline at end of file
diff --git a/eng/common/dotnet-install.ps1 b/eng/common/dotnet-install.ps1
deleted file mode 100644
index 811f0f7..0000000
--- a/eng/common/dotnet-install.ps1
+++ /dev/null
@@ -1,28 +0,0 @@
-[CmdletBinding(PositionalBinding=$false)]
-Param(
- [string] $verbosity = 'minimal',
- [string] $architecture = '',
- [string] $version = 'Latest',
- [string] $runtime = 'dotnet',
- [string] $RuntimeSourceFeed = '',
- [string] $RuntimeSourceFeedKey = ''
-)
-
-. $PSScriptRoot\tools.ps1
-
-$dotnetRoot = Join-Path $RepoRoot '.dotnet'
-
-$installdir = $dotnetRoot
-try {
- if ($architecture -and $architecture.Trim() -eq 'x86') {
- $installdir = Join-Path $installdir 'x86'
- }
- InstallDotNet $installdir $version $architecture $runtime $true -RuntimeSourceFeed $RuntimeSourceFeed -RuntimeSourceFeedKey $RuntimeSourceFeedKey
-}
-catch {
- Write-Host $_.ScriptStackTrace
- Write-PipelineTelemetryError -Category 'InitializeToolset' -Message $_
- ExitWithExitCode 1
-}
-
-ExitWithExitCode 0
diff --git a/eng/common/dotnet-install.sh b/eng/common/dotnet-install.sh
deleted file mode 100644
index fdfeea6..0000000
--- a/eng/common/dotnet-install.sh
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/usr/bin/env bash
-
-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 )"
-
-. "$scriptroot/tools.sh"
-
-version='Latest'
-architecture=''
-runtime='dotnet'
-runtimeSourceFeed=''
-runtimeSourceFeedKey=''
-while [[ $# > 0 ]]; do
- opt="$(echo "$1" | tr "[:upper:]" "[:lower:]")"
- case "$opt" in
- -version|-v)
- shift
- version="$1"
- ;;
- -architecture|-a)
- shift
- architecture="$1"
- ;;
- -runtime|-r)
- shift
- runtime="$1"
- ;;
- -runtimesourcefeed)
- shift
- runtimeSourceFeed="$1"
- ;;
- -runtimesourcefeedkey)
- shift
- runtimeSourceFeedKey="$1"
- ;;
- *)
- Write-PipelineTelemetryError -Category 'Build' -Message "Invalid argument: $1"
- exit 1
- ;;
- esac
- shift
-done
-
-# Use uname to determine what the CPU is, see https://en.wikipedia.org/wiki/Uname#Examples
-cpuname=$(uname -m)
-case $cpuname in
- aarch64)
- buildarch=arm64
- ;;
- amd64|x86_64)
- buildarch=x64
- ;;
- armv*l)
- buildarch=arm
- ;;
- i686)
- buildarch=x86
- ;;
- *)
- echo "Unknown CPU $cpuname detected, treating it as x64"
- buildarch=x64
- ;;
-esac
-
-dotnetRoot="${repo_root}.dotnet"
-if [[ $architecture != "" ]] && [[ $architecture != $buildarch ]]; then
- dotnetRoot="$dotnetRoot/$architecture"
-fi
-
-InstallDotNet $dotnetRoot $version "$architecture" $runtime true $runtimeSourceFeed $runtimeSourceFeedKey || {
- local exit_code=$?
- Write-PipelineTelemetryError -Category 'InitializeToolset' -Message "dotnet-install.sh failed (exit code '$exit_code')." >&2
- ExitWithExitCode $exit_code
-}
-
-ExitWithExitCode 0
diff --git a/eng/common/enable-cross-org-publishing.ps1 b/eng/common/enable-cross-org-publishing.ps1
deleted file mode 100644
index da09da4..0000000
--- a/eng/common/enable-cross-org-publishing.ps1
+++ /dev/null
@@ -1,13 +0,0 @@
-param(
- [string] $token
-)
-
-
-. $PSScriptRoot\pipeline-logging-functions.ps1
-
-# Write-PipelineSetVariable will no-op if a variable named $ci is not defined
-# Since this script is only ever called in AzDO builds, just universally set it
-$ci = $true
-
-Write-PipelineSetVariable -Name 'VSS_NUGET_ACCESSTOKEN' -Value $token -IsMultiJobVariable $false
-Write-PipelineSetVariable -Name 'VSS_NUGET_URI_PREFIXES' -Value 'https://dnceng.pkgs.visualstudio.com/;https://pkgs.dev.azure.com/dnceng/;https://devdiv.pkgs.visualstudio.com/;https://pkgs.dev.azure.com/devdiv/' -IsMultiJobVariable $false
diff --git a/eng/common/generate-graph-files.ps1 b/eng/common/generate-graph-files.ps1
deleted file mode 100644
index 0728b1a..0000000
--- a/eng/common/generate-graph-files.ps1
+++ /dev/null
@@ -1,86 +0,0 @@
-Param(
- [Parameter(Mandatory=$true)][string] $barToken, # Token generated at https://maestro-prod.westus2.cloudapp.azure.com/Account/Tokens
- [Parameter(Mandatory=$true)][string] $gitHubPat, # GitHub personal access token from https://github.com/settings/tokens (no auth scopes needed)
- [Parameter(Mandatory=$true)][string] $azdoPat, # Azure Dev Ops tokens from https://dev.azure.com/dnceng/_details/security/tokens (code read scope needed)
- [Parameter(Mandatory=$true)][string] $outputFolder, # Where the graphviz.txt file will be created
- [string] $darcVersion, # darc's version
- [string] $graphvizVersion = '2.38', # GraphViz version
- [switch] $includeToolset # Whether the graph should include toolset dependencies or not. i.e. arcade, optimization. For more about
- # toolset dependencies see https://github.com/dotnet/arcade/blob/master/Documentation/Darc.md#toolset-vs-product-dependencies
-)
-
-function CheckExitCode ([string]$stage)
-{
- $exitCode = $LASTEXITCODE
- if ($exitCode -ne 0) {
- Write-PipelineTelemetryError -Category 'Arcade' -Message "Something failed in stage: '$stage'. Check for errors above. Exiting now..."
- ExitWithExitCode $exitCode
- }
-}
-
-try {
- $ErrorActionPreference = 'Stop'
- . $PSScriptRoot\tools.ps1
-
- Import-Module -Name (Join-Path $PSScriptRoot 'native\CommonLibrary.psm1')
-
- Push-Location $PSScriptRoot
-
- Write-Host 'Installing darc...'
- . .\darc-init.ps1 -darcVersion $darcVersion
- CheckExitCode 'Running darc-init'
-
- $engCommonBaseDir = Join-Path $PSScriptRoot 'native\'
- $graphvizInstallDir = CommonLibrary\Get-NativeInstallDirectory
- $nativeToolBaseUri = 'https://netcorenativeassets.blob.core.windows.net/resource-packages/external'
- $installBin = Join-Path $graphvizInstallDir 'bin'
-
- Write-Host 'Installing dot...'
- .\native\install-tool.ps1 -ToolName graphviz -InstallPath $installBin -BaseUri $nativeToolBaseUri -CommonLibraryDirectory $engCommonBaseDir -Version $graphvizVersion -Verbose
-
- $darcExe = "$env:USERPROFILE\.dotnet\tools"
- $darcExe = Resolve-Path "$darcExe\darc.exe"
-
- Create-Directory $outputFolder
-
- # Generate 3 graph descriptions:
- # 1. Flat with coherency information
- # 2. Graphviz (dot) file
- # 3. Standard dependency graph
- $graphVizFilePath = "$outputFolder\graphviz.txt"
- $graphVizImageFilePath = "$outputFolder\graph.png"
- $normalGraphFilePath = "$outputFolder\graph-full.txt"
- $flatGraphFilePath = "$outputFolder\graph-flat.txt"
- $baseOptions = @( '--github-pat', "$gitHubPat", '--azdev-pat', "$azdoPat", '--password', "$barToken" )
-
- if ($includeToolset) {
- Write-Host 'Toolsets will be included in the graph...'
- $baseOptions += @( '--include-toolset' )
- }
-
- Write-Host 'Generating standard dependency graph...'
- & "$darcExe" get-dependency-graph @baseOptions --output-file $normalGraphFilePath
- CheckExitCode 'Generating normal dependency graph'
-
- Write-Host 'Generating flat dependency graph and graphviz file...'
- & "$darcExe" get-dependency-graph @baseOptions --flat --coherency --graphviz $graphVizFilePath --output-file $flatGraphFilePath
- CheckExitCode 'Generating flat and graphviz dependency graph'
-
- Write-Host "Generating graph image $graphVizFilePath"
- $dotFilePath = Join-Path $installBin "graphviz\$graphvizVersion\release\bin\dot.exe"
- & "$dotFilePath" -Tpng -o"$graphVizImageFilePath" "$graphVizFilePath"
- CheckExitCode 'Generating graphviz image'
-
- Write-Host "'$graphVizFilePath', '$flatGraphFilePath', '$normalGraphFilePath' and '$graphVizImageFilePath' created!"
-}
-catch {
- if (!$includeToolset) {
- Write-Host 'This might be a toolset repo which includes only toolset dependencies. ' -NoNewline -ForegroundColor Yellow
- Write-Host 'Since -includeToolset is not set there is no graph to create. Include -includeToolset and try again...' -ForegroundColor Yellow
- }
- Write-Host $_.ScriptStackTrace
- Write-PipelineTelemetryError -Category 'Arcade' -Message $_
- ExitWithExitCode 1
-} finally {
- Pop-Location
-}
\ No newline at end of file
diff --git a/eng/common/generate-locproject.ps1 b/eng/common/generate-locproject.ps1
deleted file mode 100644
index 25e97ac..0000000
--- a/eng/common/generate-locproject.ps1
+++ /dev/null
@@ -1,117 +0,0 @@
-Param(
- [Parameter(Mandatory=$true)][string] $SourcesDirectory, # Directory where source files live; if using a Localize directory it should live in here
- [string] $LanguageSet = 'VS_Main_Languages', # Language set to be used in the LocProject.json
- [switch] $UseCheckedInLocProjectJson, # When set, generates a LocProject.json and compares it to one that already exists in the repo; otherwise just generates one
- [switch] $CreateNeutralXlfs # Creates neutral xlf files. Only set to false when running locally
-)
-
-# Generates LocProject.json files for the OneLocBuild task. OneLocBuildTask is described here:
-# https://ceapex.visualstudio.com/CEINTL/_wiki/wikis/CEINTL.wiki/107/Localization-with-OneLocBuild-Task
-
-Set-StrictMode -Version 2.0
-$ErrorActionPreference = "Stop"
-. $PSScriptRoot\tools.ps1
-
-Import-Module -Name (Join-Path $PSScriptRoot 'native\CommonLibrary.psm1')
-
-$exclusionsFilePath = "$SourcesDirectory\eng\Localize\LocExclusions.json"
-$exclusions = @{ Exclusions = @() }
-if (Test-Path -Path $exclusionsFilePath)
-{
- $exclusions = Get-Content "$exclusionsFilePath" | ConvertFrom-Json
-}
-
-Push-Location "$SourcesDirectory" # push location for Resolve-Path -Relative to work
-
-# Template files
-$jsonFiles = @()
-$jsonTemplateFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\.template\.config\\localize\\.+\.en\.json" } # .NET templating pattern
-$jsonTemplateFiles | ForEach-Object {
- $null = $_.Name -Match "(.+)\.[\w-]+\.json" # matches '[filename].[langcode].json
-
- $destinationFile = "$($_.Directory.FullName)\$($Matches.1).json"
- $jsonFiles += Copy-Item "$($_.FullName)" -Destination $destinationFile -PassThru
-}
-
-$jsonWinformsTemplateFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "en\\strings\.json" } # current winforms pattern
-
-$xlfFiles = @()
-
-$allXlfFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory\*\*.xlf"
-$langXlfFiles = @()
-if ($allXlfFiles) {
- $null = $allXlfFiles[0].FullName -Match "\.([\w-]+)\.xlf" # matches '[langcode].xlf'
- $firstLangCode = $Matches.1
- $langXlfFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory\*\*.$firstLangCode.xlf"
-}
-$langXlfFiles | ForEach-Object {
- $null = $_.Name -Match "(.+)\.[\w-]+\.xlf" # matches '[filename].[langcode].xlf
-
- $destinationFile = "$($_.Directory.FullName)\$($Matches.1).xlf"
- $xlfFiles += Copy-Item "$($_.FullName)" -Destination $destinationFile -PassThru
-}
-
-$locFiles = $jsonFiles + $jsonWinformsTemplateFiles + $xlfFiles
-
-$locJson = @{
- Projects = @(
- @{
- LanguageSet = $LanguageSet
- LocItems = @(
- $locFiles | ForEach-Object {
- $outputPath = "$(($_.DirectoryName | Resolve-Path -Relative) + "\")"
- $continue = $true
- foreach ($exclusion in $exclusions.Exclusions) {
- if ($outputPath.Contains($exclusion))
- {
- $continue = $false
- }
- }
- $sourceFile = ($_.FullName | Resolve-Path -Relative)
- if (!$CreateNeutralXlfs -and $_.Extension -eq '.xlf') {
- Remove-Item -Path $sourceFile
- }
- if ($continue)
- {
- if ($_.Directory.Name -eq 'en' -and $_.Extension -eq '.json') {
- return @{
- SourceFile = $sourceFile
- CopyOption = "LangIDOnPath"
- OutputPath = "$($_.Directory.Parent.FullName | Resolve-Path -Relative)\"
- }
- }
- else {
- return @{
- SourceFile = $sourceFile
- CopyOption = "LangIDOnName"
- OutputPath = $outputPath
- }
- }
- }
- }
- )
- }
- )
-}
-
-$json = ConvertTo-Json $locJson -Depth 5
-Write-Host "LocProject.json generated:`n`n$json`n`n"
-Pop-Location
-
-if (!$UseCheckedInLocProjectJson) {
- New-Item "$SourcesDirectory\eng\Localize\LocProject.json" -Force # Need this to make sure the Localize directory is created
- Set-Content "$SourcesDirectory\eng\Localize\LocProject.json" $json
-}
-else {
- New-Item "$SourcesDirectory\eng\Localize\LocProject-generated.json" -Force # Need this to make sure the Localize directory is created
- Set-Content "$SourcesDirectory\eng\Localize\LocProject-generated.json" $json
-
- if ((Get-FileHash "$SourcesDirectory\eng\Localize\LocProject-generated.json").Hash -ne (Get-FileHash "$SourcesDirectory\eng\Localize\LocProject.json").Hash) {
- Write-PipelineTelemetryError -Category "OneLocBuild" -Message "Existing LocProject.json differs from generated LocProject.json. Download LocProject-generated.json and compare them."
-
- exit 1
- }
- else {
- Write-Host "Generated LocProject.json and current LocProject.json are identical."
- }
-}
\ No newline at end of file
diff --git a/eng/common/helixpublish.proj b/eng/common/helixpublish.proj
deleted file mode 100644
index d7f1858..0000000
--- a/eng/common/helixpublish.proj
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
- msbuild
-
-
-
-
- %(Identity)
-
-
-
-
-
- $(WorkItemDirectory)
- $(WorkItemCommand)
- $(WorkItemTimeout)
-
-
-
-
-
-
-
-
-
diff --git a/eng/common/init-tools-native.cmd b/eng/common/init-tools-native.cmd
deleted file mode 100644
index 438cd54..0000000
--- a/eng/common/init-tools-native.cmd
+++ /dev/null
@@ -1,3 +0,0 @@
-@echo off
-powershell -NoProfile -NoLogo -ExecutionPolicy ByPass -command "& """%~dp0init-tools-native.ps1""" %*"
-exit /b %ErrorLevel%
\ No newline at end of file
diff --git a/eng/common/init-tools-native.ps1 b/eng/common/init-tools-native.ps1
deleted file mode 100644
index db830c0..0000000
--- a/eng/common/init-tools-native.ps1
+++ /dev/null
@@ -1,152 +0,0 @@
-<#
-.SYNOPSIS
-Entry point script for installing native tools
-
-.DESCRIPTION
-Reads $RepoRoot\global.json file to determine native assets to install
-and executes installers for those tools
-
-.PARAMETER BaseUri
-Base file directory or Url from which to acquire tool archives
-
-.PARAMETER InstallDirectory
-Directory to install native toolset. This is a command-line override for the default
-Install directory precedence order:
-- InstallDirectory command-line override
-- NETCOREENG_INSTALL_DIRECTORY environment variable
-- (default) %USERPROFILE%/.netcoreeng/native
-
-.PARAMETER Clean
-Switch specifying to not install anything, but cleanup native asset folders
-
-.PARAMETER Force
-Clean and then install tools
-
-.PARAMETER DownloadRetries
-Total number of retry attempts
-
-.PARAMETER RetryWaitTimeInSeconds
-Wait time between retry attempts in seconds
-
-.PARAMETER GlobalJsonFile
-File path to global.json file
-
-.NOTES
-#>
-[CmdletBinding(PositionalBinding=$false)]
-Param (
- [string] $BaseUri = 'https://netcorenativeassets.blob.core.windows.net/resource-packages/external',
- [string] $InstallDirectory,
- [switch] $Clean = $False,
- [switch] $Force = $False,
- [int] $DownloadRetries = 5,
- [int] $RetryWaitTimeInSeconds = 30,
- [string] $GlobalJsonFile
-)
-
-if (!$GlobalJsonFile) {
- $GlobalJsonFile = Join-Path (Get-Item $PSScriptRoot).Parent.Parent.FullName 'global.json'
-}
-
-Set-StrictMode -version 2.0
-$ErrorActionPreference='Stop'
-
-. $PSScriptRoot\pipeline-logging-functions.ps1
-Import-Module -Name (Join-Path $PSScriptRoot 'native\CommonLibrary.psm1')
-
-try {
- # Define verbose switch if undefined
- $Verbose = $VerbosePreference -Eq 'Continue'
-
- $EngCommonBaseDir = Join-Path $PSScriptRoot 'native\'
- $NativeBaseDir = $InstallDirectory
- if (!$NativeBaseDir) {
- $NativeBaseDir = CommonLibrary\Get-NativeInstallDirectory
- }
- $Env:CommonLibrary_NativeInstallDir = $NativeBaseDir
- $InstallBin = Join-Path $NativeBaseDir 'bin'
- $InstallerPath = Join-Path $EngCommonBaseDir 'install-tool.ps1'
-
- # Process tools list
- Write-Host "Processing $GlobalJsonFile"
- If (-Not (Test-Path $GlobalJsonFile)) {
- Write-Host "Unable to find '$GlobalJsonFile'"
- exit 0
- }
- $NativeTools = Get-Content($GlobalJsonFile) -Raw |
- ConvertFrom-Json |
- Select-Object -Expand 'native-tools' -ErrorAction SilentlyContinue
- if ($NativeTools) {
- $NativeTools.PSObject.Properties | ForEach-Object {
- $ToolName = $_.Name
- $ToolVersion = $_.Value
- $LocalInstallerArguments = @{ ToolName = "$ToolName" }
- $LocalInstallerArguments += @{ InstallPath = "$InstallBin" }
- $LocalInstallerArguments += @{ BaseUri = "$BaseUri" }
- $LocalInstallerArguments += @{ CommonLibraryDirectory = "$EngCommonBaseDir" }
- $LocalInstallerArguments += @{ Version = "$ToolVersion" }
-
- if ($Verbose) {
- $LocalInstallerArguments += @{ Verbose = $True }
- }
- if (Get-Variable 'Force' -ErrorAction 'SilentlyContinue') {
- if($Force) {
- $LocalInstallerArguments += @{ Force = $True }
- }
- }
- if ($Clean) {
- $LocalInstallerArguments += @{ Clean = $True }
- }
-
- Write-Verbose "Installing $ToolName version $ToolVersion"
- Write-Verbose "Executing '$InstallerPath $($LocalInstallerArguments.Keys.ForEach({"-$_ '$($LocalInstallerArguments.$_)'"}) -join ' ')'"
- & $InstallerPath @LocalInstallerArguments
- if ($LASTEXITCODE -Ne "0") {
- $errMsg = "$ToolName installation failed"
- if ((Get-Variable 'DoNotAbortNativeToolsInstallationOnFailure' -ErrorAction 'SilentlyContinue') -and $DoNotAbortNativeToolsInstallationOnFailure) {
- $showNativeToolsWarning = $true
- if ((Get-Variable 'DoNotDisplayNativeToolsInstallationWarnings' -ErrorAction 'SilentlyContinue') -and $DoNotDisplayNativeToolsInstallationWarnings) {
- $showNativeToolsWarning = $false
- }
- if ($showNativeToolsWarning) {
- Write-Warning $errMsg
- }
- $toolInstallationFailure = $true
- } else {
- # We cannot change this to Write-PipelineTelemetryError because of https://github.com/dotnet/arcade/issues/4482
- Write-Host $errMsg
- exit 1
- }
- }
- }
-
- if ((Get-Variable 'toolInstallationFailure' -ErrorAction 'SilentlyContinue') -and $toolInstallationFailure) {
- # We cannot change this to Write-PipelineTelemetryError because of https://github.com/dotnet/arcade/issues/4482
- Write-Host 'Native tools bootstrap failed'
- exit 1
- }
- }
- else {
- Write-Host 'No native tools defined in global.json'
- exit 0
- }
-
- if ($Clean) {
- exit 0
- }
- if (Test-Path $InstallBin) {
- Write-Host 'Native tools are available from ' (Convert-Path -Path $InstallBin)
- Write-Host "##vso[task.prependpath]$(Convert-Path -Path $InstallBin)"
- return $InstallBin
- }
- else {
- Write-PipelineTelemetryError -Category 'NativeToolsBootstrap' -Message 'Native tools install directory does not exist, installation failed'
- exit 1
- }
- exit 0
-}
-catch {
- Write-Host $_.ScriptStackTrace
- Write-PipelineTelemetryError -Category 'NativeToolsBootstrap' -Message $_
- ExitWithExitCode 1
-}
diff --git a/eng/common/init-tools-native.sh b/eng/common/init-tools-native.sh
deleted file mode 100644
index 3e6a8d6..0000000
--- a/eng/common/init-tools-native.sh
+++ /dev/null
@@ -1,238 +0,0 @@
-#!/usr/bin/env bash
-
-source="${BASH_SOURCE[0]}"
-scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
-
-base_uri='https://netcorenativeassets.blob.core.windows.net/resource-packages/external'
-install_directory=''
-clean=false
-force=false
-download_retries=5
-retry_wait_time_seconds=30
-global_json_file="$(dirname "$(dirname "${scriptroot}")")/global.json"
-declare -a native_assets
-
-. $scriptroot/pipeline-logging-functions.sh
-. $scriptroot/native/common-library.sh
-
-while (($# > 0)); do
- lowerI="$(echo $1 | tr "[:upper:]" "[:lower:]")"
- case $lowerI in
- --baseuri)
- base_uri=$2
- shift 2
- ;;
- --installdirectory)
- install_directory=$2
- shift 2
- ;;
- --clean)
- clean=true
- shift 1
- ;;
- --force)
- force=true
- shift 1
- ;;
- --donotabortonfailure)
- donotabortonfailure=true
- shift 1
- ;;
- --donotdisplaywarnings)
- donotdisplaywarnings=true
- shift 1
- ;;
- --downloadretries)
- download_retries=$2
- shift 2
- ;;
- --retrywaittimeseconds)
- retry_wait_time_seconds=$2
- shift 2
- ;;
- --help)
- echo "Common settings:"
- echo " --installdirectory Directory to install native toolset."
- echo " This is a command-line override for the default"
- echo " Install directory precedence order:"
- echo " - InstallDirectory command-line override"
- echo " - NETCOREENG_INSTALL_DIRECTORY environment variable"
- echo " - (default) %USERPROFILE%/.netcoreeng/native"
- echo ""
- echo " --clean Switch specifying not to install anything, but cleanup native asset folders"
- echo " --donotabortonfailure Switch specifiying whether to abort native tools installation on failure"
- echo " --donotdisplaywarnings Switch specifiying whether to display warnings during native tools installation on failure"
- echo " --force Clean and then install tools"
- echo " --help Print help and exit"
- echo ""
- echo "Advanced settings:"
- echo " --baseuri Base URI for where to download native tools from"
- echo " --downloadretries Number of times a download should be attempted"
- echo " --retrywaittimeseconds Wait time between download attempts"
- echo ""
- exit 0
- ;;
- esac
-done
-
-function ReadGlobalJsonNativeTools {
- # happy path: we have a proper JSON parsing tool `jq(1)` in PATH!
- if command -v jq &> /dev/null; then
-
- # jq: read each key/value pair under "native-tools" entry and emit:
- # KEY="" VALUE=""
- # followed by a null byte.
- #
- # bash: read line with null byte delimeter and push to array (for later `eval`uation).
-
- while IFS= read -rd '' line; do
- native_assets+=("$line")
- done < <(jq -r '. |
- select(has("native-tools")) |
- ."native-tools" |
- keys[] as $k |
- @sh "KEY=\($k) VALUE=\(.[$k])\u0000"' "$global_json_file")
-
- return
- fi
-
- # Warning: falling back to manually parsing JSON, which is not recommended.
-
- # Following routine matches the output and escaping logic of jq(1)'s @sh formatter used above.
- # It has been tested with several weird strings with escaped characters in entries (key and value)
- # and results were compared with the output of jq(1) in binary representation using xxd(1);
- # just before the assignment to 'native_assets' array (above and below).
-
- # try to capture the section under "native-tools".
- if [[ ! "$(cat "$global_json_file")" =~ \"native-tools\"[[:space:]\:\{]*([^\}]+) ]]; then
- return
- fi
-
- section="${BASH_REMATCH[1]}"
-
- parseStarted=0
- possibleEnd=0
- escaping=0
- escaped=0
- isKey=1
-
- for (( i=0; i<${#section}; i++ )); do
- char="${section:$i:1}"
- if ! ((parseStarted)) && [[ "$char" =~ [[:space:],:] ]]; then continue; fi
-
- if ! ((escaping)) && [[ "$char" == "\\" ]]; then
- escaping=1
- elif ((escaping)) && ! ((escaped)); then
- escaped=1
- fi
-
- if ! ((parseStarted)) && [[ "$char" == "\"" ]]; then
- parseStarted=1
- possibleEnd=0
- elif [[ "$char" == "'" ]]; then
- token="$token'\\\''"
- possibleEnd=0
- elif ((escaping)) || [[ "$char" != "\"" ]]; then
- token="$token$char"
- possibleEnd=1
- fi
-
- if ((possibleEnd)) && ! ((escaping)) && [[ "$char" == "\"" ]]; then
- # Use printf to unescape token to match jq(1)'s @sh formatting rules.
- # do not use 'token="$(printf "$token")"' syntax, as $() eats the trailing linefeed.
- printf -v token "'$token'"
-
- if ((isKey)); then
- KEY="$token"
- isKey=0
- else
- line="KEY=$KEY VALUE=$token"
- native_assets+=("$line")
- isKey=1
- fi
-
- # reset for next token
- parseStarted=0
- token=
- elif ((escaping)) && ((escaped)); then
- escaping=0
- escaped=0
- fi
- done
-}
-
-native_base_dir=$install_directory
-if [[ -z $install_directory ]]; then
- native_base_dir=$(GetNativeInstallDirectory)
-fi
-
-install_bin="${native_base_dir}/bin"
-installed_any=false
-
-ReadGlobalJsonNativeTools
-
-if [[ ${#native_assets[@]} -eq 0 ]]; then
- echo "No native tools defined in global.json"
- exit 0;
-else
- native_installer_dir="$scriptroot/native"
- for index in "${!native_assets[@]}"; do
- eval "${native_assets["$index"]}"
-
- installer_path="$native_installer_dir/install-$KEY.sh"
- installer_command="$installer_path"
- installer_command+=" --baseuri $base_uri"
- installer_command+=" --installpath $install_bin"
- installer_command+=" --version $VALUE"
- echo $installer_command
-
- if [[ $force = true ]]; then
- installer_command+=" --force"
- fi
-
- if [[ $clean = true ]]; then
- installer_command+=" --clean"
- fi
-
- if [[ -a $installer_path ]]; then
- $installer_command
- if [[ $? != 0 ]]; then
- if [[ $donotabortonfailure = true ]]; then
- if [[ $donotdisplaywarnings != true ]]; then
- Write-PipelineTelemetryError -category 'NativeToolsBootstrap' "Execution Failed"
- fi
- else
- Write-PipelineTelemetryError -category 'NativeToolsBootstrap' "Execution Failed"
- exit 1
- fi
- else
- $installed_any = true
- fi
- else
- if [[ $donotabortonfailure == true ]]; then
- if [[ $donotdisplaywarnings != true ]]; then
- Write-PipelineTelemetryError -category 'NativeToolsBootstrap' "Execution Failed: no install script"
- fi
- else
- Write-PipelineTelemetryError -category 'NativeToolsBootstrap' "Execution Failed: no install script"
- exit 1
- fi
- fi
- done
-fi
-
-if [[ $clean = true ]]; then
- exit 0
-fi
-
-if [[ -d $install_bin ]]; then
- echo "Native tools are available from $install_bin"
- echo "##vso[task.prependpath]$install_bin"
-else
- if [[ $installed_any = true ]]; then
- Write-PipelineTelemetryError -category 'NativeToolsBootstrap' "Native tools install directory does not exist, installation failed"
- exit 1
- fi
-fi
-
-exit 0
diff --git a/eng/common/internal-feed-operations.ps1 b/eng/common/internal-feed-operations.ps1
deleted file mode 100644
index 92b7734..0000000
--- a/eng/common/internal-feed-operations.ps1
+++ /dev/null
@@ -1,132 +0,0 @@
-param(
- [Parameter(Mandatory=$true)][string] $Operation,
- [string] $AuthToken,
- [string] $CommitSha,
- [string] $RepoName,
- [switch] $IsFeedPrivate
-)
-
-$ErrorActionPreference = 'Stop'
-Set-StrictMode -Version 2.0
-. $PSScriptRoot\tools.ps1
-
-# Sets VSS_NUGET_EXTERNAL_FEED_ENDPOINTS based on the "darc-int-*" feeds defined in NuGet.config. This is needed
-# in build agents by CredProvider to authenticate the restore requests to internal feeds as specified in
-# https://github.com/microsoft/artifacts-credprovider/blob/0f53327cd12fd893d8627d7b08a2171bf5852a41/README.md#environment-variables. This should ONLY be called from identified
-# internal builds
-function SetupCredProvider {
- param(
- [string] $AuthToken
- )
-
- # Install the Cred Provider NuGet plugin
- Write-Host 'Setting up Cred Provider NuGet plugin in the agent...'
- Write-Host "Getting 'installcredprovider.ps1' from 'https://github.com/microsoft/artifacts-credprovider'..."
-
- $url = 'https://raw.githubusercontent.com/microsoft/artifacts-credprovider/master/helpers/installcredprovider.ps1'
-
- Write-Host "Writing the contents of 'installcredprovider.ps1' locally..."
- Invoke-WebRequest $url -OutFile installcredprovider.ps1
-
- Write-Host 'Installing plugin...'
- .\installcredprovider.ps1 -Force
-
- Write-Host "Deleting local copy of 'installcredprovider.ps1'..."
- Remove-Item .\installcredprovider.ps1
-
- if (-Not("$env:USERPROFILE\.nuget\plugins\netcore")) {
- Write-PipelineTelemetryError -Category 'Arcade' -Message 'CredProvider plugin was not installed correctly!'
- ExitWithExitCode 1
- }
- else {
- Write-Host 'CredProvider plugin was installed correctly!'
- }
-
- # Then, we set the 'VSS_NUGET_EXTERNAL_FEED_ENDPOINTS' environment variable to restore from the stable
- # feeds successfully
-
- $nugetConfigPath = Join-Path $RepoRoot "NuGet.config"
-
- if (-Not (Test-Path -Path $nugetConfigPath)) {
- Write-PipelineTelemetryError -Category 'Build' -Message 'NuGet.config file not found in repo root!'
- ExitWithExitCode 1
- }
-
- $endpoints = New-Object System.Collections.ArrayList
- $nugetConfigPackageSources = Select-Xml -Path $nugetConfigPath -XPath "//packageSources/add[contains(@key, 'darc-int-')]/@value" | foreach{$_.Node.Value}
-
- if (($nugetConfigPackageSources | Measure-Object).Count -gt 0 ) {
- foreach ($stableRestoreResource in $nugetConfigPackageSources) {
- $trimmedResource = ([string]$stableRestoreResource).Trim()
- [void]$endpoints.Add(@{endpoint="$trimmedResource"; password="$AuthToken"})
- }
- }
-
- if (($endpoints | Measure-Object).Count -gt 0) {
- $endpointCredentials = @{endpointCredentials=$endpoints} | ConvertTo-Json -Compress
-
- # Create the environment variables the AzDo way
- Write-LoggingCommand -Area 'task' -Event 'setvariable' -Data $endpointCredentials -Properties @{
- 'variable' = 'VSS_NUGET_EXTERNAL_FEED_ENDPOINTS'
- 'issecret' = 'false'
- }
-
- # We don't want sessions cached since we will be updating the endpoints quite frequently
- Write-LoggingCommand -Area 'task' -Event 'setvariable' -Data 'False' -Properties @{
- 'variable' = 'NUGET_CREDENTIALPROVIDER_SESSIONTOKENCACHE_ENABLED'
- 'issecret' = 'false'
- }
- }
- else
- {
- Write-Host 'No internal endpoints found in NuGet.config'
- }
-}
-
-#Workaround for https://github.com/microsoft/msbuild/issues/4430
-function InstallDotNetSdkAndRestoreArcade {
- $dotnetTempDir = Join-Path $RepoRoot "dotnet"
- $dotnetSdkVersion="2.1.507" # After experimentation we know this version works when restoring the SDK (compared to 3.0.*)
- $dotnet = "$dotnetTempDir\dotnet.exe"
- $restoreProjPath = "$PSScriptRoot\restore.proj"
-
- Write-Host "Installing dotnet SDK version $dotnetSdkVersion to restore Arcade SDK..."
- InstallDotNetSdk "$dotnetTempDir" "$dotnetSdkVersion"
-
- '' | Out-File "$restoreProjPath"
-
- & $dotnet restore $restoreProjPath
-
- Write-Host 'Arcade SDK restored!'
-
- if (Test-Path -Path $restoreProjPath) {
- Remove-Item $restoreProjPath
- }
-
- if (Test-Path -Path $dotnetTempDir) {
- Remove-Item $dotnetTempDir -Recurse
- }
-}
-
-try {
- Push-Location $PSScriptRoot
-
- if ($Operation -like 'setup') {
- SetupCredProvider $AuthToken
- }
- elseif ($Operation -like 'install-restore') {
- InstallDotNetSdkAndRestoreArcade
- }
- else {
- Write-PipelineTelemetryError -Category 'Arcade' -Message "Unknown operation '$Operation'!"
- ExitWithExitCode 1
- }
-}
-catch {
- Write-Host $_.ScriptStackTrace
- Write-PipelineTelemetryError -Category 'Arcade' -Message $_
- ExitWithExitCode 1
-}
-finally {
- Pop-Location
-}
diff --git a/eng/common/internal-feed-operations.sh b/eng/common/internal-feed-operations.sh
deleted file mode 100644
index 9378223..0000000
--- a/eng/common/internal-feed-operations.sh
+++ /dev/null
@@ -1,141 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-# Sets VSS_NUGET_EXTERNAL_FEED_ENDPOINTS based on the "darc-int-*" feeds defined in NuGet.config. This is needed
-# in build agents by CredProvider to authenticate the restore requests to internal feeds as specified in
-# https://github.com/microsoft/artifacts-credprovider/blob/0f53327cd12fd893d8627d7b08a2171bf5852a41/README.md#environment-variables.
-# This should ONLY be called from identified internal builds
-function SetupCredProvider {
- local authToken=$1
-
- # Install the Cred Provider NuGet plugin
- echo "Setting up Cred Provider NuGet plugin in the agent..."...
- echo "Getting 'installcredprovider.ps1' from 'https://github.com/microsoft/artifacts-credprovider'..."
-
- local url="https://raw.githubusercontent.com/microsoft/artifacts-credprovider/master/helpers/installcredprovider.sh"
-
- echo "Writing the contents of 'installcredprovider.ps1' locally..."
- local installcredproviderPath="installcredprovider.sh"
- if command -v curl > /dev/null; then
- curl $url > "$installcredproviderPath"
- else
- wget -q -O "$installcredproviderPath" "$url"
- fi
-
- echo "Installing plugin..."
- . "$installcredproviderPath"
-
- echo "Deleting local copy of 'installcredprovider.sh'..."
- rm installcredprovider.sh
-
- if [ ! -d "$HOME/.nuget/plugins" ]; then
- Write-PipelineTelemetryError -category 'Build' 'CredProvider plugin was not installed correctly!'
- ExitWithExitCode 1
- else
- echo "CredProvider plugin was installed correctly!"
- fi
-
- # Then, we set the 'VSS_NUGET_EXTERNAL_FEED_ENDPOINTS' environment variable to restore from the stable
- # feeds successfully
-
- local nugetConfigPath="{$repo_root}NuGet.config"
-
- if [ ! "$nugetConfigPath" ]; then
- Write-PipelineTelemetryError -category 'Build' "NuGet.config file not found in repo's root!"
- ExitWithExitCode 1
- fi
-
- local endpoints='['
- local nugetConfigPackageValues=`cat "$nugetConfigPath" | grep "key=\"darc-int-"`
- local pattern="value=\"(.*)\""
-
- for value in $nugetConfigPackageValues
- do
- if [[ $value =~ $pattern ]]; then
- local endpoint="${BASH_REMATCH[1]}"
- endpoints+="{\"endpoint\": \"$endpoint\", \"password\": \"$authToken\"},"
- fi
- done
-
- endpoints=${endpoints%?}
- endpoints+=']'
-
- if [ ${#endpoints} -gt 2 ]; then
- local endpointCredentials="{\"endpointCredentials\": "$endpoints"}"
-
- echo "##vso[task.setvariable variable=VSS_NUGET_EXTERNAL_FEED_ENDPOINTS]$endpointCredentials"
- echo "##vso[task.setvariable variable=NUGET_CREDENTIALPROVIDER_SESSIONTOKENCACHE_ENABLED]False"
- else
- echo "No internal endpoints found in NuGet.config"
- fi
-}
-
-# Workaround for https://github.com/microsoft/msbuild/issues/4430
-function InstallDotNetSdkAndRestoreArcade {
- local dotnetTempDir="$repo_root/dotnet"
- local dotnetSdkVersion="2.1.507" # After experimentation we know this version works when restoring the SDK (compared to 3.0.*)
- local restoreProjPath="$repo_root/eng/common/restore.proj"
-
- echo "Installing dotnet SDK version $dotnetSdkVersion to restore Arcade SDK..."
- echo "" > "$restoreProjPath"
-
- InstallDotNetSdk "$dotnetTempDir" "$dotnetSdkVersion"
-
- local res=`$dotnetTempDir/dotnet restore $restoreProjPath`
- echo "Arcade SDK restored!"
-
- # Cleanup
- if [ "$restoreProjPath" ]; then
- rm "$restoreProjPath"
- fi
-
- if [ "$dotnetTempDir" ]; then
- rm -r $dotnetTempDir
- fi
-}
-
-source="${BASH_SOURCE[0]}"
-operation=''
-authToken=''
-repoName=''
-
-while [[ $# > 0 ]]; do
- opt="$(echo "$1" | tr "[:upper:]" "[:lower:]")"
- case "$opt" in
- --operation)
- operation=$2
- shift
- ;;
- --authtoken)
- authToken=$2
- shift
- ;;
- *)
- echo "Invalid argument: $1"
- usage
- exit 1
- ;;
- esac
-
- shift
-done
-
-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 )"
-
-. "$scriptroot/tools.sh"
-
-if [ "$operation" = "setup" ]; then
- SetupCredProvider $authToken
-elif [ "$operation" = "install-restore" ]; then
- InstallDotNetSdkAndRestoreArcade
-else
- echo "Unknown operation '$operation'!"
-fi
diff --git a/eng/common/internal/Directory.Build.props b/eng/common/internal/Directory.Build.props
deleted file mode 100644
index dbf99d8..0000000
--- a/eng/common/internal/Directory.Build.props
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/eng/common/internal/Tools.csproj b/eng/common/internal/Tools.csproj
deleted file mode 100644
index beb9c46..0000000
--- a/eng/common/internal/Tools.csproj
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
- net472
- false
- false
-
-
-
-
-
-
-
-
-
-
- https://devdiv.pkgs.visualstudio.com/_packaging/dotnet-core-internal-tooling/nuget/v3/index.json;
-
-
- $(RestoreSources);
- https://devdiv.pkgs.visualstudio.com/_packaging/VS/nuget/v3/index.json;
-
-
-
-
-
-
diff --git a/eng/common/msbuild.ps1 b/eng/common/msbuild.ps1
deleted file mode 100644
index eea19cd..0000000
--- a/eng/common/msbuild.ps1
+++ /dev/null
@@ -1,27 +0,0 @@
-[CmdletBinding(PositionalBinding=$false)]
-Param(
- [string] $verbosity = 'minimal',
- [bool] $warnAsError = $true,
- [bool] $nodeReuse = $true,
- [switch] $ci,
- [switch] $prepareMachine,
- [switch] $excludePrereleaseVS,
- [Parameter(ValueFromRemainingArguments=$true)][String[]]$extraArgs
-)
-
-. $PSScriptRoot\tools.ps1
-
-try {
- if ($ci) {
- $nodeReuse = $false
- }
-
- MSBuild @extraArgs
-}
-catch {
- Write-Host $_.ScriptStackTrace
- Write-PipelineTelemetryError -Category 'Build' -Message $_
- ExitWithExitCode 1
-}
-
-ExitWithExitCode 0
\ No newline at end of file
diff --git a/eng/common/msbuild.sh b/eng/common/msbuild.sh
deleted file mode 100644
index 20d3dad..0000000
--- a/eng/common/msbuild.sh
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/env bash
-
-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 )"
-
-verbosity='minimal'
-warn_as_error=true
-node_reuse=true
-prepare_machine=false
-extra_args=''
-
-while (($# > 0)); do
- lowerI="$(echo $1 | tr "[:upper:]" "[:lower:]")"
- case $lowerI in
- --verbosity)
- verbosity=$2
- shift 2
- ;;
- --warnaserror)
- warn_as_error=$2
- shift 2
- ;;
- --nodereuse)
- node_reuse=$2
- shift 2
- ;;
- --ci)
- ci=true
- shift 1
- ;;
- --preparemachine)
- prepare_machine=true
- shift 1
- ;;
- *)
- extra_args="$extra_args $1"
- shift 1
- ;;
- esac
-done
-
-. "$scriptroot/tools.sh"
-
-if [[ "$ci" == true ]]; then
- node_reuse=false
-fi
-
-MSBuild $extra_args
-ExitWithExitCode 0
diff --git a/eng/common/native/CommonLibrary.psm1 b/eng/common/native/CommonLibrary.psm1
deleted file mode 100644
index adf707c..0000000
--- a/eng/common/native/CommonLibrary.psm1
+++ /dev/null
@@ -1,399 +0,0 @@
-<#
-.SYNOPSIS
-Helper module to install an archive to a directory
-
-.DESCRIPTION
-Helper module to download and extract an archive to a specified directory
-
-.PARAMETER Uri
-Uri of artifact to download
-
-.PARAMETER InstallDirectory
-Directory to extract artifact contents to
-
-.PARAMETER Force
-Force download / extraction if file or contents already exist. Default = False
-
-.PARAMETER DownloadRetries
-Total number of retry attempts. Default = 5
-
-.PARAMETER RetryWaitTimeInSeconds
-Wait time between retry attempts in seconds. Default = 30
-
-.NOTES
-Returns False if download or extraction fail, True otherwise
-#>
-function DownloadAndExtract {
- [CmdletBinding(PositionalBinding=$false)]
- Param (
- [Parameter(Mandatory=$True)]
- [string] $Uri,
- [Parameter(Mandatory=$True)]
- [string] $InstallDirectory,
- [switch] $Force = $False,
- [int] $DownloadRetries = 5,
- [int] $RetryWaitTimeInSeconds = 30
- )
- # Define verbose switch if undefined
- $Verbose = $VerbosePreference -Eq "Continue"
-
- $TempToolPath = CommonLibrary\Get-TempPathFilename -Path $Uri
-
- # Download native tool
- $DownloadStatus = CommonLibrary\Get-File -Uri $Uri `
- -Path $TempToolPath `
- -DownloadRetries $DownloadRetries `
- -RetryWaitTimeInSeconds $RetryWaitTimeInSeconds `
- -Force:$Force `
- -Verbose:$Verbose
-
- if ($DownloadStatus -Eq $False) {
- Write-Error "Download failed from $Uri"
- return $False
- }
-
- # Extract native tool
- $UnzipStatus = CommonLibrary\Expand-Zip -ZipPath $TempToolPath `
- -OutputDirectory $InstallDirectory `
- -Force:$Force `
- -Verbose:$Verbose
-
- if ($UnzipStatus -Eq $False) {
- # Retry Download one more time with Force=true
- $DownloadRetryStatus = CommonLibrary\Get-File -Uri $Uri `
- -Path $TempToolPath `
- -DownloadRetries 1 `
- -RetryWaitTimeInSeconds $RetryWaitTimeInSeconds `
- -Force:$True `
- -Verbose:$Verbose
-
- if ($DownloadRetryStatus -Eq $False) {
- Write-Error "Last attempt of download failed as well"
- return $False
- }
-
- # Retry unzip again one more time with Force=true
- $UnzipRetryStatus = CommonLibrary\Expand-Zip -ZipPath $TempToolPath `
- -OutputDirectory $InstallDirectory `
- -Force:$True `
- -Verbose:$Verbose
- if ($UnzipRetryStatus -Eq $False)
- {
- Write-Error "Last attempt of unzip failed as well"
- # Clean up partial zips and extracts
- if (Test-Path $TempToolPath) {
- Remove-Item $TempToolPath -Force
- }
- if (Test-Path $InstallDirectory) {
- Remove-Item $InstallDirectory -Force -Recurse
- }
- return $False
- }
- }
-
- return $True
-}
-
-<#
-.SYNOPSIS
-Download a file, retry on failure
-
-.DESCRIPTION
-Download specified file and retry if attempt fails
-
-.PARAMETER Uri
-Uri of file to download. If Uri is a local path, the file will be copied instead of downloaded
-
-.PARAMETER Path
-Path to download or copy uri file to
-
-.PARAMETER Force
-Overwrite existing file if present. Default = False
-
-.PARAMETER DownloadRetries
-Total number of retry attempts. Default = 5
-
-.PARAMETER RetryWaitTimeInSeconds
-Wait time between retry attempts in seconds Default = 30
-
-#>
-function Get-File {
- [CmdletBinding(PositionalBinding=$false)]
- Param (
- [Parameter(Mandatory=$True)]
- [string] $Uri,
- [Parameter(Mandatory=$True)]
- [string] $Path,
- [int] $DownloadRetries = 5,
- [int] $RetryWaitTimeInSeconds = 30,
- [switch] $Force = $False
- )
- $Attempt = 0
-
- if ($Force) {
- if (Test-Path $Path) {
- Remove-Item $Path -Force
- }
- }
- if (Test-Path $Path) {
- Write-Host "File '$Path' already exists, skipping download"
- return $True
- }
-
- $DownloadDirectory = Split-Path -ErrorAction Ignore -Path "$Path" -Parent
- if (-Not (Test-Path $DownloadDirectory)) {
- New-Item -path $DownloadDirectory -force -itemType "Directory" | Out-Null
- }
-
- $TempPath = "$Path.tmp"
- if (Test-Path -IsValid -Path $Uri) {
- Write-Verbose "'$Uri' is a file path, copying temporarily to '$TempPath'"
- Copy-Item -Path $Uri -Destination $TempPath
- Write-Verbose "Moving temporary file to '$Path'"
- Move-Item -Path $TempPath -Destination $Path
- return $?
- }
- else {
- Write-Verbose "Downloading $Uri"
- # Don't display the console progress UI - it's a huge perf hit
- $ProgressPreference = 'SilentlyContinue'
- while($Attempt -Lt $DownloadRetries)
- {
- try {
- Invoke-WebRequest -UseBasicParsing -Uri $Uri -OutFile $TempPath
- Write-Verbose "Downloaded to temporary location '$TempPath'"
- Move-Item -Path $TempPath -Destination $Path
- Write-Verbose "Moved temporary file to '$Path'"
- return $True
- }
- catch {
- $Attempt++
- if ($Attempt -Lt $DownloadRetries) {
- $AttemptsLeft = $DownloadRetries - $Attempt
- Write-Warning "Download failed, $AttemptsLeft attempts remaining, will retry in $RetryWaitTimeInSeconds seconds"
- Start-Sleep -Seconds $RetryWaitTimeInSeconds
- }
- else {
- Write-Error $_
- Write-Error $_.Exception
- }
- }
- }
- }
-
- return $False
-}
-
-<#
-.SYNOPSIS
-Generate a shim for a native tool
-
-.DESCRIPTION
-Creates a wrapper script (shim) that passes arguments forward to native tool assembly
-
-.PARAMETER ShimName
-The name of the shim
-
-.PARAMETER ShimDirectory
-The directory where shims are stored
-
-.PARAMETER ToolFilePath
-Path to file that shim forwards to
-
-.PARAMETER Force
-Replace shim if already present. Default = False
-
-.NOTES
-Returns $True if generating shim succeeds, $False otherwise
-#>
-function New-ScriptShim {
- [CmdletBinding(PositionalBinding=$false)]
- Param (
- [Parameter(Mandatory=$True)]
- [string] $ShimName,
- [Parameter(Mandatory=$True)]
- [string] $ShimDirectory,
- [Parameter(Mandatory=$True)]
- [string] $ToolFilePath,
- [Parameter(Mandatory=$True)]
- [string] $BaseUri,
- [switch] $Force
- )
- try {
- Write-Verbose "Generating '$ShimName' shim"
-
- if (-Not (Test-Path $ToolFilePath)){
- Write-Error "Specified tool file path '$ToolFilePath' does not exist"
- return $False
- }
-
- # WinShimmer is a small .NET Framework program that creates .exe shims to bootstrapped programs
- # Many of the checks for installed programs expect a .exe extension for Windows tools, rather
- # than a .bat or .cmd file.
- # Source: https://github.com/dotnet/arcade/tree/master/src/WinShimmer
- if (-Not (Test-Path "$ShimDirectory\WinShimmer\winshimmer.exe")) {
- $InstallStatus = DownloadAndExtract -Uri "$BaseUri/windows/winshimmer/WinShimmer.zip" `
- -InstallDirectory $ShimDirectory\WinShimmer `
- -Force:$Force `
- -DownloadRetries 2 `
- -RetryWaitTimeInSeconds 5 `
- -Verbose:$Verbose
- }
-
- if ((Test-Path (Join-Path $ShimDirectory "$ShimName.exe"))) {
- Write-Host "$ShimName.exe already exists; replacing..."
- Remove-Item (Join-Path $ShimDirectory "$ShimName.exe")
- }
-
- & "$ShimDirectory\WinShimmer\winshimmer.exe" $ShimName $ToolFilePath $ShimDirectory
- return $True
- }
- catch {
- Write-Host $_
- Write-Host $_.Exception
- return $False
- }
-}
-
-<#
-.SYNOPSIS
-Returns the machine architecture of the host machine
-
-.NOTES
-Returns 'x64' on 64 bit machines
- Returns 'x86' on 32 bit machines
-#>
-function Get-MachineArchitecture {
- $ProcessorArchitecture = $Env:PROCESSOR_ARCHITECTURE
- $ProcessorArchitectureW6432 = $Env:PROCESSOR_ARCHITEW6432
- if($ProcessorArchitecture -Eq "X86")
- {
- if(($ProcessorArchitectureW6432 -Eq "") -Or
- ($ProcessorArchitectureW6432 -Eq "X86")) {
- return "x86"
- }
- $ProcessorArchitecture = $ProcessorArchitectureW6432
- }
- if (($ProcessorArchitecture -Eq "AMD64") -Or
- ($ProcessorArchitecture -Eq "IA64") -Or
- ($ProcessorArchitecture -Eq "ARM64")) {
- return "x64"
- }
- return "x86"
-}
-
-<#
-.SYNOPSIS
-Get the name of a temporary folder under the native install directory
-#>
-function Get-TempDirectory {
- return Join-Path (Get-NativeInstallDirectory) "temp/"
-}
-
-function Get-TempPathFilename {
- [CmdletBinding(PositionalBinding=$false)]
- Param (
- [Parameter(Mandatory=$True)]
- [string] $Path
- )
- $TempDir = CommonLibrary\Get-TempDirectory
- $TempFilename = Split-Path $Path -leaf
- $TempPath = Join-Path $TempDir $TempFilename
- return $TempPath
-}
-
-<#
-.SYNOPSIS
-Returns the base directory to use for native tool installation
-
-.NOTES
-Returns the value of the NETCOREENG_INSTALL_DIRECTORY if that environment variable
-is set, or otherwise returns an install directory under the %USERPROFILE%
-#>
-function Get-NativeInstallDirectory {
- $InstallDir = $Env:NETCOREENG_INSTALL_DIRECTORY
- if (!$InstallDir) {
- $InstallDir = Join-Path $Env:USERPROFILE ".netcoreeng/native/"
- }
- return $InstallDir
-}
-
-<#
-.SYNOPSIS
-Unzip an archive
-
-.DESCRIPTION
-Powershell module to unzip an archive to a specified directory
-
-.PARAMETER ZipPath (Required)
-Path to archive to unzip
-
-.PARAMETER OutputDirectory (Required)
-Output directory for archive contents
-
-.PARAMETER Force
-Overwrite output directory contents if they already exist
-
-.NOTES
-- Returns True and does not perform an extraction if output directory already exists but Overwrite is not True.
-- Returns True if unzip operation is successful
-- Returns False if Overwrite is True and it is unable to remove contents of OutputDirectory
-- Returns False if unable to extract zip archive
-#>
-function Expand-Zip {
- [CmdletBinding(PositionalBinding=$false)]
- Param (
- [Parameter(Mandatory=$True)]
- [string] $ZipPath,
- [Parameter(Mandatory=$True)]
- [string] $OutputDirectory,
- [switch] $Force
- )
-
- Write-Verbose "Extracting '$ZipPath' to '$OutputDirectory'"
- try {
- if ((Test-Path $OutputDirectory) -And (-Not $Force)) {
- Write-Host "Directory '$OutputDirectory' already exists, skipping extract"
- return $True
- }
- if (Test-Path $OutputDirectory) {
- Write-Verbose "'Force' is 'True', but '$OutputDirectory' exists, removing directory"
- Remove-Item $OutputDirectory -Force -Recurse
- if ($? -Eq $False) {
- Write-Error "Unable to remove '$OutputDirectory'"
- return $False
- }
- }
-
- $TempOutputDirectory = Join-Path "$(Split-Path -Parent $OutputDirectory)" "$(Split-Path -Leaf $OutputDirectory).tmp"
- if (Test-Path $TempOutputDirectory) {
- Remove-Item $TempOutputDirectory -Force -Recurse
- }
- New-Item -Path $TempOutputDirectory -Force -ItemType "Directory" | Out-Null
-
- Add-Type -assembly "system.io.compression.filesystem"
- [io.compression.zipfile]::ExtractToDirectory("$ZipPath", "$TempOutputDirectory")
- if ($? -Eq $False) {
- Write-Error "Unable to extract '$ZipPath'"
- return $False
- }
-
- Move-Item -Path $TempOutputDirectory -Destination $OutputDirectory
- }
- catch {
- Write-Host $_
- Write-Host $_.Exception
-
- return $False
- }
- return $True
-}
-
-export-modulemember -function DownloadAndExtract
-export-modulemember -function Expand-Zip
-export-modulemember -function Get-File
-export-modulemember -function Get-MachineArchitecture
-export-modulemember -function Get-NativeInstallDirectory
-export-modulemember -function Get-TempDirectory
-export-modulemember -function Get-TempPathFilename
-export-modulemember -function New-ScriptShim
diff --git a/eng/common/native/common-library.sh b/eng/common/native/common-library.sh
deleted file mode 100644
index 080c2c2..0000000
--- a/eng/common/native/common-library.sh
+++ /dev/null
@@ -1,172 +0,0 @@
-#!/usr/bin/env bash
-
-function GetNativeInstallDirectory {
- local install_dir
-
- if [[ -z $NETCOREENG_INSTALL_DIRECTORY ]]; then
- install_dir=$HOME/.netcoreeng/native/
- else
- install_dir=$NETCOREENG_INSTALL_DIRECTORY
- fi
-
- echo $install_dir
- return 0
-}
-
-function GetTempDirectory {
-
- echo $(GetNativeInstallDirectory)temp/
- return 0
-}
-
-function ExpandZip {
- local zip_path=$1
- local output_directory=$2
- local force=${3:-false}
-
- echo "Extracting $zip_path to $output_directory"
- if [[ -d $output_directory ]] && [[ $force = false ]]; then
- echo "Directory '$output_directory' already exists, skipping extract"
- return 0
- fi
-
- if [[ -d $output_directory ]]; then
- echo "'Force flag enabled, but '$output_directory' exists. Removing directory"
- rm -rf $output_directory
- if [[ $? != 0 ]]; then
- Write-PipelineTelemetryError -category 'NativeToolsBootstrap' "Unable to remove '$output_directory'"
- return 1
- fi
- fi
-
- echo "Creating directory: '$output_directory'"
- mkdir -p $output_directory
-
- echo "Extracting archive"
- tar -xf $zip_path -C $output_directory
- if [[ $? != 0 ]]; then
- Write-PipelineTelemetryError -category 'NativeToolsBootstrap' "Unable to extract '$zip_path'"
- return 1
- fi
-
- return 0
-}
-
-function GetCurrentOS {
- local unameOut="$(uname -s)"
- case $unameOut in
- Linux*) echo "Linux";;
- Darwin*) echo "MacOS";;
- esac
- return 0
-}
-
-function GetFile {
- local uri=$1
- local path=$2
- local force=${3:-false}
- local download_retries=${4:-5}
- local retry_wait_time_seconds=${5:-30}
-
- if [[ -f $path ]]; then
- if [[ $force = false ]]; then
- echo "File '$path' already exists. Skipping download"
- return 0
- else
- rm -rf $path
- fi
- fi
-
- if [[ -f $uri ]]; then
- echo "'$uri' is a file path, copying file to '$path'"
- cp $uri $path
- return $?
- fi
-
- echo "Downloading $uri"
- # Use curl if available, otherwise use wget
- if command -v curl > /dev/null; then
- curl "$uri" -sSL --retry $download_retries --retry-delay $retry_wait_time_seconds --create-dirs -o "$path" --fail
- else
- wget -q -O "$path" "$uri" --tries="$download_retries"
- fi
-
- return $?
-}
-
-function GetTempPathFileName {
- local path=$1
-
- local temp_dir=$(GetTempDirectory)
- local temp_file_name=$(basename $path)
- echo $temp_dir$temp_file_name
- return 0
-}
-
-function DownloadAndExtract {
- local uri=$1
- local installDir=$2
- local force=${3:-false}
- local download_retries=${4:-5}
- local retry_wait_time_seconds=${5:-30}
-
- local temp_tool_path=$(GetTempPathFileName $uri)
-
- echo "downloading to: $temp_tool_path"
-
- # Download file
- GetFile "$uri" "$temp_tool_path" $force $download_retries $retry_wait_time_seconds
- if [[ $? != 0 ]]; then
- Write-PipelineTelemetryError -category 'NativeToolsBootstrap' "Failed to download '$uri' to '$temp_tool_path'."
- return 1
- fi
-
- # Extract File
- echo "extracting from $temp_tool_path to $installDir"
- ExpandZip "$temp_tool_path" "$installDir" $force $download_retries $retry_wait_time_seconds
- if [[ $? != 0 ]]; then
- Write-PipelineTelemetryError -category 'NativeToolsBootstrap' "Failed to extract '$temp_tool_path' to '$installDir'."
- return 1
- fi
-
- return 0
-}
-
-function NewScriptShim {
- local shimpath=$1
- local tool_file_path=$2
- local force=${3:-false}
-
- echo "Generating '$shimpath' shim"
- if [[ -f $shimpath ]]; then
- if [[ $force = false ]]; then
- echo "File '$shimpath' already exists." >&2
- return 1
- else
- rm -rf $shimpath
- fi
- fi
-
- if [[ ! -f $tool_file_path ]]; then
- # try to see if the path is lower cased
- tool_file_path="$(echo $tool_file_path | tr "[:upper:]" "[:lower:]")"
- if [[ ! -f $tool_file_path ]]; then
- Write-PipelineTelemetryError -category 'NativeToolsBootstrap' "Specified tool file path:'$tool_file_path' does not exist"
- return 1
- fi
- fi
-
- local shim_contents=$'#!/usr/bin/env bash\n'
- shim_contents+="SHIMARGS="$'$1\n'
- shim_contents+="$tool_file_path"$' $SHIMARGS\n'
-
- # Write shim file
- echo "$shim_contents" > $shimpath
-
- chmod +x $shimpath
-
- echo "Finished generating shim '$shimpath'"
-
- return $?
-}
-
diff --git a/eng/common/native/init-compiler.sh b/eng/common/native/init-compiler.sh
deleted file mode 100644
index 8c944f3..0000000
--- a/eng/common/native/init-compiler.sh
+++ /dev/null
@@ -1,125 +0,0 @@
-#!/usr/bin/env bash
-#
-# This file detects the C/C++ compiler and exports it to the CC/CXX environment variables
-#
-
-if [[ "$#" -lt 3 ]]; then
- echo "Usage..."
- echo "init-compiler.sh