diff --git a/docs/website/mtouch-errors.md b/docs/website/mtouch-errors.md index 1ccb08d319..6d5b5cb4ab 100644 --- a/docs/website/mtouch-errors.md +++ b/docs/website/mtouch-errors.md @@ -517,6 +517,14 @@ For instance: this condition occurs when an extension builds for ARMv7+llvm+thum Native code sharing requires that all the projects that share code use the same versions for all assemblies. +

MT0125: The --assembly-build-target command-line argument is ignored in the simulator.

+ +No action is required, this message is purely informational. + +

MT0126: Incremental builds have been disabled because incremental builds are not supported in the simulator.

+ +No action is required, this message is purely informational. +

MT0127: Incremental builds have been disabled because this version of Xamarin.iOS does not support incremental builds in projects that include more than one third-party binding libraries.

Incremental builds have been disabled automatically because this version of Xamarin.iOS does not always build projects with multiple third-party binding libraries correctly. diff --git a/msbuild/Xamarin.iOS.Tasks.Core/Tasks/MTouchTaskBase.cs b/msbuild/Xamarin.iOS.Tasks.Core/Tasks/MTouchTaskBase.cs index 3c74414a87..63fb5cd188 100644 --- a/msbuild/Xamarin.iOS.Tasks.Core/Tasks/MTouchTaskBase.cs +++ b/msbuild/Xamarin.iOS.Tasks.Core/Tasks/MTouchTaskBase.cs @@ -388,7 +388,7 @@ namespace Xamarin.iOS.Tasks args.Add ("--extension"); if (Debug) { - if (FastDev) + if (FastDev && !SdkIsSimulator) args.Add ("--fastdev"); args.Add ("--debug"); diff --git a/tests/mtouch/MTouch.cs b/tests/mtouch/MTouch.cs index 01e21553dd..8f50ddb9a9 100644 --- a/tests/mtouch/MTouch.cs +++ b/tests/mtouch/MTouch.cs @@ -1316,6 +1316,33 @@ namespace Xamarin } } + [Test] + public void MT0125 () + { + using (var mtouch = new MTouchTool ()) { + mtouch.CreateTemporaryApp (); + mtouch.CreateTemporaryCacheDirectory (); + mtouch.AssemblyBuildTargets.Add ("@all=framework"); + mtouch.Linker = MTouchLinker.DontLink; // faster test. + mtouch.Debug = true; // faster test, because it enables fastsim + mtouch.AssertExecute (MTouchAction.BuildSim, "build"); + mtouch.AssertWarning (125, "The --assembly-build-target command-line argument is ignored in the simulator."); + } + } + + [Test] + public void MT0126 () + { + using (var mtouch = new MTouchTool ()) { + mtouch.CreateTemporaryApp (); + mtouch.CreateTemporaryCacheDirectory (); + mtouch.FastDev = true; + mtouch.Linker = MTouchLinker.DontLink; // faster test. + mtouch.Debug = true; // faster test, because it enables fastsim + mtouch.AssertExecute (MTouchAction.BuildSim, "build"); + mtouch.AssertWarning (126, "Incremental builds have been disabled because incremental builds are not supported in the simulator."); + } + } [Test] public void MT0127 () diff --git a/tools/mtouch/Application.cs b/tools/mtouch/Application.cs index 552d67770d..b9c7e63311 100644 --- a/tools/mtouch/Application.cs +++ b/tools/mtouch/Application.cs @@ -298,8 +298,18 @@ namespace Xamarin.Bundler { Tuple sdk = null; List exceptions = null; - if (IsSimulatorBuild && !Embeddinator) + if (IsSimulatorBuild && !Embeddinator) { + if (assembly_build_targets.Count > 0) { + var first = assembly_build_targets.First (); + if (assembly_build_targets.Count == 1 && first.Key == "@all" && first.Value.Item1 == AssemblyBuildTarget.DynamicLibrary && first.Value.Item2 == string.Empty) { + ErrorHelper.Warning (126, "Incremental builds have been disabled because incremental builds are not supported in the simulator."); + } else { + ErrorHelper.Warning (125, "The --assembly-build-target command-line argument is ignored in the simulator."); + } + assembly_build_targets.Clear (); + } return; + } if (assembly_build_targets.Count == 0) { // The logic here must match the logic in 'ContainsGroupedSdkAssemblyBuildTarget' (because we will execute 'ContainsGroupedSdkAssemblyBuildTargets' before this is executed) diff --git a/tools/mtouch/error.cs b/tools/mtouch/error.cs index de0d1954cd..7845371aff 100644 --- a/tools/mtouch/error.cs +++ b/tools/mtouch/error.cs @@ -134,6 +134,8 @@ namespace Xamarin.Bundler { // the container app does not build for the ABI {1} (while the extension is building for this ABI). // the container app is building for the ABI {1}, which is not compatible with the extension's ABI ({2}). // the container app is referencing the assembly '{1}' from '{2}', while the extension references it from '{3}'. + // Warning MT0125 The --assembly-build-target command-line argument is ignored in the simulator. + // Warning MT0126 Incremental builds have been disabled because incremental builds are not supported in the simulator. // Warning MT0127 Incremental builds have been disabled because this version of Xamarin.iOS does not support incremental builds in projects that include more than one third-party binding libraries. // MT1xxx file copy / symlinks (project related) // MT10xx installer.cs / mtouch.cs