From 7f5188c56b12839030f02b25bfbadfb24f6be2fe Mon Sep 17 00:00:00 2001 From: travis plunk Date: Wed, 8 Feb 2023 09:41:37 -0800 Subject: [PATCH 1/3] Allow cross compiling windows --- build.psm1 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/build.psm1 b/build.psm1 index 3b808c562cf..07b97fa6cc9 100644 --- a/build.psm1 +++ b/build.psm1 @@ -455,6 +455,9 @@ Fix steps: if ($Options.Runtime -like 'win*' -or ($Options.Runtime -like 'fxdependent*' -and $environment.IsWindows)) { $Arguments += "/property:IsWindows=true" + if(!$environment.IsWindows) { + $Arguments += "/property:EnableWindowsTargeting=true" + } } else { $Arguments += "/property:IsWindows=false" From 30390a6d36a9500111823784873dd38d80cee4b4 Mon Sep 17 00:00:00 2001 From: travis plunk Date: Wed, 8 Feb 2023 10:27:52 -0800 Subject: [PATCH 2/3] fix exp feature generation --- build.psm1 | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/build.psm1 b/build.psm1 index 07b97fa6cc9..644c46063fa 100644 --- a/build.psm1 +++ b/build.psm1 @@ -651,7 +651,7 @@ Fix steps: (Test-IsPreview $psVersion) -and -not (Test-IsReleaseCandidate $psVersion) ) { - if (-not $env:PS_RELEASE_BUILD -and -not $Runtime.Contains("arm") -and -not ($Runtime -like 'fxdependent*')) { + if ((Test-ShouldGenerateExperimentalFeatures -Runtime $Options.Runtime)) { Write-Verbose "Build experimental feature list by running 'Get-ExperimentalFeature'" -Verbose $json = & $publishPath\pwsh -noprofile -command { $expFeatures = Get-ExperimentalFeature | ForEach-Object -MemberName Name @@ -700,6 +700,45 @@ Fix steps: } } +function Test-ShouldGenerateExperimentalFeatures +{ + param( + [Parameter(Mandatory)] + $Runtime + ) + + if ($env:PS_RELEASE_BUILD) { + return $false + } + + if ($Runtime -like 'fxdependent*') { + return $false + } + + $runtimePattern = 'unknown-' + if ($environment.IsWindows) { + $runtimePattern = '^win.*-' + } + + if ($environment.IsMacOS) { + $runtimePattern = '^osx.*-' + } + + if ($environment.IsLinux) { + $runtimePattern = '^linux.*-' + } + + $runtimePattern += $environment.OSArchitecture.ToString() + Write-Verbose "runtime pattern check: $Runtime -match $runtimePattern" -Verbose + if ($Runtime -match $runtimePattern) { + Write-Verbose "Generating experimental feature list" -Verbose + return $true + } + + Write-Verbose "Skipping generating experimental feature list" -Verbose + return $false +} + function Restore-PSPackage { [CmdletBinding()] From 7bb714cb4a6b32e58c6935a8ee3a2c6765861670 Mon Sep 17 00:00:00 2001 From: travis plunk Date: Wed, 8 Feb 2023 10:37:50 -0800 Subject: [PATCH 3/3] make sure all platforms have OSArchitecture --- build.psm1 | 1 + 1 file changed, 1 insertion(+) diff --git a/build.psm1 b/build.psm1 index 644c46063fa..4e1fd0f3f9a 100644 --- a/build.psm1 +++ b/build.psm1 @@ -159,6 +159,7 @@ function Get-EnvironmentInformation } if ($environment.IsLinux) { + $environment += @{ 'OSArchitecture' = [System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture } $LinuxInfo = Get-Content /etc/os-release -Raw | ConvertFrom-StringData $lsb_release = Get-Command lsb_release -Type Application -ErrorAction Ignore | Select-Object -First 1 if ($lsb_release) {