[msbuild] Xcode10 changed the copySceneKitAssets command-line arguments (#4469)

Fixes https://github.com/xamarin/xamarin-macios/issues/4467
This commit is contained in:
Jeffrey Stedfast 2018-07-24 14:05:07 -04:00 коммит произвёл Sebastien Pouliot
Родитель 26b500ab27
Коммит 21936948bb
6 изменённых файлов: 50 добавлений и 24 удалений

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

@ -599,6 +599,7 @@ Copyright (C) 2014 Xamarin. All rights reserved.
IntermediateOutputPath="$(IntermediateOutputPath)"
ProjectDir="$(MSBuildProjectDirectory)"
ResourcePrefix="$(XamMacResourcePrefix)"
SdkPlatform="MacOSX"
SdkDevPath="$(_SdkDevPath)"
SdkRoot="$(_SdkRoot)"
SdkVersion="$(MacOSXSdkVersion)">

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

@ -0,0 +1,27 @@
namespace Xamarin.MacDev.Tasks
{
public static class PlatformUtils
{
public static string GetTargetPlatform (string sdkPlatform, bool isWatchApp)
{
switch (sdkPlatform) {
case "iPhoneSimulator":
return isWatchApp ? "watchsimulator" : "iphonesimulator";
case "iPhoneOS":
return isWatchApp ? "watchos" : "iphoneos";
case "MacOSX":
return "macosx";
case "WatchSimulator":
return "watchsimulator";
case "WatchOS":
return "watchos";
case "AppleTVSimulator":
return "appletvsimulator";
case "AppleTVOS":
return "appletvos";
}
return null;
}
}
}

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

@ -178,29 +178,10 @@ namespace Xamarin.MacDev.Tasks
args.Add ("--minimum-deployment-target", minimumDeploymentTarget);
switch (SdkPlatform) {
case "iPhoneSimulator":
args.Add ("--platform", IsWatchApp ? "watchsimulator" : "iphonesimulator");
break;
case "iPhoneOS":
args.Add ("--platform", IsWatchApp ? "watchos" : "iphoneos");
break;
case "MacOSX":
args.Add ("--platform", "macosx");
break;
case "WatchSimulator":
args.Add ("--platform", "watchsimulator");
break;
case "WatchOS":
args.Add ("--platform", "watchos");
break;
case "AppleTVSimulator":
args.Add ("--platform", "appletvsimulator");
break;
case "AppleTVOS":
args.Add ("--platform", "appletvos");
break;
}
var platform = PlatformUtils.GetTargetPlatform (SdkPlatform, IsWatchApp);
if (platform != null)
args.Add ("--platform", platform);
}
IEnumerable<ITaskItem> GetCompiledBundleResources (PDictionary output, string intermediateBundleDir)

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

@ -21,6 +21,8 @@ namespace Xamarin.MacDev.Tasks
[Required]
public string IntermediateOutputPath { get; set; }
public bool IsWatchApp { get; set; }
[Required]
public string ProjectDir { get; set; }
@ -33,6 +35,9 @@ namespace Xamarin.MacDev.Tasks
[Required]
public string SdkDevPath { get; set; }
[Required]
public string SdkPlatform { get; set; }
[Required]
public string SdkRoot { get; set; }
@ -106,7 +111,16 @@ namespace Xamarin.MacDev.Tasks
args.Add ("-o");
args.AddQuoted (Path.GetFullPath (output));
args.AddQuotedFormat ("--sdk-root={0}", SdkRoot);
args.AddQuotedFormat ("--target-version-{0}={1}", OperatingSystem, SdkVersion);
if (AppleSdkSettings.XcodeVersion.Major >= 10) {
var platform = PlatformUtils.GetTargetPlatform (SdkPlatform, IsWatchApp);
if (platform != null)
args.Add ("--target-platform", platform);
args.AddQuotedFormat ("--target-version={0}", SdkVersion);
} else {
args.AddQuotedFormat ("--target-version-{0}={1}", OperatingSystem, SdkVersion);
}
args.AddQuotedFormat ("--target-build-dir={0}", Path.GetFullPath (intermediate));
var startInfo = GetProcessStartInfo (environment, GetFullPathToTool (), args.ToString ());

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

@ -54,6 +54,7 @@
<!-- Mono has a different implementation of the Move task, so when building on a Mac we need to include XBuildMoveTaskBase.cs -->
<Compile Include="MsBuildTasks\MoveTaskBase.cs" Condition="'$(OS)' == 'Windows_NT'" />
<Compile Include="MsBuildTasks\XBuildMoveTaskBase.cs" Condition="'$(OS)' != 'Windows_NT'" />
<Compile Include="PlatformUtils.cs" />
</ItemGroup>
<ItemGroup>
<Compile Include="MsBuildTasks\CopyBase.cs" />

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

@ -1285,6 +1285,8 @@ Copyright (C) 2013-2016 Xamarin. All rights reserved.
IntermediateOutputPath="$(DeviceSpecificIntermediateOutputPath)"
ProjectDir="$(MSBuildProjectDirectory)"
ResourcePrefix="$(IPhoneResourcePrefix)"
IsWatchApp="$(IsWatchApp)"
SdkPlatform="$(_SdkPlatform)"
SdkDevPath="$(_SdkDevPath)"
SdkRoot="$(_SdkRoot)"
SdkVersion="$(MtouchSdkVersion)">