From 19cc29a2ae2427517c282c8a3212af34425e4586 Mon Sep 17 00:00:00 2001 From: Jeffrey Stedfast Date: Wed, 1 Mar 2017 10:22:41 -0500 Subject: [PATCH] [msbuild] sanity check TargetiOSDevice property for conflicts (#1799) Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=52847 If the device archs do not match the configuration, don't do a device-specific build. --- .../Tasks/ParseDeviceSpecificBuildInformationTaskBase.cs | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/msbuild/Xamarin.iOS.Tasks.Core/Tasks/ParseDeviceSpecificBuildInformationTaskBase.cs b/msbuild/Xamarin.iOS.Tasks.Core/Tasks/ParseDeviceSpecificBuildInformationTaskBase.cs index 5dd10046543e..1322c8e9ed86 100644 --- a/msbuild/Xamarin.iOS.Tasks.Core/Tasks/ParseDeviceSpecificBuildInformationTaskBase.cs +++ b/msbuild/Xamarin.iOS.Tasks.Core/Tasks/ParseDeviceSpecificBuildInformationTaskBase.cs @@ -107,8 +107,8 @@ public override bool Execute () return false; } - if (os.Value != targetOperatingSystem) { - // user is building the solution for another Apple device, do not build this project for a specific device + if (os.Value != targetOperatingSystem || (architectures & deviceArchitectures) == 0) { + // the TargetiOSDevice property conflicts with the build configuration (*.user file?), do not build this project for a specific device DeviceSpecificIntermediateOutputPath = IntermediateOutputPath; DeviceSpecificOutputPath = OutputPath; TargetArchitectures = Architectures; @@ -118,11 +118,6 @@ public override bool Execute () return !Log.HasLoggedErrors; } - if ((architectures & deviceArchitectures) == 0) { - Log.LogError ("The target {0} device architecture {1} is not supported by the build configuration: {2}", targetOperatingSystem, architectures, deviceArchitectures); - return false; - } - for (int bit = 0; bit < 32; bit++) { var architecture = (TargetArchitecture) (1 << bit);