[MTouch] If we are building a shared code extension, do not build the msym dir. #60415 (#3016)

* [MTouch] If we are building a shared code extension, do not build the msym dir.
This commit is contained in:
Manuel de la Pena 2017-11-17 18:24:09 +01:00 коммит произвёл GitHub
Родитель 976eb7b51e
Коммит 1a7712f595
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 66 добавлений и 0 удалений

Просмотреть файл

@ -1014,6 +1014,69 @@ public class B : A {}
}
}
[Test]
public void MT0095_SharedCode ()
{
using (var exttool = new MTouchTool ()) {
exttool.Profile = Profile.iOS;
exttool.CreateTemporaryCacheDirectory ();
exttool.Linker = MTouchLinker.LinkAll;
exttool.CreateTemporaryServiceExtension ();
exttool.MSym = true;
exttool.Debug = false;
exttool.AssertExecute (MTouchAction.BuildDev, "build extension");
using (var apptool = new MTouchTool ()) {
apptool.Profile = Profile.iOS;
apptool.MSym = true;
apptool.Debug = false;
apptool.CreateTemporaryCacheDirectory ();
apptool.CreateTemporaryApp ();
apptool.AppExtensions.Add (exttool);
apptool.Linker = MTouchLinker.LinkAll;
apptool.AssertExecute (MTouchAction.BuildDev, "build app");
Assert.IsTrue(Directory.Exists(Path.Combine(apptool.Cache, "Build", "Msym")), "App Msym dir");
Assert.IsFalse(Directory.Exists(Path.Combine(exttool.Cache, "Build", "Msym")), "Extenson Msym dir");
exttool.AssertNoWarnings();
apptool.AssertNoWarnings();
}
}
}
[Test]
public void MT0095_NotSharedCode ()
{
using (var exttool = new MTouchTool ()) {
exttool.Profile = Profile.iOS;
exttool.CreateTemporaryCacheDirectory ();
exttool.Linker = MTouchLinker.LinkAll;
exttool.CustomArguments = new string [] { "--nodevcodeshare" };
exttool.CreateTemporaryServiceExtension ();
exttool.MSym = true;
exttool.Debug = false;
exttool.AssertExecute (MTouchAction.BuildDev, "build extension");
using (var apptool = new MTouchTool ()) {
apptool.Profile = Profile.iOS;
apptool.MSym = true;
apptool.Debug = false;
apptool.CreateTemporaryCacheDirectory ();
apptool.CreateTemporaryApp ();
apptool.AppExtensions.Add (exttool);
apptool.Linker = MTouchLinker.LinkAll;
apptool.CustomArguments = new string [] { "--nodevcodeshare" };
apptool.AssertExecute (MTouchAction.BuildDev, "build app");
Assert.IsTrue(Directory.Exists(Path.Combine(apptool.Cache, "Build", "Msym")), "App Msym dir");
Assert.IsTrue(Directory.Exists(Path.Combine(exttool.Cache, "Build", "Msym")), "Extenson Msym dir");
exttool.AssertNoWarnings();
apptool.AssertNoWarnings();
}
}
}
[Test]
public void MT0096 ()
{

Просмотреть файл

@ -2001,6 +2001,9 @@ namespace Xamarin.Bundler {
if (!EnableMSym)
return;
if (IsExtension && IsCodeShared) // we already have the data from the app
return;
var target_directory = string.Format ("{0}.mSYM", AppDirectory);
if (!Directory.Exists (target_directory))
Directory.CreateDirectory (target_directory);