|
32 | 32 | <EmbedUntrackedSources>true</EmbedUntrackedSources> |
33 | 33 | <IncludePackageReferencesDuringMarkupCompilation>true</IncludePackageReferencesDuringMarkupCompilation> |
34 | 34 | <PublishRepositoryUrl>true</PublishRepositoryUrl> |
| 35 | + <!-- Legacy properties maintained for compatibility --> |
35 | 36 | <WindowsTargetFrameworks>net462;net472;net8.0-windows10.0.17763.0;net9.0-windows10.0.17763.0;net8.0-windows10.0.19041.0;net9.0-windows10.0.19041.0</WindowsTargetFrameworks> |
36 | 37 | <MobileTargetFrameworks>net8.0-android;net8.0-ios;net8.0-tvos;net8.0-macos;net8.0-maccatalyst;net9.0-android;net9.0-ios;net9.0-tvos;net9.0-macos;net9.0-maccatalyst</MobileTargetFrameworks> |
37 | 38 | <BaseTargetFrameworks>netstandard2.0;net8.0;net9.0</BaseTargetFrameworks> |
| 39 | + |
| 40 | + <!-- Granular Target Framework definitions for cross-platform builds --> |
| 41 | + <ReactiveUICoreTargets>netstandard2.0;net8.0;net9.0</ReactiveUICoreTargets> |
| 42 | + <ReactiveUIAndroidTargets>net9.0-android</ReactiveUIAndroidTargets> |
| 43 | + |
| 44 | + <!-- Platform-specific targets - always defined but only used on supported platforms --> |
| 45 | + <ReactiveUIFrameworkTargets>net462;net472</ReactiveUIFrameworkTargets> |
| 46 | + <ReactiveUIWindowsTargets>net8.0-windows10.0.17763.0;net9.0-windows10.0.17763.0;net8.0-windows10.0.19041.0;net9.0-windows10.0.19041.0</ReactiveUIWindowsTargets> |
| 47 | + <ReactiveUIWinUITargets>net8.0-windows10.0.19041.0;net9.0-windows10.0.19041.0</ReactiveUIWinUITargets> |
| 48 | + <ReactiveUIAppleTargets>net9.0-ios;net9.0-tvos;net9.0-macos;net9.0-maccatalyst</ReactiveUIAppleTargets> |
| 49 | + |
| 50 | + <!-- Windows-only targets (combines Framework + Windows targets) - conditioned --> |
| 51 | + <ReactiveUIWindowsOnlyTargets Condition="'$(IsWindows)' == 'true'">$(ReactiveUIFrameworkTargets);$(ReactiveUIWindowsTargets)</ReactiveUIWindowsOnlyTargets> |
| 52 | + <ReactiveUIWindowsOnlyTargets Condition="'$(IsWindows)' != 'true'">$(ReactiveUIWindowsTargets)</ReactiveUIWindowsOnlyTargets> |
| 53 | + |
| 54 | + <!-- Cross-platform platform detection properties for project-level conditional building --> |
| 55 | + <IsWindows>$([MSBuild]::IsOsPlatform('Windows'))</IsWindows> |
| 56 | + <IsMacOS>$([MSBuild]::IsOsPlatform('OSX'))</IsMacOS> |
| 57 | + <IsLinux>$([MSBuild]::IsOsPlatform('Linux'))</IsLinux> |
| 58 | + |
| 59 | + <!-- Modern targets for tests and benchmarks (no netstandard) --> |
| 60 | + <ReactiveUIModernTargets>net8.0;net9.0</ReactiveUIModernTargets> |
| 61 | + |
| 62 | + <!-- Enable building Windows-specific targets on non-Windows platforms --> |
| 63 | + <EnableWindowsTargeting>true</EnableWindowsTargeting> |
| 64 | + </PropertyGroup> |
| 65 | + |
| 66 | + <!-- Build final target framework list based on operating system --> |
| 67 | + <PropertyGroup> |
| 68 | + <!-- Start with core targets available on all platforms --> |
| 69 | + <ReactiveUIFinalTargetFrameworks>$(ReactiveUICoreTargets)</ReactiveUIFinalTargetFrameworks> |
| 70 | + |
| 71 | + <!-- Add Android targets (available on all platforms with Android SDK) --> |
| 72 | + <ReactiveUIFinalTargetFrameworks>$(ReactiveUIFinalTargetFrameworks);$(ReactiveUIAndroidTargets)</ReactiveUIFinalTargetFrameworks> |
| 73 | + |
| 74 | + <!-- Add Windows-specific targets (.NET Framework and Windows-specific TFMs) on Windows --> |
| 75 | + <ReactiveUIFinalTargetFrameworks Condition="$([MSBuild]::IsOsPlatform('Windows'))">$(ReactiveUIFinalTargetFrameworks);$(ReactiveUIFrameworkTargets);$(ReactiveUIWindowsTargets)</ReactiveUIFinalTargetFrameworks> |
| 76 | + |
| 77 | + <!-- Add Apple targets on macOS and Windows --> |
| 78 | + <ReactiveUIFinalTargetFrameworks Condition="$([MSBuild]::IsOsPlatform('Windows')) or $([MSBuild]::IsOsPlatform('OSX'))">$(ReactiveUIFinalTargetFrameworks);$(ReactiveUIAppleTargets)</ReactiveUIFinalTargetFrameworks> |
| 79 | + |
| 80 | + <!-- Final target frameworks for tests/benchmarks (modern .NET only, with platform-specific additions) --> |
| 81 | + <ReactiveUIFinalModernTargetFrameworks>$(ReactiveUIModernTargets)</ReactiveUIFinalModernTargetFrameworks> |
| 82 | + <ReactiveUIFinalModernTargetFrameworks Condition="$([MSBuild]::IsOsPlatform('Windows'))">$(ReactiveUIFinalModernTargetFrameworks);net472;$(ReactiveUIWindowsTargets)</ReactiveUIFinalModernTargetFrameworks> |
38 | 83 | <!-- Ensure all test runs use our runsettings to control cross-assembly parallelism --> |
39 | 84 | <RunSettingsFilePath>$(MSBuildThisFileDirectory)tests.runsettings</RunSettingsFilePath> |
40 | 85 | </PropertyGroup> |
|
0 commit comments