diff --git a/dotnet/targets/Xamarin.Shared.Sdk.targets b/dotnet/targets/Xamarin.Shared.Sdk.targets index 635443931e..fc6768aec3 100644 --- a/dotnet/targets/Xamarin.Shared.Sdk.targets +++ b/dotnet/targets/Xamarin.Shared.Sdk.targets @@ -137,6 +137,7 @@ PlatformAssembly=$(_PlatformAssemblyName).dll SdkVersion=$(_SdkVersion) TargetArchitectures=$(TargetArchitectures) + TargetFramework=$(_ComputedTargetFrameworkMoniker) Verbosity=$(_BundlerVerbosity) <_ExtraTrimmerArgs>$(_ExtraTrimmerArgs) --custom-data "LinkerOptionsFile=$(_CustomLinkerOptionsFile)" diff --git a/tools/dotnet-linker/Compat.cs b/tools/dotnet-linker/Compat.cs index 046ebec6f0..4250a85c54 100644 --- a/tools/dotnet-linker/Compat.cs +++ b/tools/dotnet-linker/Compat.cs @@ -37,10 +37,6 @@ namespace Xamarin.Bundler { { throw new NotImplementedException (); } - - public ApplePlatform Platform { - get { return Configuration.Platform; } - } } public partial class Driver { diff --git a/tools/dotnet-linker/LinkerConfiguration.cs b/tools/dotnet-linker/LinkerConfiguration.cs index c8bd2be1b2..3efa625a1f 100644 --- a/tools/dotnet-linker/LinkerConfiguration.cs +++ b/tools/dotnet-linker/LinkerConfiguration.cs @@ -120,6 +120,11 @@ namespace Xamarin.Linker { Abis.Add (a); } break; + case "TargetFramework": + if (!TargetFramework.TryParse (value, out var tf)) + throw new InvalidOperationException ($"Invalid TargetFramework '{value}' in {linker_file}"); + Driver.TargetFramework = TargetFramework.Parse (value); + break; case "Verbosity": if (!int.TryParse (value, out var verbosity)) throw new InvalidOperationException ($"Invalid Verbosity '{value}' in {linker_file}"); @@ -149,6 +154,9 @@ namespace Xamarin.Linker { default: break; } + + if (Driver.TargetFramework.Platform != Platform) + throw ErrorHelper.CreateError (99, "Inconsistent platforms. TargetFramework={0}, Platform={1}", Driver.TargetFramework.Platform, Platform); } public void Write ()