[msbuild] Pass the entire TargetFrameworkMoniker to tasks instead of just TargetFrameworkIdentifier/TargetFrameworkVersion. (#8048)
When .NET 5 comes, the TargetFrameworkMoniker will change, and we need the entire moniker to distinguish between various platforms. So change our msbuild code to consume the entire TargetFrameworkMoniker, so that we have all the information we need when we need it. Also redirect everything through an intermediate _ComputedTargetFrameworkMoniker property, so that the target framework can be overridden without affecting any other code. This becomes necessary during the initial implementation phase, because we don't have a .NET version to test with yet that can give us the new target frameworks. Eventually it should be possible to remove this intermediate variable
This commit is contained in:
Родитель
1b72c009d2
Коммит
26ad52257e
|
@ -15,6 +15,7 @@ using Microsoft.Build.Utilities;
|
|||
|
||||
using Xamarin.MacDev.Tasks;
|
||||
using Xamarin.MacDev;
|
||||
using Xamarin.Utils;
|
||||
|
||||
namespace Xamarin.Mac.Tasks
|
||||
{
|
||||
|
@ -42,10 +43,13 @@ namespace Xamarin.Mac.Tasks
|
|||
public string HttpClientHandler { get; set; }
|
||||
|
||||
[Required]
|
||||
public string TargetFrameworkIdentifier { get; set; }
|
||||
public string TargetFrameworkMoniker { get; set; }
|
||||
|
||||
[Required]
|
||||
public string TargetFrameworkVersion { get; set; }
|
||||
public string TargetFrameworkIdentifier { get { return TargetFramework.Identifier; } }
|
||||
|
||||
public TargetFramework TargetFramework { get { return TargetFramework.Parse (TargetFrameworkMoniker); } }
|
||||
|
||||
public string TargetFrameworkVersion { get { return TargetFramework.Version.ToString (); } }
|
||||
|
||||
[Required]
|
||||
public string SdkRoot { get; set; }
|
||||
|
|
|
@ -26,6 +26,11 @@ Copyright (C) 2013-2014 Xamarin. All rights reserved.
|
|||
<_XamarinCommonPropsHasBeenImported>true</_XamarinCommonPropsHasBeenImported>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- Get the TargetFrameworkMoniker and store it in our own variable so that it's overridable while only affecting the parts of the build that we care about.
|
||||
This is overridability is a workaround while we wait for .NET 5 to be able to give us the TFM we're supposed to get during the build. -->
|
||||
<_ComputedTargetFrameworkMoniker Condition="'$(_ComputedTargetFrameworkMoniker)' == ''">$(TargetFrameworkMoniker)</_ComputedTargetFrameworkMoniker>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Story-time! MigrateToNewXMIdentifier is special because it un-does a lie we started telling from the
|
||||
beginning of Full (called Xamarin.Mac 4.5 back then). Back then, we released Modern (called Mobile) and
|
||||
|
|
|
@ -337,7 +337,7 @@ Copyright (C) 2014 Xamarin. All rights reserved.
|
|||
IntermediateOutputPath="$(IntermediateOutputPath)"
|
||||
AppManifest="$(_AppManifest)"
|
||||
ProjectDir="$(MSBuildProjectDirectory)"
|
||||
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
|
||||
TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)"
|
||||
ResourcePrefix="$(XamMacResourcePrefix)"
|
||||
SdkDevPath="$(_SdkDevPath)"
|
||||
SdkIsSimulator="false"
|
||||
|
@ -536,8 +536,7 @@ Copyright (C) 2014 Xamarin. All rights reserved.
|
|||
OutputPath="$(OutputPath)"
|
||||
ApplicationName="$(_AppBundleName)"
|
||||
ApplicationAssembly="$(OutputPath)$(TargetName)$(TargetExt)"
|
||||
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
|
||||
TargetFrameworkVersion="$(TargetFrameworkVersion)"
|
||||
TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)"
|
||||
UseXamMacFullFramework="$(UseXamMacFullFramework)"
|
||||
Architecture="$(XamMacArch)"
|
||||
ArchiveSymbols="$(MonoSymbolArchive)"
|
||||
|
@ -591,7 +590,7 @@ Copyright (C) 2014 Xamarin. All rights reserved.
|
|||
SdkRoot="$(_SdkRoot)"
|
||||
SdkDevPath="$(_SdkDevPath)"
|
||||
SdkVersion="$(MacOSXSdkVersion)"
|
||||
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
|
||||
TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)"
|
||||
IntermediateOutputPath="$(IntermediateOutputPath)"
|
||||
InputScene="%(_ColladaAssetWithLogicalName.Identity)"
|
||||
OutputScene="$(IntermediateOutputPath)%(_ColladaAssetWithLogicalName.LogicalName)">
|
||||
|
@ -679,7 +678,7 @@ Copyright (C) 2014 Xamarin. All rights reserved.
|
|||
ToolPath="$(CopySceneKitAssetsPath)"
|
||||
SceneKitAssets="@(SceneKitAsset)"
|
||||
IntermediateOutputPath="$(IntermediateOutputPath)"
|
||||
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
|
||||
TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)"
|
||||
ProjectDir="$(MSBuildProjectDirectory)"
|
||||
ResourcePrefix="$(XamMacResourcePrefix)"
|
||||
SdkPlatform="MacOSX"
|
||||
|
|
|
@ -109,7 +109,7 @@ Copyright (C) 2014 Xamarin Inc. All rights reserved.
|
|||
ProcessEnums="$(ProcessEnums)"
|
||||
ProjectDir="$(MSBuildProjectDirectory)"
|
||||
References="@(ReferencePath);@(BTouchReferencePath)"
|
||||
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
|
||||
TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)"
|
||||
FrameworkRoot="$(XamarinMacFrameworkRoot)"
|
||||
BTouchToolPath="$(BTouchToolPath)"
|
||||
BTouchToolExe="$(BTouchToolExe)"
|
||||
|
|
|
@ -24,6 +24,12 @@ Copyright (C) 2014 Xamarin. All rights reserved.
|
|||
<_XamarinCommonBindingPropsHasBeenImported>true</_XamarinCommonBindingPropsHasBeenImported>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- Get the TargetFrameworkMoniker and store it in our own variable so that it's overridable while only affecting the parts of the build that we care about.
|
||||
This is overridability is a workaround while we wait for .NET 5 to be able to give us the TFM we're supposed to get during the build. -->
|
||||
<_ComputedTargetFrameworkMoniker Condition="'$(_ComputedTargetFrameworkMoniker)' == ''">$(TargetFrameworkMoniker)</_ComputedTargetFrameworkMoniker>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<BaseLibDllPath>$(MacBclPath)/Xamarin.Mac.dll</BaseLibDllPath>
|
||||
<BTouchToolPath>$(XamarinMacFrameworkRoot)/bin/</BTouchToolPath>
|
||||
|
|
|
@ -31,27 +31,14 @@ namespace Xamarin.MacDev.Tasks
|
|||
{
|
||||
public static class PlatformFrameworkHelper
|
||||
{
|
||||
public static ApplePlatform GetFramework (string targetFrameworkIdentifier)
|
||||
public static ApplePlatform GetFramework (string targetFrameworkMoniker)
|
||||
{
|
||||
switch (targetFrameworkIdentifier) {
|
||||
case "Xamarin.Mac":
|
||||
case "MonoMac":
|
||||
return ApplePlatform.MacOSX;
|
||||
case "Xamarin.iOS":
|
||||
case "MonoTouch":
|
||||
return ApplePlatform.iOS;
|
||||
case "Xamarin.WatchOS":
|
||||
return ApplePlatform.WatchOS;
|
||||
case "Xamarin.TVOS":
|
||||
return ApplePlatform.TVOS;
|
||||
default:
|
||||
throw new InvalidOperationException ("Unknown TargetFrameworkIdentifier: " + targetFrameworkIdentifier);
|
||||
}
|
||||
return TargetFramework.Parse (targetFrameworkMoniker).Platform;
|
||||
}
|
||||
|
||||
public static string GetOperatingSystem (string targetFrameworkIdentifier)
|
||||
public static string GetOperatingSystem (string targetFrameworkMoniker)
|
||||
{
|
||||
var framework = PlatformFrameworkHelper.GetFramework (targetFrameworkIdentifier);
|
||||
var framework = PlatformFrameworkHelper.GetFramework (targetFrameworkMoniker);
|
||||
switch (framework) {
|
||||
case ApplePlatform.WatchOS:
|
||||
return "watchos";
|
||||
|
@ -62,7 +49,7 @@ namespace Xamarin.MacDev.Tasks
|
|||
case ApplePlatform.iOS:
|
||||
return "ios";
|
||||
default:
|
||||
throw new InvalidOperationException (string.Format ("Unknown target framework {0} for target framework identifier {2}.", framework, targetFrameworkIdentifier));
|
||||
throw new InvalidOperationException (string.Format ("Unknown target framework {0} for target framework moniker {2}.", framework, targetFrameworkMoniker));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,11 +26,13 @@ namespace Xamarin.MacDev.Tasks
|
|||
public string FilePath { get; set; }
|
||||
|
||||
protected ApplePlatform FileType {
|
||||
get { return PlatformFrameworkHelper.GetFramework (TargetFrameworkIdentifier); }
|
||||
get { return PlatformFrameworkHelper.GetFramework (TargetFrameworkMoniker); }
|
||||
}
|
||||
|
||||
public TargetFramework TargetFramework { get { return TargetFramework.Parse (TargetFrameworkMoniker); } }
|
||||
|
||||
[Required]
|
||||
public string TargetFrameworkIdentifier { get; set; }
|
||||
public string TargetFrameworkMoniker { get; set; }
|
||||
|
||||
protected override string ToolName {
|
||||
get { return "altool"; }
|
||||
|
|
|
@ -7,6 +7,8 @@ using System.Collections.Generic;
|
|||
using Microsoft.Build.Framework;
|
||||
using Microsoft.Build.Utilities;
|
||||
|
||||
using Xamarin.Utils;
|
||||
|
||||
namespace Xamarin.MacDev.Tasks {
|
||||
public abstract class BTouchTaskBase : ToolTask {
|
||||
|
||||
|
@ -63,8 +65,12 @@ namespace Xamarin.MacDev.Tasks {
|
|||
|
||||
public ITaskItem[] Sources { get; set; }
|
||||
|
||||
public string TargetFrameworkIdentifier { get { return TargetFramework.Identifier; } }
|
||||
|
||||
public TargetFramework TargetFramework { get { return TargetFramework.Parse (TargetFrameworkMoniker); } }
|
||||
|
||||
[Required]
|
||||
public string TargetFrameworkIdentifier { get; set; }
|
||||
public string TargetFrameworkMoniker { get; set; }
|
||||
|
||||
protected override string ToolName {
|
||||
get { return Path.GetFileNameWithoutExtension (ToolExe); }
|
||||
|
|
|
@ -7,6 +7,7 @@ using Microsoft.Build.Framework;
|
|||
using Microsoft.Build.Utilities;
|
||||
|
||||
using Xamarin.MacDev;
|
||||
using Xamarin.Utils;
|
||||
|
||||
namespace Xamarin.MacDev.Tasks
|
||||
{
|
||||
|
@ -47,8 +48,10 @@ namespace Xamarin.MacDev.Tasks
|
|||
[Required]
|
||||
public string SdkVersion { get; set; }
|
||||
|
||||
public TargetFramework TargetFramework { get { return TargetFramework.Parse (TargetFrameworkMoniker); } }
|
||||
|
||||
[Required]
|
||||
public string TargetFrameworkIdentifier { get; set; }
|
||||
public string TargetFrameworkMoniker { get; set; }
|
||||
|
||||
public string ToolExe {
|
||||
get { return toolExe ?? ToolName; }
|
||||
|
@ -72,7 +75,7 @@ namespace Xamarin.MacDev.Tasks
|
|||
|
||||
protected virtual string OperatingSystem {
|
||||
get {
|
||||
return PlatformFrameworkHelper.GetOperatingSystem (TargetFrameworkIdentifier);
|
||||
return PlatformFrameworkHelper.GetOperatingSystem (TargetFrameworkMoniker);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ using Microsoft.Build.Framework;
|
|||
using Microsoft.Build.Utilities;
|
||||
|
||||
using Xamarin.MacDev;
|
||||
using Xamarin.MacDev.Tasks;
|
||||
using Xamarin.Utils;
|
||||
|
||||
namespace Xamarin.MacDev.Tasks
|
||||
|
@ -42,8 +43,10 @@ namespace Xamarin.MacDev.Tasks
|
|||
[Required]
|
||||
public ITaskItem SourceFile { get; set; }
|
||||
|
||||
public TargetFramework TargetFramework { get { return TargetFramework.Parse (TargetFrameworkMoniker); } }
|
||||
|
||||
[Required]
|
||||
public string TargetFrameworkIdentifier { get; set; }
|
||||
public string TargetFrameworkMoniker { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -56,7 +59,7 @@ namespace Xamarin.MacDev.Tasks
|
|||
|
||||
protected virtual string OperatingSystem {
|
||||
get {
|
||||
switch (PlatformFrameworkHelper.GetFramework (TargetFrameworkIdentifier)) {
|
||||
switch (PlatformFrameworkHelper.GetFramework (TargetFrameworkMoniker)) {
|
||||
case ApplePlatform.WatchOS:
|
||||
return SdkIsSimulator ? "watchos-simulator" : "watchos";
|
||||
case ApplePlatform.TVOS:
|
||||
|
@ -66,7 +69,7 @@ namespace Xamarin.MacDev.Tasks
|
|||
case ApplePlatform.iOS:
|
||||
return SdkIsSimulator ? "iphonesimulator" : "ios";
|
||||
default:
|
||||
Log.LogError ($"Unknown target framework identifier: {TargetFrameworkIdentifier}.");
|
||||
Log.LogError ($"Unknown target framework moniker: {TargetFrameworkMoniker}.");
|
||||
return string.Empty;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,7 +40,7 @@ namespace Xamarin.MacDev.Tasks
|
|||
}
|
||||
|
||||
[Required]
|
||||
public string TargetFrameworkIdentifier { get; set; }
|
||||
public string TargetFrameworkMoniker { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -50,7 +50,7 @@ namespace Xamarin.MacDev.Tasks
|
|||
|
||||
protected virtual string OperatingSystem {
|
||||
get {
|
||||
return PlatformFrameworkHelper.GetOperatingSystem (TargetFrameworkIdentifier);
|
||||
return PlatformFrameworkHelper.GetOperatingSystem (TargetFrameworkMoniker);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -59,9 +59,9 @@ namespace Xamarin.iOS.Tasks
|
|||
}
|
||||
}
|
||||
|
||||
public static AppleSdk GetSdk (string targetFrameworkIdentifier)
|
||||
public static AppleSdk GetSdk (string targetFrameworkMoniker)
|
||||
{
|
||||
return GetSdk (PlatformFrameworkHelper.GetFramework (targetFrameworkIdentifier));
|
||||
return GetSdk (PlatformFrameworkHelper.GetFramework (targetFrameworkMoniker));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,8 +31,10 @@ namespace Xamarin.iOS.Tasks
|
|||
|
||||
public string TargetArchitectures { get; set; }
|
||||
|
||||
public TargetFramework TargetFramework { get { return TargetFramework.Parse (TargetFrameworkMoniker); } }
|
||||
|
||||
[Required]
|
||||
public string TargetFrameworkIdentifier { get; set; }
|
||||
public string TargetFrameworkMoniker { get; set; }
|
||||
|
||||
[Required]
|
||||
public bool Debug { get; set; }
|
||||
|
@ -44,7 +46,7 @@ namespace Xamarin.iOS.Tasks
|
|||
public string ResourceRules { get; set; }
|
||||
|
||||
public ApplePlatform Framework {
|
||||
get { return PlatformFrameworkHelper.GetFramework (TargetFrameworkIdentifier); }
|
||||
get { return PlatformFrameworkHelper.GetFramework (TargetFrameworkMoniker); }
|
||||
}
|
||||
|
||||
TargetArchitecture architectures;
|
||||
|
|
|
@ -5,16 +5,18 @@ using System.Collections.Generic;
|
|||
using Microsoft.Build.Framework;
|
||||
using Microsoft.Build.Utilities;
|
||||
|
||||
using Xamarin.MacDev;
|
||||
using Xamarin.Utils;
|
||||
|
||||
namespace Xamarin.iOS.Tasks
|
||||
{
|
||||
public abstract class CompileEntitlementsTaskBase : Xamarin.MacDev.Tasks.CompileEntitlementsTaskBase
|
||||
{
|
||||
public bool SdkIsSimulator { get; set; }
|
||||
|
||||
public TargetFramework TargetFramework { get { return TargetFramework.Parse (TargetFrameworkMoniker); } }
|
||||
|
||||
[Required]
|
||||
public string TargetFrameworkIdentifier { get; set; }
|
||||
public string TargetFrameworkMoniker { get; set; }
|
||||
|
||||
static readonly HashSet<string> allowedProvisioningKeys = new HashSet<string> {
|
||||
"application-identifier",
|
||||
|
@ -40,7 +42,7 @@ namespace Xamarin.iOS.Tasks
|
|||
|
||||
protected override string DefaultEntitlementsPath {
|
||||
get {
|
||||
return Path.Combine (IPhoneSdks.GetSdk (TargetFrameworkIdentifier).GetSdkPath (SdkVersion, false), "Entitlements.plist");
|
||||
return Path.Combine (IPhoneSdks.GetSdk (TargetFrameworkMoniker).GetSdkPath (SdkVersion, false), "Entitlements.plist");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -23,8 +23,10 @@ namespace Xamarin.iOS.Tasks
|
|||
get; set;
|
||||
}
|
||||
|
||||
public TargetFramework TargetFramework { get { return TargetFramework.Parse (TargetFrameworkMoniker); } }
|
||||
|
||||
[Required]
|
||||
public string TargetFrameworkIdentifier {
|
||||
public string TargetFrameworkMoniker {
|
||||
get; set;
|
||||
}
|
||||
|
||||
|
@ -78,7 +80,7 @@ namespace Xamarin.iOS.Tasks
|
|||
#endregion Outputs
|
||||
|
||||
public ApplePlatform Framework {
|
||||
get { return PlatformFrameworkHelper.GetFramework (TargetFrameworkIdentifier); }
|
||||
get { return PlatformFrameworkHelper.GetFramework (TargetFrameworkMoniker); }
|
||||
}
|
||||
|
||||
public AppleSdk CurrentSdk {
|
||||
|
@ -120,14 +122,6 @@ namespace Xamarin.iOS.Tasks
|
|||
return !Log.HasLoggedErrors;
|
||||
}
|
||||
|
||||
bool IsWatchFramework {
|
||||
get { return TargetFrameworkIdentifier == "Xamarin.WatchOS"; }
|
||||
}
|
||||
|
||||
bool IsTVOSFramework {
|
||||
get { return TargetFrameworkIdentifier == "Xamarin.TVOS"; }
|
||||
}
|
||||
|
||||
void EnsureTVOSSdkPath ()
|
||||
{
|
||||
var currentSdk = IPhoneSdks.GetSdk (Framework);
|
||||
|
|
|
@ -9,17 +9,19 @@ namespace Xamarin.iOS.Tasks
|
|||
{
|
||||
public abstract class DetectSigningIdentityTaskBase : Xamarin.MacDev.Tasks.DetectSigningIdentityTaskBase
|
||||
{
|
||||
public TargetFramework TargetFramework { get { return TargetFramework.Parse (TargetFrameworkMoniker); } }
|
||||
|
||||
[Required]
|
||||
public string TargetFrameworkIdentifier { get; set; }
|
||||
public string TargetFrameworkMoniker { get; set; }
|
||||
|
||||
static readonly string[] directDistributionPrefixes = new string[0];
|
||||
|
||||
protected override string[] DevelopmentPrefixes { get { return IPhoneCertificate.DevelopmentPrefixes; } }
|
||||
protected override string[] DirectDistributionPrefixes { get { return directDistributionPrefixes; } }
|
||||
protected override string[] AppStoreDistributionPrefixes { get { return IPhoneCertificate.DistributionPrefixes; } }
|
||||
protected override string DeveloperRoot { get { return IPhoneSdks.GetSdk (TargetFrameworkIdentifier).DeveloperRoot; } }
|
||||
protected override string DeveloperRoot { get { return IPhoneSdks.GetSdk (TargetFrameworkMoniker).DeveloperRoot; } }
|
||||
protected override ApplePlatform Framework {
|
||||
get { return PlatformFrameworkHelper.GetFramework (TargetFrameworkIdentifier); }
|
||||
get { return PlatformFrameworkHelper.GetFramework (TargetFrameworkMoniker); }
|
||||
}
|
||||
protected override string PlatformName {
|
||||
get {
|
||||
|
|
|
@ -149,11 +149,14 @@ namespace Xamarin.iOS.Tasks
|
|||
[Required]
|
||||
public string SymbolsList { get; set; }
|
||||
|
||||
[Required]
|
||||
public string TargetFrameworkIdentifier { get; set; }
|
||||
public string TargetFrameworkIdentifier { get { return TargetFramework.Identifier; } }
|
||||
|
||||
public TargetFramework TargetFramework { get { return TargetFramework.Parse (TargetFrameworkMoniker); } }
|
||||
|
||||
public string TargetFrameworkVersion { get { return TargetFramework.Version.ToString (); } }
|
||||
|
||||
[Required]
|
||||
public string TargetFrameworkVersion { get; set; }
|
||||
public string TargetFrameworkMoniker { get; set; }
|
||||
|
||||
[Required]
|
||||
public bool UseLlvm { get; set; }
|
||||
|
@ -187,7 +190,7 @@ namespace Xamarin.iOS.Tasks
|
|||
#endregion
|
||||
|
||||
public ApplePlatform Framework {
|
||||
get { return PlatformFrameworkHelper.GetFramework (TargetFrameworkIdentifier); }
|
||||
get { return PlatformFrameworkHelper.GetFramework (TargetFrameworkMoniker); }
|
||||
}
|
||||
|
||||
protected override string ToolName {
|
||||
|
|
|
@ -25,8 +25,10 @@ namespace Xamarin.iOS.Tasks
|
|||
[Required]
|
||||
public string OutputPath { get; set; }
|
||||
|
||||
public TargetFramework TargetFramework { get { return TargetFramework.Parse (TargetFrameworkMoniker); } }
|
||||
|
||||
[Required]
|
||||
public string TargetFrameworkIdentifier { get; set; }
|
||||
public string TargetFrameworkMoniker { get; set; }
|
||||
|
||||
[Required]
|
||||
public string TargetiOSDevice { get; set; }
|
||||
|
@ -59,7 +61,7 @@ namespace Xamarin.iOS.Tasks
|
|||
PDictionary plist, device;
|
||||
PString value, os;
|
||||
|
||||
switch (PlatformFrameworkHelper.GetFramework (TargetFrameworkIdentifier)) {
|
||||
switch (PlatformFrameworkHelper.GetFramework (TargetFrameworkMoniker)) {
|
||||
case ApplePlatform.WatchOS:
|
||||
targetOperatingSystem = "watchOS";
|
||||
break;
|
||||
|
|
|
@ -6,6 +6,7 @@ using Microsoft.Build.Utilities;
|
|||
|
||||
using Xamarin.MacDev.Tasks;
|
||||
using Xamarin.MacDev;
|
||||
using Xamarin.Utils;
|
||||
|
||||
namespace Xamarin.iOS.Tasks
|
||||
{
|
||||
|
@ -22,8 +23,10 @@ namespace Xamarin.iOS.Tasks
|
|||
[Required]
|
||||
public string SdkVersion { get; set; }
|
||||
|
||||
public TargetFramework TargetFramework { get { return TargetFramework.Parse (TargetFrameworkMoniker); } }
|
||||
|
||||
[Required]
|
||||
public string TargetFrameworkIdentifier { get; set; }
|
||||
public string TargetFrameworkMoniker { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -36,13 +39,13 @@ namespace Xamarin.iOS.Tasks
|
|||
|
||||
bool IsWatchFramework {
|
||||
get {
|
||||
return TargetFrameworkIdentifier == "Xamarin.WatchOS";
|
||||
return PlatformFrameworkHelper.GetFramework (TargetFrameworkMoniker) == Utils.ApplePlatform.WatchOS;
|
||||
}
|
||||
}
|
||||
|
||||
public override bool Execute ()
|
||||
{
|
||||
var currentSdk = IPhoneSdks.GetSdk (TargetFrameworkIdentifier);
|
||||
var currentSdk = IPhoneSdks.GetSdk (TargetFrameworkMoniker);
|
||||
IPhoneSdkVersion version;
|
||||
string sdk_path;
|
||||
|
||||
|
|
|
@ -24,12 +24,12 @@ namespace Xamarin.iOS.Tasks
|
|||
public bool SdkIsSimulator { get; set; }
|
||||
|
||||
[Required]
|
||||
public string TargetFrameworkIdentifier { get; set; }
|
||||
public string TargetFrameworkMoniker { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
public ApplePlatform Framework {
|
||||
get { return PlatformFrameworkHelper.GetFramework (TargetFrameworkIdentifier); }
|
||||
get { return PlatformFrameworkHelper.GetFramework (TargetFrameworkMoniker); }
|
||||
}
|
||||
|
||||
void ValidateAppExtension (string path, string mainBundleIdentifier, string mainShortVersionString, string mainVersion)
|
||||
|
|
|
@ -58,7 +58,7 @@ Copyright (C) 2015-2016 Xamarin. All rights reserved.
|
|||
SessionId="$(BuildSessionId)"
|
||||
SdkVersion="$(MtouchSdkVersion)"
|
||||
SdkIsSimulator="$(_SdkIsSimulator)"
|
||||
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
|
||||
TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)"
|
||||
>
|
||||
<Output TaskParameter="NativeWatchApp" PropertyName="_NativeWatchApp" />
|
||||
</ResolveNativeWatchApp>
|
||||
|
|
|
@ -24,6 +24,12 @@ Copyright (C) 2013-2016 Xamarin. All rights reserved.
|
|||
<_XamarinCommonPropsHasBeenImported>true</_XamarinCommonPropsHasBeenImported>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- Get the TargetFrameworkMoniker and store it in our own variable so that it's overridable while only affecting the parts of the build that we care about.
|
||||
This is overridability is a workaround while we wait for .NET 5 to be able to give us the TFM we're supposed to get during the build. -->
|
||||
<_ComputedTargetFrameworkMoniker Condition="'$(_ComputedTargetFrameworkMoniker)' == ''">$(TargetFrameworkMoniker)</_ComputedTargetFrameworkMoniker>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- When looking for related files to copy, look for Mono debugging files as well -->
|
||||
<PropertyGroup>
|
||||
<AllowedReferenceRelatedFileExtensions>
|
||||
|
|
|
@ -230,7 +230,7 @@ Copyright (C) 2013-2016 Xamarin. All rights reserved.
|
|||
Architectures="$(MtouchArch)"
|
||||
IntermediateOutputPath="$(IntermediateOutputPath)"
|
||||
OutputPath="$(OutputPath)"
|
||||
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
|
||||
TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)"
|
||||
TargetiOSDevice="$(TargetiOSDevice)"
|
||||
>
|
||||
<Output TaskParameter="DeviceSpecificIntermediateOutputPath" PropertyName="DeviceSpecificIntermediateOutputPath" />
|
||||
|
@ -427,7 +427,7 @@ Copyright (C) 2013-2016 Xamarin. All rights reserved.
|
|||
Username="$(Username)"
|
||||
Password="$(Password)"
|
||||
FilePath="$(FilePath)"
|
||||
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
|
||||
TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)"
|
||||
SdkDevPath="$(_SdkDevPath)"
|
||||
/>
|
||||
</Target>
|
||||
|
@ -438,7 +438,7 @@ Copyright (C) 2013-2016 Xamarin. All rights reserved.
|
|||
Username="$(Username)"
|
||||
Password="$(Password)"
|
||||
FilePath="$(FilePath)"
|
||||
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
|
||||
TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)"
|
||||
SdkDevPath="$(_SdkDevPath)"
|
||||
/>
|
||||
</Target>
|
||||
|
@ -608,7 +608,7 @@ Copyright (C) 2013-2016 Xamarin. All rights reserved.
|
|||
IntermediateOutputPath="$(DeviceSpecificIntermediateOutputPath)"
|
||||
AppManifest="$(_AppManifest)"
|
||||
ProjectDir="$(MSBuildProjectDirectory)"
|
||||
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
|
||||
TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)"
|
||||
ResourcePrefix="$(IPhoneResourcePrefix)"
|
||||
SdkDevPath="$(_SdkDevPath)"
|
||||
SdkIsSimulator="$(_SdkIsSimulator)"
|
||||
|
@ -681,7 +681,7 @@ Copyright (C) 2013-2016 Xamarin. All rights reserved.
|
|||
SessionId="$(BuildSessionId)"
|
||||
Condition="'$(IsMacEnabled)' == 'true'"
|
||||
SdkVersion="$(MtouchSdkVersion)"
|
||||
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
|
||||
TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)"
|
||||
TargetArchitectures="$(TargetArchitectures)"
|
||||
>
|
||||
|
||||
|
@ -709,7 +709,7 @@ Copyright (C) 2013-2016 Xamarin. All rights reserved.
|
|||
SdkPlatform="$(_SdkPlatform)"
|
||||
ProvisioningProfile="$(CodesignProvision)"
|
||||
SigningKey="$(CodesignKey)"
|
||||
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
|
||||
TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)"
|
||||
>
|
||||
|
||||
<Output TaskParameter="DetectedAppId" PropertyName="_AppIdentifier" />
|
||||
|
@ -785,7 +785,7 @@ Copyright (C) 2013-2016 Xamarin. All rights reserved.
|
|||
PartialAppManifests="@(_PartialAppManifest)"
|
||||
ResourceRules="$(_PreparedResourceRules)"
|
||||
TargetArchitectures="$(TargetArchitectures)"
|
||||
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
|
||||
TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)"
|
||||
SdkPlatform="$(_SdkPlatform)"
|
||||
SdkIsSimulator="$(_SdkIsSimulator)"
|
||||
DebugIPAddresses="$(_DebugIPAddresses)"
|
||||
|
@ -911,8 +911,7 @@ Copyright (C) 2013-2016 Xamarin. All rights reserved.
|
|||
SdkIsSimulator="$(_SdkIsSimulator)"
|
||||
SdkVersion="$(MtouchSdkVersion)"
|
||||
SymbolsList="$(_MtouchSymbolsList)"
|
||||
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
|
||||
TargetFrameworkVersion="$(TargetFrameworkVersion)"
|
||||
TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)"
|
||||
UseLlvm="$(MtouchUseLlvm)"
|
||||
UseFloat32="$(MtouchFloat32)"
|
||||
UseThumb="$(MtouchUseThumb)"
|
||||
|
@ -1261,7 +1260,7 @@ Copyright (C) 2013-2016 Xamarin. All rights reserved.
|
|||
SdkRoot="$(_SdkRoot)"
|
||||
SdkDevPath="$(_SdkDevPath)"
|
||||
SdkVersion="$(MtouchSdkVersion)"
|
||||
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
|
||||
TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)"
|
||||
IntermediateOutputPath="$(DeviceSpecificIntermediateOutputPath)"
|
||||
InputScene="%(_ColladaAssetWithLogicalName.Identity)"
|
||||
OutputScene="$(DeviceSpecificIntermediateOutputPath)%(_ColladaAssetWithLogicalName.LogicalName)">
|
||||
|
@ -1375,7 +1374,7 @@ Copyright (C) 2013-2016 Xamarin. All rights reserved.
|
|||
ToolPath="$(CopySceneKitAssetsPath)"
|
||||
SceneKitAssets="@(SceneKitAsset)"
|
||||
IntermediateOutputPath="$(DeviceSpecificIntermediateOutputPath)"
|
||||
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
|
||||
TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)"
|
||||
ProjectDir="$(MSBuildProjectDirectory)"
|
||||
ResourcePrefix="$(IPhoneResourcePrefix)"
|
||||
IsWatchApp="$(IsWatchApp)"
|
||||
|
@ -1590,7 +1589,7 @@ Copyright (C) 2013-2016 Xamarin. All rights reserved.
|
|||
SdkIsSimulator="$(_SdkIsSimulator)"
|
||||
SdkPlatform="$(_SdkPlatform)"
|
||||
SdkVersion="$(MtouchSdkVersion)"
|
||||
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
|
||||
TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)"
|
||||
>
|
||||
|
||||
<!-- We output the same task parameter to 2 different properties because they will be used differently -->
|
||||
|
@ -1730,7 +1729,7 @@ Copyright (C) 2013-2016 Xamarin. All rights reserved.
|
|||
SessionId="$(BuildSessionId)"
|
||||
AppBundlePath="$(_AppBundlePath)"
|
||||
SdkIsSimulator="$(_SdkIsSimulator)"
|
||||
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
|
||||
TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)"
|
||||
/>
|
||||
</Target>
|
||||
|
||||
|
|
|
@ -79,7 +79,7 @@ Copyright (C) 2013-2016 Xamarin Inc. All rights reserved.
|
|||
ProcessEnums="$(ProcessEnums)"
|
||||
ProjectDir="$(MSBuildProjectDirectory)"
|
||||
References="@(ReferencePath)"
|
||||
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
|
||||
TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)"
|
||||
BTouchToolPath="$(BTouchToolPath)"
|
||||
BTouchToolExe="$(BTouchToolExe)"
|
||||
StandardOutputImportance="High"
|
||||
|
|
|
@ -24,6 +24,12 @@ Copyright (C) 2013-2016 Xamarin. All rights reserved.
|
|||
<_XamarinCommonPropsHasBeenImported>true</_XamarinCommonPropsHasBeenImported>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- Get the TargetFrameworkMoniker and store it in our own variable so that it's overridable while only affecting the parts of the build that we care about.
|
||||
This is overridability is a workaround while we wait for .NET 5 to be able to give us the TFM we're supposed to get during the build. -->
|
||||
<_ComputedTargetFrameworkMoniker Condition="'$(_ComputedTargetFrameworkMoniker)' == ''">$(TargetFrameworkMoniker)</_ComputedTargetFrameworkMoniker>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- This is used to determine if VS is connected to mac. -->
|
||||
<PropertyGroup>
|
||||
<IsMacEnabled>true</IsMacEnabled>
|
||||
|
|
|
@ -44,7 +44,7 @@ Copyright (C) 2015-2016 Xamarin. All rights reserved.
|
|||
SessionId="$(BuildSessionId)"
|
||||
SdkVersion="$(MtouchSdkVersion)"
|
||||
SdkIsSimulator="$(_SdkIsSimulator)"
|
||||
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
|
||||
TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)"
|
||||
>
|
||||
<Output TaskParameter="NativeWatchApp" PropertyName="_NativeWatchApp" />
|
||||
</ResolveNativeWatchApp>
|
||||
|
|
|
@ -13,7 +13,7 @@ namespace Xamarin.iOS.Tasks
|
|||
{
|
||||
var task = CreateTask<DetectSdkLocations> ();
|
||||
task.XamarinSdkRoot = "XYZ";
|
||||
task.TargetFrameworkIdentifier = "Xamarin.iOS";
|
||||
task.TargetFrameworkMoniker = "Xamarin.iOS,v1.0";
|
||||
task.Execute ();
|
||||
|
||||
Assert.AreEqual ("XYZ", task.XamarinSdkRoot, "#1");
|
||||
|
@ -24,7 +24,7 @@ namespace Xamarin.iOS.Tasks
|
|||
{
|
||||
var task = CreateTask<DetectSdkLocations> ();
|
||||
task.SdkVersion = "4.0";
|
||||
task.TargetFrameworkIdentifier = "Xamarin.iOS";
|
||||
task.TargetFrameworkMoniker = "Xamarin.iOS,v1.0";
|
||||
Assert.IsTrue (task.Execute (), "4.0 Execute");
|
||||
|
||||
Assert.AreNotEqual ("4.0", task.SdkVersion, "#1");
|
||||
|
|
|
@ -12,7 +12,7 @@ namespace Xamarin.iOS.Tasks
|
|||
{
|
||||
base.ConfigureTask ();
|
||||
Task.DefaultSdkVersion = IPhoneSdks.Native.GetClosestInstalledSdk (IPhoneSdkVersion.V6_1, true).ToString ();
|
||||
Task.TargetFrameworkIdentifier = "Xamarin.iOS";
|
||||
Task.TargetFrameworkMoniker = "Xamarin.iOS,v1.0";
|
||||
Task.TargetArchitectures = "ARM64";
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ namespace Xamarin.iOS.Tasks
|
|||
{
|
||||
base.ConfigureTask ();
|
||||
Task.DefaultSdkVersion = IPhoneSdks.TVOS.GetClosestInstalledSdk (IPhoneSdkVersion.V9_0, true).ToString ();
|
||||
Task.TargetFrameworkIdentifier = "Xamarin.TVOS";
|
||||
Task.TargetFrameworkMoniker = "Xamarin.TVOS,v1.0";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ namespace Xamarin.iOS.Tasks
|
|||
{
|
||||
base.ConfigureTask ();
|
||||
Task.DefaultSdkVersion = IPhoneSdks.Watch.GetClosestInstalledSdk (IPhoneSdkVersion.V2_0, true).ToString ();
|
||||
Task.TargetFrameworkIdentifier = "Xamarin.WatchOS";
|
||||
Task.TargetFrameworkMoniker = "Xamarin.WatchOS,v1.0";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -68,7 +68,7 @@ namespace Xamarin.iOS.Tasks
|
|||
Task.SdkRoot = "/path/to/sdkroot";
|
||||
Task.SdkVersion = "6.1";
|
||||
Task.SymbolsList = Path.Combine (Path.GetTempPath (), "mtouch-symbol-list");
|
||||
Task.TargetFrameworkIdentifier = "Xamarin.iOS";
|
||||
Task.TargetFrameworkMoniker = "Xamarin.iOS,v1.0";
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
@ -132,7 +132,7 @@ namespace Xamarin.iOS.Tasks
|
|||
{
|
||||
Task.EnableBitcode = true;
|
||||
|
||||
Task.TargetFrameworkIdentifier = frameworkIdentifier;
|
||||
Task.TargetFrameworkMoniker = frameworkIdentifier + ",v1.0";
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
@ -211,7 +211,7 @@ namespace Xamarin.iOS.Tasks
|
|||
public void ReferenceFrameworkFileResolution_WhenReceivedReferencePathExists()
|
||||
{
|
||||
using (var sdk = new TempSdk()) {
|
||||
Task.TargetFrameworkIdentifier = "MonoTouch";
|
||||
Task.TargetFrameworkMoniker = "MonoTouch,v1.0";
|
||||
|
||||
var expectedPath = Path.GetTempFileName ();
|
||||
|
||||
|
@ -234,11 +234,11 @@ namespace Xamarin.iOS.Tasks
|
|||
Assert.IsTrue (args.Contains ($"@{Task.ResponseFilePath}"), "#@response-file");
|
||||
}
|
||||
|
||||
[TestCase("Xamarin.iOS", "Xamarin.iOS")]
|
||||
public void ReferenceFrameworkFileResolution_WhenFacadeFileExists(string targetFramework, string frameworkDir)
|
||||
[TestCase("Xamarin.iOS,v1.0", "Xamarin.iOS")]
|
||||
public void ReferenceFrameworkFileResolution_WhenFacadeFileExists(string targetFrameworkMoniker, string frameworkDir)
|
||||
{
|
||||
using (var sdk = new TempSdk()) {
|
||||
Task.TargetFrameworkIdentifier = targetFramework;
|
||||
Task.TargetFrameworkMoniker = targetFrameworkMoniker;
|
||||
var expectedPath = Path.Combine (IPhoneSdks.MonoTouch.LibDir, "mono", frameworkDir, "Facades", "System.Collections.dll");
|
||||
Directory.CreateDirectory (Path.GetDirectoryName (expectedPath));
|
||||
File.WriteAllText (expectedPath, "");
|
||||
|
@ -259,11 +259,11 @@ namespace Xamarin.iOS.Tasks
|
|||
}
|
||||
}
|
||||
|
||||
[TestCase("Xamarin.iOS", "Xamarin.iOS")]
|
||||
public void ReferenceFrameworkFileResolution_WhenFrameworkFileExists(string targetFramework, string frameworkDir)
|
||||
[TestCase("Xamarin.iOS,v1.0", "Xamarin.iOS")]
|
||||
public void ReferenceFrameworkFileResolution_WhenFrameworkFileExists(string targetFrameworkMoniker, string frameworkDir)
|
||||
{
|
||||
using (var sdk = new TempSdk()) {
|
||||
Task.TargetFrameworkIdentifier = targetFramework;
|
||||
Task.TargetFrameworkMoniker = targetFrameworkMoniker;
|
||||
var expectedPath = Path.Combine (IPhoneSdks.MonoTouch.LibDir, "mono", frameworkDir, "System.Collections.dll");
|
||||
Directory.CreateDirectory (Path.GetDirectoryName (expectedPath));
|
||||
File.WriteAllText (expectedPath, "");
|
||||
|
@ -284,11 +284,11 @@ namespace Xamarin.iOS.Tasks
|
|||
}
|
||||
}
|
||||
|
||||
[TestCase("Xamarin.iOS", "Xamarin.iOS")]
|
||||
public void ReferenceFrameworkFileResolution_WhenResolutionFails(string targetFramework, string frameworkDir)
|
||||
[TestCase("Xamarin.iOS,v1.0", "Xamarin.iOS")]
|
||||
public void ReferenceFrameworkFileResolution_WhenResolutionFails(string targetFrameworkMoniker, string frameworkDir)
|
||||
{
|
||||
using (var sdk = new TempSdk()) {
|
||||
Task.TargetFrameworkIdentifier = targetFramework;
|
||||
Task.TargetFrameworkMoniker = targetFrameworkMoniker;
|
||||
|
||||
Task.References = new[] { new TaskItem ("/usr/foo/System.Collections.dll", new Dictionary<string, string> { { "FrameworkFile", "true" } }) };
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ namespace Xamarin.iOS.Tasks
|
|||
task = CreateTask<ValidateAppBundleTask> ();
|
||||
task.AppBundlePath = AppBundlePath;
|
||||
task.SdkIsSimulator = true;
|
||||
task.TargetFrameworkIdentifier = "Xamarin.iOS";
|
||||
task.TargetFrameworkMoniker = "Xamarin.iOS,v1.0";
|
||||
|
||||
extensionBundlePath = Path.Combine (AppBundlePath, "PlugIns", extensionName + ".appex");
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче