Skip to content

Commit 84a1d32

Browse files
committed
Update to Uno 6.x, drop Uno.UI
1 parent 0d171da commit 84a1d32

24 files changed

Lines changed: 79 additions & 140 deletions

Build-Toolkit-Components.ps1

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,11 @@
5757
Date: 2/19/2024
5858
#>
5959
Param (
60-
[ValidateSet('all', 'wasm', 'uwp', 'wasdk', 'wpf', 'linuxgtk', 'macos', 'ios', 'android', 'netstandard')]
60+
[ValidateSet('all', 'wasm', 'uwp', 'wasdk', 'macos', 'ios', 'android', 'netstandard')]
6161
[Alias("mt")]
6262
[string[]]$MultiTargets = @('uwp', 'wasm', 'wasdk'), # default settings
63-
64-
[ValidateSet('wasm', 'uwp', 'wasdk', 'wpf', 'linuxgtk', 'macos', 'ios', 'android', 'netstandard')]
63+
64+
[ValidateSet('wasm', 'uwp', 'wasdk', 'macos', 'ios', 'android', 'netstandard')]
6565
[string[]]$ExcludeMultiTargets = @(), # default settings
6666

6767
[Alias("c")]
@@ -97,19 +97,19 @@ Param (
9797

9898

9999
if ($MultiTargets -eq 'all') {
100-
$MultiTargets = @('wasm', 'uwp', 'wasdk', 'wpf', 'linuxgtk', 'macos', 'ios', 'android', 'netstandard')
100+
$MultiTargets = @('wasm', 'uwp', 'wasdk', 'macos', 'ios', 'android', 'netstandard')
101101
}
102102

103103
if ($null -eq $ExcludeMultiTargets)
104104
{
105105
$ExcludeMultiTargets = @()
106106
}
107107

108-
# Both uwp and wasdk share a targetframework. Both cannot be enabled at once.
109-
# If both are supplied, remove one based on WinUIMajorVersion.
108+
# WinUI 2 only builds native UWP (Uno.UI dropped in Uno 6).
109+
# WinUI 3 excludes UWP. Both uwp and wasdk share a targetframework and cannot be enabled at once.
110110
if ($WinUIMajorVersion -eq 2)
111111
{
112-
$ExcludeMultiTargets = $ExcludeMultiTargets + 'wasdk'
112+
$ExcludeMultiTargets = $ExcludeMultiTargets + 'wasdk' + 'wasm' + 'macos' + 'ios' + 'android'
113113
}
114114

115115
if ($WinUIMajorVersion -eq 3)

Build-Toolkit-Gallery.ps1

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
Specifies the MultiTarget TFM(s) to include for building the components. The default value is 'all'.
1010
1111
.PARAMETER ExcludeMultiTargets
12-
Specifies the MultiTarget TFM(s) to exclude for building the components. The default value excludes targets that require additional tooling or workloads to build: 'wpf', 'linuxgtk', 'macos', 'ios', and 'android'. Run uno-check to install the required workloads.
12+
Specifies the MultiTarget TFM(s) to exclude for building the components. The default value excludes targets that require additional tooling or workloads to build. Run uno-check to install the required workloads.
1313
1414
.PARAMETER Heads
1515
The heads to include in the build. Default is 'Uwp', 'Wasdk', 'Wasm'.
@@ -46,11 +46,11 @@
4646
Date: 2/19/2024
4747
#>
4848
Param (
49-
[ValidateSet('all', 'wasm', 'uwp', 'wasdk', 'wpf', 'linuxgtk', 'macos', 'ios', 'android', 'netstandard')]
49+
[ValidateSet('all', 'wasm', 'uwp', 'wasdk', 'macos', 'ios', 'android', 'netstandard')]
5050
[Alias("mt")]
5151
[string[]]$MultiTargets = @('uwp', 'wasdk', 'wasm'), # default settings
52-
53-
[ValidateSet('wasm', 'uwp', 'wasdk', 'wpf', 'linuxgtk', 'macos', 'ios', 'android', 'netstandard')]
52+
53+
[ValidateSet('wasm', 'uwp', 'wasdk', 'macos', 'ios', 'android', 'netstandard')]
5454
[string[]]$ExcludeMultiTargets = @(), # default settings
5555

5656
[ValidateSet('all', 'Uwp', 'Wasdk', 'Wasm', 'Tests.Uwp', 'Tests.Wasdk')]
@@ -87,22 +87,19 @@ if ($null -eq $ExcludeMultiTargets)
8787
$ExcludeMultiTargets = @()
8888
}
8989

90-
# Both uwp and wasdk share a targetframework. Both cannot be enabled at once.
91-
# If both are supplied, remove one based on WinUIMajorVersion.
92-
if ($MultiTargets.Contains('uwp') -and $MultiTargets.Contains('wasdk'))
90+
# WinUI 2 only builds native UWP (Uno.UI dropped in Uno 6).
91+
# WinUI 3 excludes UWP. Both uwp and wasdk share a targetframework and cannot be enabled at once.
92+
if ($WinUIMajorVersion -eq 2)
9393
{
94-
if ($WinUIMajorVersion -eq 2)
95-
{
96-
$ExcludeMultiTargets = $ExcludeMultiTargets + 'wasdk'
97-
}
98-
else
99-
{
100-
$ExcludeMultiTargets = $ExcludeMultiTargets + 'uwp'
101-
}
94+
$ExcludeMultiTargets = $ExcludeMultiTargets + 'wasdk' + 'wasm' + 'macos' + 'ios' + 'android'
95+
}
96+
else
97+
{
98+
$ExcludeMultiTargets = $ExcludeMultiTargets + 'uwp'
10299
}
103100

104101
if ($MultiTargets -eq 'all') {
105-
$MultiTargets = @('wasm', 'uwp', 'wasdk', 'wpf', 'linuxgtk', 'macos', 'ios', 'android', 'netstandard')
102+
$MultiTargets = @('wasm', 'uwp', 'wasdk', 'macos', 'ios', 'android', 'netstandard')
106103
}
107104

108105
if ($ExcludeMultiTargets) {

GenerateAllSolution.ps1

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,11 @@
3838
Date: April 27, 2022
3939
#>
4040
Param (
41-
[ValidateSet('all', 'wasm', 'uwp', 'wasdk', 'wpf', 'linuxgtk', 'macos', 'ios', 'android', 'netstandard')]
41+
[ValidateSet('all', 'wasm', 'uwp', 'wasdk', 'macos', 'ios', 'android', 'netstandard')]
4242
[Alias("mt")]
4343
[string[]]$MultiTargets = @('uwp', 'wasm', 'wasdk'),
4444

45-
[ValidateSet('wasm', 'uwp', 'wasdk', 'wpf', 'linuxgtk', 'macos', 'ios', 'android', 'netstandard')]
45+
[ValidateSet('wasm', 'uwp', 'wasdk', 'macos', 'ios', 'android', 'netstandard')]
4646
[string[]]$ExcludeMultiTargets = @(), # default settings
4747

4848
[Alias("c")]
@@ -59,26 +59,23 @@ Param (
5959
)
6060

6161
if ($MultiTargets.Contains('all')) {
62-
$MultiTargets = @('wasm', 'uwp', 'wasdk', 'wpf', 'linuxgtk', 'macos', 'ios', 'android', 'netstandard')
62+
$MultiTargets = @('wasm', 'uwp', 'wasdk', 'macos', 'ios', 'android', 'netstandard')
6363
}
6464

6565
if ($null -eq $ExcludeMultiTargets)
6666
{
6767
$ExcludeMultiTargets = @()
6868
}
6969

70-
# Both uwp and wasdk share a targetframework. Both cannot be enabled at once.
71-
# If both are supplied, remove one based on WinUIMajorVersion.
72-
if ($MultiTargets.Contains('uwp') -and $MultiTargets.Contains('wasdk'))
70+
# WinUI 2 only builds native UWP (Uno.UI dropped in Uno 6).
71+
# WinUI 3 excludes UWP. Both uwp and wasdk share a targetframework and cannot be enabled at once.
72+
if ($WinUIMajorVersion -eq 2)
7373
{
74-
if ($WinUIMajorVersion -eq 2)
75-
{
76-
$ExcludeMultiTargets = $ExcludeMultiTargets + 'wasdk'
77-
}
78-
else
79-
{
80-
$ExcludeMultiTargets = $ExcludeMultiTargets + 'uwp'
81-
}
74+
$ExcludeMultiTargets = $ExcludeMultiTargets + 'wasdk' + 'wasm' + 'macos' + 'ios' + 'android'
75+
}
76+
else
77+
{
78+
$ExcludeMultiTargets = $ExcludeMultiTargets + 'uwp'
8279
}
8380

8481
$MultiTargets = $MultiTargets | Where-Object { $_ -notin $ExcludeMultiTargets }

GenerateSingleSolution.ps1

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
Date: Feb 9, 2023
3434
#>
3535
Param (
36-
[ValidateSet('all', 'wasm', 'uwp', 'wasdk', 'wpf', 'linuxgtk', 'macos', 'ios', 'android')]
36+
[ValidateSet('all', 'wasm', 'uwp', 'wasdk', 'macos', 'ios', 'android')]
3737
[Alias("mt")]
3838
[string[]]$MultiTargets = @('uwp', 'wasm', 'wasdk'),
3939

@@ -98,26 +98,23 @@ if (-not (Test-Path "$componentPath/src" -PathType Container))
9898
# -----------------
9999

100100
if ($MultiTargets.Contains('all')) {
101-
$MultiTargets = @('wasm', 'uwp', 'wasdk', 'wpf', 'linuxgtk', 'macos', 'ios', 'android')
101+
$MultiTargets = @('wasm', 'uwp', 'wasdk', 'macos', 'ios', 'android')
102102
}
103103

104104
if ($null -eq $ExcludeMultiTargets)
105105
{
106106
$ExcludeMultiTargets = @()
107107
}
108108

109-
# Both uwp and wasdk share a targetframework. Both cannot be enabled at once.
110-
# If both are supplied, remove one based on WinUIMajorVersion.
111-
if ($MultiTargets.Contains('uwp') -and $MultiTargets.Contains('wasdk'))
109+
# WinUI 2 only builds native UWP (Uno.UI dropped in Uno 6).
110+
# WinUI 3 excludes UWP. Both uwp and wasdk share a targetframework and cannot be enabled at once.
111+
if ($WinUIMajorVersion -eq 2)
112112
{
113-
if ($WinUIMajorVersion -eq 2)
114-
{
115-
$ExcludeMultiTargets = $ExcludeMultiTargets + 'wasdk'
116-
}
117-
else
118-
{
119-
$ExcludeMultiTargets = $ExcludeMultiTargets + 'uwp'
120-
}
113+
$ExcludeMultiTargets = $ExcludeMultiTargets + 'wasdk' + 'wasm' + 'macos' + 'ios' + 'android'
114+
}
115+
else
116+
{
117+
$ExcludeMultiTargets = $ExcludeMultiTargets + 'uwp'
121118
}
122119

123120
$MultiTargets = $MultiTargets | Where-Object { $_ -notin $ExcludeMultiTargets }

MultiTarget/AvailableTargetFrameworks.props

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,17 @@
1212
<UwpTargetFrameworks Condition="'$(UwpTargetFrameworks)' == '' AND '$(BuildingInsideVisualStudio)' != 'true'">uap10.0.17763;net8.0-windows10.0.26100.0;net9.0-windows10.0.26100.0;</UwpTargetFrameworks>
1313
<WinAppSdkTargetFrameworks Condition="'$(WinAppSdkTargetFrameworks)' == ''">net9.0-windows10.0.19041.0;net8.0-windows10.0.19041.0;</WinAppSdkTargetFrameworks>
1414

15-
<WasmHeadTargetFramework Condition="'$(WasmHeadTargetFramework)' == ''">net9.0;</WasmHeadTargetFramework>
16-
<LinuxHeadTargetFramework Condition="'$(LinuxHeadTargetFramework)' == ''">net9.0;</LinuxHeadTargetFramework>
17-
<WpfHeadTargetFramework Condition="'$(WpfHeadTargetFramework)' == ''">net9.0;</WpfHeadTargetFramework>
15+
<WasmHeadTargetFramework Condition="'$(WasmHeadTargetFramework)' == ''">net9.0;net10.0;</WasmHeadTargetFramework>
1816

19-
<AndroidLibTargetFrameworks Condition="'$(AndroidLibTargetFrameworks)' == ''">net9.0-android;</AndroidLibTargetFrameworks>
20-
<MacOSLibTargetFrameworks Condition="'$(MacOSLibTargetFrameworks)' == ''">net9.0-maccatalyst;</MacOSLibTargetFrameworks>
21-
<iOSLibTargetFrameworks Condition="'$(iOSLibTargetFrameworks)' == ''">net9.0-ios;</iOSLibTargetFrameworks>
17+
<AndroidLibTargetFrameworks Condition="'$(AndroidLibTargetFrameworks)' == ''">net9.0-android;net10.0-android;</AndroidLibTargetFrameworks>
18+
<MacOSLibTargetFrameworks Condition="'$(MacOSLibTargetFrameworks)' == ''">net9.0-maccatalyst;net10.0-maccatalyst;</MacOSLibTargetFrameworks>
19+
<iOSLibTargetFrameworks Condition="'$(iOSLibTargetFrameworks)' == ''">net9.0-ios;net10.0-ios;</iOSLibTargetFrameworks>
2220

2321
<!-- Used for comparison to current TargetFramework -->
24-
<LinuxLibTargetFrameworks Condition="'$(LinuxLibTargetFrameworks)' == ''">net9.0;</LinuxLibTargetFrameworks>
25-
<WasmLibTargetFrameworks Condition="'$(WasmLibTargetFrameworks)' == ''">net9.0;</WasmLibTargetFrameworks>
26-
<WpfLibTargetFrameworks Condition="'$(WpfLibTargetFrameworks)' == ''">net9.0;</WpfLibTargetFrameworks>
22+
<WasmLibTargetFrameworks Condition="'$(WasmLibTargetFrameworks)' == ''">net9.0;net10.0;</WasmLibTargetFrameworks>
2723

2824
<!-- Used for defining TargetFramework under platforms that need it -->
2925
<DotnetStandardCommonTargetFramework Condition="'$(DotnetStandardCommonTargetFramework)' == ''">netstandard2.0;</DotnetStandardCommonTargetFramework>
30-
<DotnetCommonTargetFramework Condition="'$(DotnetCommonTargetFramework)' == ''">net9.0;</DotnetCommonTargetFramework>
26+
<DotnetCommonTargetFramework Condition="'$(DotnetCommonTargetFramework)' == ''">net9.0;net10.0;</DotnetCommonTargetFramework>
3127
</PropertyGroup>
3228
</Project>

MultiTarget/Defaults.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<Project>
22
<PropertyGroup>
3-
<MultiTarget>uwp;wasdk;wpf;wasm;linuxgtk;macos;ios;android;</MultiTarget>
3+
<MultiTarget>uwp;wasdk;wasm;macos;ios;android;</MultiTarget>
44
</PropertyGroup>
55
</Project>

MultiTarget/DefinedConstants.props

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@
1212
<DefineConstants Condition="'$(IsDroid)' == 'true'">$(DefineConstants);__ANDROID__;</DefineConstants>
1313
<DefineConstants Condition="'$(IsiOS)' == 'true'">$(DefineConstants);__IOS__;</DefineConstants>
1414
<DefineConstants Condition="'$(IsMacOS)' == 'true'">$(DefineConstants);__MACOS__;</DefineConstants>
15-
<DefineConstants Condition="'$(IsWpf)' == 'true'">$(DefineConstants);HAS_UNO_SKIA;__SKIA__;WINDOWS_WPF;</DefineConstants>
16-
<DefineConstants Condition="'$(IsGtk)' == 'true'">$(DefineConstants);HAS_UNO_SKIA;__SKIA__;__GTK__;</DefineConstants>
17-
15+
<DefineConstants Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net10.0'))">$(DefineConstants);NET10_0_OR_GREATER</DefineConstants>
1816
<DefineConstants Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net9.0'))">$(DefineConstants);NET9_0_OR_GREATER</DefineConstants>
1917
<DefineConstants Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">$(DefineConstants);NET8_0_OR_GREATER</DefineConstants>
2018
<DefineConstants Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net7.0'))">$(DefineConstants);NET7_0_OR_GREATER</DefineConstants>

MultiTarget/EnabledTargetFrameworks.props

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@
1010
<TargetFrameworks Condition="$(EnabledMultiTargets.Contains('wasdk')) == 'true' AND $(AvailableMultiTargets.Contains('wasdk')) == 'true'">$(TargetFrameworks);$(WinAppSdkTargetFrameworks)</TargetFrameworks>
1111

1212
<!--
13-
TargetFrameworks for WasmLibTargetFrameworks, WpfLibTargetFrameworks, and LinuxLibTargetFrameworks all use the same value.
13+
TargetFrameworks for WasmLibTargetFrameworks use DotnetCommonTargetFramework.
1414
Duplicate values can't be removed during the evaluation phase without breaking things, so we use a single value for all that need it.
1515
-->
16-
<IsNetCommonMultiTargetEnabled Condition="$(EnabledMultiTargets.Contains('wasm')) == 'true' OR $(EnabledMultiTargets.Contains('wpf')) == 'true' OR $(EnabledMultiTargets.Contains('linuxgtk')) == 'true'">true</IsNetCommonMultiTargetEnabled>
17-
<IsNetCommonMultiTargetAvailable Condition="$(AvailableMultiTargets.Contains('wasm')) == 'true' OR $(AvailableMultiTargets.Contains('wpf')) == 'true' OR $(AvailableMultiTargets.Contains('linuxgtk')) == 'true'">true</IsNetCommonMultiTargetAvailable>
16+
<IsNetCommonMultiTargetEnabled Condition="$(EnabledMultiTargets.Contains('wasm')) == 'true'">true</IsNetCommonMultiTargetEnabled>
17+
<IsNetCommonMultiTargetAvailable Condition="$(AvailableMultiTargets.Contains('wasm')) == 'true'">true</IsNetCommonMultiTargetAvailable>
1818
<TargetFrameworks Condition="$(IsNetCommonMultiTargetEnabled) == 'true' AND $(IsNetCommonMultiTargetAvailable) == 'true'">$(TargetFrameworks);$(DotnetCommonTargetFramework)</TargetFrameworks>
1919

2020
<TargetFrameworks Condition="$(EnabledMultiTargets.Contains('macos')) == 'true' AND $(AvailableMultiTargets.Contains('macos')) == 'true'">$(TargetFrameworks);$(MacOSLibTargetFrameworks)</TargetFrameworks>

MultiTarget/Filter-Supported-Components.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
Date: 6/6/2025
1818
#>
1919
Param (
20-
[ValidateSet('all', 'wasm', 'uwp', 'wasdk', 'wpf', 'linuxgtk', 'macos', 'ios', 'android', 'netstandard')]
20+
[ValidateSet('all', 'wasm', 'uwp', 'wasdk', 'macos', 'ios', 'android', 'netstandard')]
2121
[Alias("mt")]
2222
[Parameter(Mandatory=$true)]
2323
[string[]]$MultiTargets,
@@ -32,7 +32,7 @@ Param (
3232
)
3333

3434
if ($MultiTargets -eq 'all') {
35-
$MultiTargets = @('wasm', 'uwp', 'wasdk', 'wpf', 'linuxgtk', 'macos', 'ios', 'android', 'netstandard')
35+
$MultiTargets = @('wasm', 'uwp', 'wasdk', 'macos', 'ios', 'android', 'netstandard')
3636
}
3737

3838
$supportedComponents = @();

MultiTarget/GenerateAllProjectReferences.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ Param (
44

55
[Parameter(HelpMessage = "Only projects that support these targets will have references generated for use by deployable heads.")]
66
[Alias("mt")]
7-
[ValidateSet('wasm', 'uwp', 'wasdk', 'wpf', 'linuxgtk', 'macos', 'ios', 'android', 'netstandard')]
8-
[string[]]$MultiTargets = @("uwp", "wasdk", "wpf", "wasm", "linuxgtk", "macos", "ios", "android", "netstandard"),
7+
[ValidateSet('wasm', 'uwp', 'wasdk', 'macos', 'ios', 'android', 'netstandard')]
8+
[string[]]$MultiTargets = @("uwp", "wasdk", "wasm", "macos", "ios", "android", "netstandard"),
99

1010
[Parameter(HelpMessage = "The names of the components to generate references for. Defaults to all components.")]
1111
[string[]]$Components = @("all"),

0 commit comments

Comments
 (0)