795 строки
36 KiB
XML
795 строки
36 KiB
XML
<!--
|
|
***********************************************************************************************
|
|
Xamarin.Mac.Common.targets
|
|
|
|
WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
|
|
created a backup copy. Incorrect changes to this file will make it
|
|
impossible to load or build your projects from the command-line or the IDE.
|
|
|
|
This file imports the version- and platform-specific targets for the project importing
|
|
this file. This file also defines targets to produce an error if the specified targets
|
|
file does not exist, but the project is built anyway (command-line or IDE build).
|
|
|
|
Copyright (C) 2014 Xamarin. All rights reserved.
|
|
***********************************************************************************************
|
|
-->
|
|
|
|
<!-- Xamarin.Mac.Common.targets currently is not shared with Xamarin.Mac.ObjCBinding targets,
|
|
so be careful not to add fixes here that should go into Xamarin.Mac.Common.props which is shared -->
|
|
|
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<UsingTask TaskName="Xamarin.MacDev.Tasks.ArTool" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.MacDev.Tasks.Codesign" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.MacDev.Tasks.CollectBundleResources" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.MacDev.Tasks.CreateInstallerPackage" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.MacDev.Tasks.CreatePkgInfo" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.MacDev.Tasks.Ditto" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.MacDev.Tasks.FindItemWithLogicalName" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.MacDev.Tasks.PackLibraryResources" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.MacDev.Tasks.PropertyListEditor" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.MacDev.Tasks.ReadItemsFromFile" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.MacDev.Tasks.SmartCopy" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.MacDev.Tasks.UnpackLibraryResources" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.MacDev.Tasks.WriteItemsToFile" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.Mac.Tasks.ACTool" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.Mac.Tasks.CodesignVerify" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.Mac.Tasks.CompileAppManifest" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.Mac.Tasks.CompileEntitlements" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.Mac.Tasks.CompileSceneKitAssets" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.Mac.Tasks.DetectSdkLocations" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.Mac.Tasks.DetectSigningIdentity" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.Mac.Tasks.EmbedProvisionProfile" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.Mac.Tasks.IBTool" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.Mac.Tasks.MetalLib" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.Mac.Tasks.Metal" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.Mac.Tasks.Mmp" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.Mac.Tasks.ScnTool" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.Mac.Tasks.TextureAtlas" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.MacDev.Tasks.GenerateBundleName" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.MacDev.Tasks.GetNativeExecutableName" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.MacDev.Tasks.GetPropertyListValue" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.MacDev.Tasks.SymbolStrip" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Xamarin.MacDev.Tasks.Zip" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
|
|
<UsingTask TaskName="Microsoft.Build.Tasks.Copy" AssemblyFile="Xamarin.Mac.Tasks.dll"/>
|
|
<UsingTask TaskName="Microsoft.Build.Tasks.Delete" AssemblyFile="Xamarin.Mac.Tasks.dll"/>
|
|
<UsingTask TaskName="Microsoft.Build.Tasks.Exec" AssemblyFile="Xamarin.Mac.Tasks.dll"/>
|
|
<UsingTask TaskName="Microsoft.Build.Tasks.MakeDir" AssemblyFile="Xamarin.Mac.Tasks.dll"/>
|
|
<UsingTask TaskName="Microsoft.Build.Tasks.Move" AssemblyFile="Xamarin.Mac.Tasks.dll" />
|
|
<UsingTask TaskName="Microsoft.Build.Tasks.RemoveDir" AssemblyFile="Xamarin.Mac.Tasks.dll"/>
|
|
<UsingTask TaskName="Microsoft.Build.Tasks.Touch" AssemblyFile="Xamarin.Mac.Tasks.dll"/>
|
|
|
|
<Import Project="$(MSBuildThisFileDirectory)Xamarin.Mac.Common.props"
|
|
Condition="'$(_XamarinCommonPropsHasBeenImported)' != 'true'" />
|
|
|
|
<Import Project="$(MSBuildThisFileDirectory)$(MSBuildThisFileName).Before.targets"
|
|
Condition="Exists('$(MSBuildThisFileDirectory)$(MSBuildThisFileName).Before.targets')"/>
|
|
|
|
<PropertyGroup>
|
|
<_CanOutputAppBundle>False</_CanOutputAppBundle>
|
|
<_CanOutputAppBundle Condition="'$(OutputType)' == 'Exe' Or '$(IsAppExtension)' == 'true'">true</_CanOutputAppBundle>
|
|
|
|
<_CanArchive>False</_CanArchive>
|
|
<_CanArchive Condition="'$(OutputType)' == 'Exe'">true</_CanArchive>
|
|
|
|
<_RequireProvisioningProfile>False</_RequireProvisioningProfile>
|
|
<_RequireProvisioningProfile Condition="'$(CodesignEntitlements)' != ''">True</_RequireProvisioningProfile>
|
|
|
|
<_PreparedResourceRules></_PreparedResourceRules>
|
|
<_AppBundleName>$(AssemblyName)</_AppBundleName>
|
|
|
|
<AppBundleExtension Condition="'$(AppBundleExtension)' == ''">.app</AppBundleExtension>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<!-- actool output caches -->
|
|
<_ACTool_PartialAppManifestCache>$(IntermediateOutputPath)actool\_PartialAppManifest.items</_ACTool_PartialAppManifestCache>
|
|
<_ACTool_BundleResourceCache>$(IntermediateOutputPath)actool\_BundleResourceWithLogicalName.items</_ACTool_BundleResourceCache>
|
|
</PropertyGroup>
|
|
|
|
<Import Project="$(MSBuildThisFileDirectory)Xamarin.Mac.Common.ImplicitFacade.xbuild.targets"
|
|
Condition="'$(IsXBuild)' == 'true' "/>
|
|
|
|
<PropertyGroup>
|
|
<BuildDependsOn>
|
|
BuildOnlySettings;
|
|
_CollectBundleResources;
|
|
_PackLibraryResources;
|
|
_UnpackLibraryResources;
|
|
$(BuildDependsOn);
|
|
_GenerateBundleName;
|
|
_CreateAppBundle;
|
|
Codesign;
|
|
_CreateInstaller;
|
|
</BuildDependsOn>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<CompileColladaAssetsDependsOn>
|
|
_CollectColladaAssets;
|
|
_CoreCompileColladaAssets
|
|
</CompileColladaAssetsDependsOn>
|
|
</PropertyGroup>
|
|
|
|
<Target Name="_CompileColladaAssets" Condition="'$(_CanOutputAppBundle)' == 'true'" DependsOnTargets="$(CompileColladaAssetsDependsOn)" />
|
|
|
|
<PropertyGroup>
|
|
<CreateAppBundleDependsOn>
|
|
_DetectSigningIdentity;
|
|
_CopyContentToBundle;
|
|
_SmeltMetal;
|
|
_ForgeMetal;
|
|
_TemperMetal;
|
|
_CompileEntitlements;
|
|
_CompileAppManifest;
|
|
_CompileToNative;
|
|
_CreatePkgInfo;
|
|
_CopyAppExtensionsToBundle;
|
|
</CreateAppBundleDependsOn>
|
|
</PropertyGroup>
|
|
|
|
<Target Name="_CreateAppBundle" Condition="'$(_CanOutputAppBundle)' == 'true'" DependsOnTargets="$(CreateAppBundleDependsOn)" />
|
|
|
|
<PropertyGroup>
|
|
<_CodesignAppBundleDependsOn>
|
|
_CreateAppBundle;
|
|
_EmbedProvisionProfile;
|
|
_CodesignNativeLibraries;
|
|
</_CodesignAppBundleDependsOn>
|
|
|
|
<CoreCodesignDependsOn>
|
|
_CodesignAppBundle;
|
|
_CodesignVerify;
|
|
</CoreCodesignDependsOn>
|
|
|
|
<CodesignDependsOn>
|
|
BeforeCodeSign;
|
|
CoreCodeSign;
|
|
AfterCodeSign;
|
|
</CodesignDependsOn>
|
|
</PropertyGroup>
|
|
|
|
<Target Name="BeforeCodesign" />
|
|
<Target Name="CoreCodesign" DependsOnTargets="$(CoreCodesignDependsOn)" />
|
|
<Target Name="AfterCodesign" />
|
|
|
|
<Target Name="Codesign" Condition="'$(_CanOutputAppBundle)' == 'true'" DependsOnTargets="$(CodesignDependsOn)" />
|
|
|
|
<PropertyGroup>
|
|
<CleanDependsOn>
|
|
$(CleanDependsOn);
|
|
_CleanAppBundle;
|
|
_CleanIntermediateToolOutput;
|
|
</CleanDependsOn>
|
|
</PropertyGroup>
|
|
|
|
<Target Name="_CleanAppBundle" Condition="'$(_CanOutputAppBundle)' == 'true'" DependsOnTargets="_GenerateBundleName">
|
|
<RemoveDir Directories="$(_AppBundlePath)" />
|
|
</Target>
|
|
|
|
<Target Name="_CleanIntermediateToolOutput">
|
|
<RemoveDir Directories="$(IntermediateOutputPath)actool" />
|
|
<RemoveDir Directories="$(IntermediateOutputPath)ibtool" />
|
|
<RemoveDir Directories="$(IntermediateOutputPath)metal" />
|
|
<RemoveDir Directories="$(IntermediateOutputPath)scntool" />
|
|
<RemoveDir Directories="$(IntermediateOutputPath)TextureAtlas" />
|
|
<RemoveDir Directories="$(IntermediateOutputPath)" />
|
|
</Target>
|
|
|
|
<PropertyGroup>
|
|
<_CollectBundleResourcesDependsOn>
|
|
_CompileImageAssets;
|
|
_CompileInterfaceDefinitions;
|
|
_CompileSceneKitAssets;
|
|
_CompileColladaAssets;
|
|
_CompileTextureAtlases;
|
|
$(_CollectBundleResourcesDependsOn);
|
|
</_CollectBundleResourcesDependsOn>
|
|
</PropertyGroup>
|
|
|
|
<Target Name="_CodesignNativeLibraries" Condition="'$(EnableCodeSigning)'" DependsOnTargets="_DetectSigningIdentity">
|
|
<Codesign
|
|
SessionId="$(BuildSessionId)"
|
|
ToolExe="$(CodesignExe)"
|
|
ToolPath="$(CodesignPath)"
|
|
Condition="'@(_NativeLibrary)' != '' And '$(IsMacEnabled)' == 'true'"
|
|
CodesignAllocate="$(_CodesignAllocate)"
|
|
Keychain="$(CodesignKeychain)"
|
|
Resources="@(_NativeLibrary)"
|
|
SigningKey="$(_CodeSigningKey)"
|
|
ExtraArgs="$(CodesignExtraArgs)"
|
|
IsAppExtension="$(IsAppExtension)"
|
|
>
|
|
</Codesign>
|
|
</Target>
|
|
|
|
<Target Name="_EmbedProvisionProfile" Condition="'$(_ProvisioningProfile)' != ''" DependsOnTargets="_GenerateBundleName"
|
|
Outputs="$(_AppBundlePath)Contents\embedded.provisionprofile">
|
|
<EmbedProvisionProfile
|
|
Condition="'$(IsMacEnabled)' == 'true'"
|
|
SessionId="$(BuildSessionId)"
|
|
AppBundleDir="$(AppBundleDir)"
|
|
ProvisioningProfile="$(_ProvisioningProfile)"
|
|
>
|
|
</EmbedProvisionProfile>
|
|
</Target>
|
|
|
|
<Target Name="_CompileEntitlements" Condition="'$(EnableCodeSigning)'" DependsOnTargets="_GenerateBundleName"
|
|
Outputs="$(IntermediateOutputPath)Entitlements.xcent">
|
|
<CompileEntitlements
|
|
Condition="'$(IsMacEnabled)' == 'true'"
|
|
SessionId="$(BuildSessionId)"
|
|
AppBundleDir="$(AppBundleDir)"
|
|
AppIdentifier="$(_AppIdentifier)"
|
|
BundleIdentifier="$(_BundleIdentifier)"
|
|
Entitlements="$(CodeSignEntitlements)"
|
|
CompiledEntitlements="$(IntermediateOutputPath)Entitlements.xcent"
|
|
IsAppExtension="$(IsAppExtension)"
|
|
ProvisioningProfile="$(_ProvisioningProfile)"
|
|
SdkVersion="$(MacOSXSdkVersion)"
|
|
SdkPlatform="MacOSX"
|
|
SdkDevPath="$(_SdkDevPath)"
|
|
Debug="$(DebugSymbols)"
|
|
>
|
|
</CompileEntitlements>
|
|
</Target>
|
|
|
|
<Target Name="_CodesignAppBundle" Condition="'$(EnableCodeSigning)'" DependsOnTargets="$(_CodesignAppBundleDependsOn)">
|
|
<Codesign
|
|
Condition="'$(IsMacEnabled)' == 'true'"
|
|
SessionId="$(BuildSessionId)"
|
|
ToolExe="$(CodesignExe)"
|
|
ToolPath="$(CodesignPath)"
|
|
CodesignAllocate="$(_CodesignAllocate)"
|
|
Keychain="$(CodesignKeychain)"
|
|
Entitlements="$(IntermediateOutputPath)Entitlements.xcent"
|
|
Resources="$(AppBundleDir)"
|
|
SigningKey="$(_CodeSigningKey)"
|
|
ExtraArgs="$(CodesignExtraArgs)"
|
|
IsAppExtension="$(IsAppExtension)"
|
|
>
|
|
</Codesign>
|
|
</Target>
|
|
|
|
<Target Name="_CodesignVerify" Condition="'$(EnableCodeSigning)'" DependsOnTargets="_CodesignAppBundle">
|
|
<CodesignVerify
|
|
Condition="'$(IsMacEnabled)' == 'true'"
|
|
SessionId="$(BuildSessionId)"
|
|
ToolExe="$(CodesignExe)"
|
|
ToolPath="$(CodesignPath)"
|
|
CodesignAllocate="$(_CodesignAllocate)"
|
|
Resource="$(AppBundleDir)"
|
|
>
|
|
</CodesignVerify>
|
|
</Target>
|
|
|
|
<!-- TODO: check for duplicate items -->
|
|
<Target Name="_CopyContentToBundle"
|
|
Inputs="@(_BundleResourceWithLogicalName)"
|
|
Outputs="@(_BundleResourceWithLogicalName -> '$(_AppResourcesPath)%(LogicalName)')">
|
|
<SmartCopy
|
|
Condition="'$(IsMacEnabled)' == 'true'"
|
|
SessionId="$(BuildSessionId)"
|
|
SourceFiles = "@(_BundleResourceWithLogicalName)"
|
|
DestinationFiles = "@(_BundleResourceWithLogicalName -> '$(_AppResourcesPath)%(LogicalName)')"/>
|
|
</Target>
|
|
|
|
<Target Name="_CollectBundleResources" DependsOnTargets="$(_CollectBundleResourcesDependsOn)">
|
|
<CollectBundleResources
|
|
Condition="'$(IsMacEnabled)' == 'true'"
|
|
SessionId="$(BuildSessionId)"
|
|
BundleResources="@(Content);@(BundleResource)"
|
|
ProjectDir="$(MSBuildProjectDirectory)"
|
|
ResourcePrefix="$(XamMacResourcePrefix)">
|
|
<Output TaskParameter="BundleResourcesWithLogicalNames" ItemName="_BundleResourceWithLogicalName" />
|
|
</CollectBundleResources>
|
|
</Target>
|
|
|
|
<Target Name="_DetectAppManifest" Condition="'$(_CanOutputAppBundle)' == 'true'" >
|
|
<FindItemWithLogicalName
|
|
SessionId="$(BuildSessionId)"
|
|
ProjectDir="$(MSBuildProjectDirectory)"
|
|
ResourcePrefix="$(XamMacResourcePrefix)"
|
|
LogicalName="Info.plist"
|
|
Items="@(None)">
|
|
<Output TaskParameter="Item" PropertyName="_AppManifest" />
|
|
</FindItemWithLogicalName>
|
|
<FindItemWithLogicalName Condition="'$(_AppManifest)' == ''"
|
|
SessionId="$(BuildSessionId)"
|
|
ProjectDir="$(MSBuildProjectDirectory)"
|
|
ResourcePrefix="$(XamMacResourcePrefix)"
|
|
LogicalName="Info.plist"
|
|
Items="@(BundleResource)">
|
|
<Output TaskParameter="Item" PropertyName="_AppManifest" />
|
|
</FindItemWithLogicalName>
|
|
<FindItemWithLogicalName Condition="'$(_AppManifest)' == ''"
|
|
SessionId="$(BuildSessionId)"
|
|
ProjectDir="$(MSBuildProjectDirectory)"
|
|
ResourcePrefix="$(XamMacResourcePrefix)"
|
|
LogicalName="Info.plist"
|
|
Items="@(Content)">
|
|
<Output TaskParameter="Item" PropertyName="_AppManifest" />
|
|
</FindItemWithLogicalName>
|
|
<Error Condition="'$(_AppManifest)' == ''" Text="Info.plist not found."/>
|
|
</Target>
|
|
|
|
<Target Name="_SmeltMetal" Condition="'$(_CanOutputAppBundle)' == 'true' And '@(Metal)' != ''" DependsOnTargets="_DetectSdkLocations">
|
|
<Metal
|
|
Condition="'$(IsMacEnabled)' == 'true' and '%(Metal.Identity)' != ''"
|
|
SessionId="$(BuildSessionId)"
|
|
IntermediateOutputPath="$(IntermediateOutputPath)"
|
|
AppManifest="$(_AppManifest)"
|
|
ProjectDir="$(MSBuildProjectDirectory)"
|
|
ResourcePrefix="$(XamMacResourcePrefix)"
|
|
SdkDevPath="$(_SdkDevPath)"
|
|
SdkVersion="$(MacOSXSdkVersion)"
|
|
SourceFile="@(Metal)">
|
|
<Output TaskParameter="OutputFile" ItemName="_SmeltedMetal" />
|
|
</Metal>
|
|
</Target>
|
|
|
|
<Target Name="_ForgeMetal" Condition="'$(_CanOutputAppBundle)' == 'true' And '@(_SmeltedMetal)' != ''" DependsOnTargets="_SmeltMetal"
|
|
Inputs="@(_SmeltedMetal)" Outputs="$(IntermediateOutputPath)metal\default.metal-ar">
|
|
<ArTool
|
|
Condition="'$(IsMacEnabled)' == 'true' and '$(_IsXcode8)' == 'false'"
|
|
SessionId="$(BuildSessionId)"
|
|
Items="@(_SmeltedMetal)"
|
|
Archive="$(IntermediateOutputPath)metal\default.metal-ar">
|
|
</ArTool>
|
|
|
|
<!-- If !Xcode8 -->
|
|
<CreateItem Include="$(IntermediateOutputPath)metal\default.metal-ar"
|
|
Condition="'$(_IsXcode8)' == 'false'">
|
|
<Output TaskParameter="Include" ItemName="_ForgedMetal" />
|
|
</CreateItem>
|
|
|
|
<!-- Else -->
|
|
<CreateItem Include="@(_SmeltedMetal)"
|
|
Condition="'$(_IsXcode8)' == 'true'">
|
|
<Output TaskParameter="Include" ItemName="_ForgedMetal" />
|
|
</CreateItem>
|
|
</Target>
|
|
|
|
<Target Name="_TemperMetal" Condition="'$(_CanOutputAppBundle)' == 'true' And '@(_ForgedMetal)' != ''" DependsOnTargets="_ForgeMetal"
|
|
Inputs="@(_ForgedMetal)" Outputs="$(_AppBundlePath)default.metallib">
|
|
<MetalLib
|
|
Condition="'$(IsMacEnabled)' == 'true'"
|
|
SessionId="$(BuildSessionId)"
|
|
Items="@(_ForgedMetal)"
|
|
SdkDevPath="$(_SdkDevPath)"
|
|
OutputLibrary="$(_AppBundlePath)Contents\Resources\default.metallib">
|
|
</MetalLib>
|
|
|
|
<CreateItem Include="$(_AppBundlePath)Contents\Resources\default.metallib">
|
|
<Output TaskParameter="Include" ItemName="_NativeLibrary" />
|
|
</CreateItem>
|
|
</Target>
|
|
|
|
<Target Name="_CompileTextureAtlases" DependsOnTargets="_DetectAppManifest;_DetectSdkLocations;_CoreCompileTextureAtlases" />
|
|
|
|
<Target Name="_CoreCompileTextureAtlases">
|
|
<TextureAtlas
|
|
Condition="'$(IsMacEnabled)' == 'true'"
|
|
SessionId="$(BuildSessionId)"
|
|
ToolExe="$(TextureAtlasExe)"
|
|
ToolPath="$(TextureAtlasPath)"
|
|
AtlasTextures="@(AtlasTexture)"
|
|
IntermediateOutputPath="$(IntermediateOutputPath)"
|
|
ProjectDir="$(MSBuildProjectDirectory)"
|
|
ResourcePrefix="$(XamMacResourcePrefix)"
|
|
SdkDevPath="$(_SdkDevPath)"
|
|
SdkBinPath="$(_SdkBinPath)"
|
|
SdkUsrPath="$(_SdkUsrPath)">
|
|
<Output TaskParameter="BundleResources" ItemName="FileWrites" />
|
|
<Output TaskParameter="BundleResources" ItemName="_BundleResourceWithLogicalName" />
|
|
</TextureAtlas>
|
|
</Target>
|
|
|
|
<Target Name="_CreateInstaller" Condition="$(CreatePackage)" DependsOnTargets="Codesign">
|
|
<CreateInstallerPackage
|
|
Condition="'$(IsMacEnabled)' == 'true'"
|
|
SessionId="$(BuildSessionId)"
|
|
OutputDirectory = "$(TargetDir)"
|
|
Name = "$(AssemblyName)"
|
|
AppManifest="$(_AppManifest)"
|
|
ProjectPath= "$(MSBuildProjectFullPath)"
|
|
AppBundleDir= "$(AppBundleDir)"
|
|
MainAssembly= "$(TargetPath)"
|
|
EnablePackageSigning = "$(EnablePackageSigning)"
|
|
ProductDefinition = "$(ProductDefinition)"
|
|
PackageSigningKey = "$(PackageSigningKey)"
|
|
PackagingExtraArgs = "$(PackagingExtraArgs)">
|
|
</CreateInstallerPackage>
|
|
</Target>
|
|
|
|
<Target Name="_PackLibraryResources" Condition="'$(_CanOutputAppBundle)' == 'false'" DependsOnTargets="_CollectBundleResources">
|
|
<PackLibraryResources
|
|
Condition="'$(IsMacEnabled)' == 'true'"
|
|
SessionId="$(BuildSessionId)"
|
|
Prefix="xammac"
|
|
BundleResourcesWithLogicalNames="@(_BundleResourceWithLogicalName)">
|
|
<Output TaskParameter="EmbeddedResources" ItemName="EmbeddedResource" />
|
|
</PackLibraryResources>
|
|
</Target>
|
|
|
|
<Target Name="_UnpackLibraryResources" Condition="'$(_CanOutputAppBundle)' == 'true'" DependsOnTargets="ResolveReferences;_CollectBundleResources">
|
|
<UnpackLibraryResources
|
|
Condition="'$(IsMacEnabled)' == 'true'"
|
|
SessionId="$(BuildSessionId)"
|
|
Prefix="xammac"
|
|
NoOverwrite="@(_BundleResourceWithLogicalName)"
|
|
IntermediateOutputPath="$(IntermediateOutputPath)"
|
|
TargetFrameworkDirectory="$(TargetFrameworkDirectory)"
|
|
ReferencedLibraries="@(ReferencePath)">
|
|
<Output TaskParameter="BundleResourcesWithLogicalNames" ItemName="_BundleResourceWithLogicalName" />
|
|
<Output TaskParameter="BundleResourcesWithLogicalNames" ItemName="FileWrites" />
|
|
</UnpackLibraryResources>
|
|
</Target>
|
|
|
|
<Target Name="_DetectSdkLocations">
|
|
<DetectSdkLocations
|
|
Condition="'$(IsMacEnabled)' == 'true'"
|
|
SessionId="$(BuildSessionId)">
|
|
<Output TaskParameter="SdkVersion" PropertyName="MacOSXSdkVersion" />
|
|
<Output TaskParameter="SdkRoot" PropertyName="_SdkRoot" />
|
|
<Output TaskParameter="SdkBinPath" PropertyName="_SdkBinPath" />
|
|
<Output TaskParameter="SdkDevPath" PropertyName="_SdkDevPath" />
|
|
<Output TaskParameter="SdkUsrPath" PropertyName="_SdkUsrPath" />
|
|
<Output TaskParameter="IsXcode8" PropertyName="_IsXcode8" />
|
|
</DetectSdkLocations>
|
|
</Target>
|
|
|
|
<Target Name="_DetectSigningIdentity" DependsOnTargets="_DetectAppManifest">
|
|
<DetectSigningIdentity
|
|
Condition="'$(IsMacEnabled)' == 'true'"
|
|
SessionId="$(BuildSessionId)"
|
|
AppBundleName="$(_AppBundleName)"
|
|
AppManifest="$(_AppManifest)"
|
|
Keychain="$(CodesignKeychain)"
|
|
RequireCodeSigning="$(EnableCodeSigning)"
|
|
RequireProvisioningProfile="$(_RequireProvisioningProfile)"
|
|
SdkPlatform="MacOSX"
|
|
ProvisioningProfile="$(CodeSignProvision)"
|
|
SigningKey="$(CodeSigningKey)">
|
|
<Output TaskParameter="DetectedAppId" PropertyName="_AppIdentifier" />
|
|
<Output TaskParameter="DetectedBundleId" PropertyName="_BundleIdentifier" />
|
|
<Output TaskParameter="DetectedCodeSigningKey" PropertyName="_CodeSigningKey" />
|
|
<Output TaskParameter="DetectedCodesignAllocate" PropertyName="_CodesignAllocate" />
|
|
<Output TaskParameter="DetectedProvisioningProfile" PropertyName="_ProvisioningProfile" />
|
|
</DetectSigningIdentity>
|
|
</Target>
|
|
|
|
<Target Name="_GenerateBundleName">
|
|
<PropertyGroup>
|
|
<AppBundleDir>$(OutputPath)$(_AppBundleName)$(AppBundleExtension)</AppBundleDir>
|
|
<_AppBundlePath>$(AppBundleDir)\</_AppBundlePath>
|
|
<_AppResourcesPath>$(_AppBundlePath)Contents\Resources\</_AppResourcesPath>
|
|
</PropertyGroup>
|
|
</Target>
|
|
|
|
<Target Name="_CompileAppManifest"
|
|
DependsOnTargets="_DetectAppManifest;_GenerateBundleName;_DetectSigningIdentity"
|
|
Inputs="$(_AppManifest);@(_PartialAppManifest)"
|
|
Outputs="$(_AppBundlePath)Contents\Info.plist" >
|
|
<CompileAppManifest
|
|
Condition="'$(IsMacEnabled)' == 'true'"
|
|
SessionId="$(BuildSessionId)"
|
|
AppBundleName="$(_AppBundleName)"
|
|
AppBundleDir="$(AppBundleDir)"
|
|
AppManifest="$(_AppManifest)"
|
|
AssemblyName="$(TargetName)"
|
|
BundleIdentifier="$(_BundleIdentifier)"
|
|
IsAppExtension="$(IsAppExtension)"
|
|
PartialAppManifests="@(_PartialAppManifest)" />
|
|
</Target>
|
|
|
|
<Target Name="_CompileToNative" DependsOnTargets="_DetectAppManifest;_DetectSdkLocations;_GenerateBundleName;ResolveReferences;_CompileEntitlements;_CompileAppManifest"
|
|
Inputs="$(TargetDir)$(TargetFileName)"
|
|
Outputs="$(_AppBundlePath)Contents\MacOS\$(_AppBundleName)">
|
|
<ItemGroup>
|
|
<!-- Skip the reference assemblies. 'mmp' will fail to AOT them if passed 'aot:all'. Similar to: https://github.com/xamarin/xamarin-macios/issues/3199 -->
|
|
<!-- Remove exact references, such as if a package had a framework reference to 'System' that we already have -->
|
|
<!-- This is exactly what "Microsoft.NuGet.Build.Tasks"'s 'ResolveNuGetPackageAssets' target is doing -->
|
|
<!-- Effectively 'ResolveNuGetPackageAssets' computes the NuGet packages using their json asset file, adds the full assemblies to 'ReferenceCopyLocalPaths' and outputs the resolved references via '_ReferencesFromNuGetPackages' -->
|
|
<ReferencePath Remove="@(_ReferencesFromNuGetPackages)" />
|
|
<ReferenceCopyLocalAssemblyPaths Include="@(ReferenceCopyLocalPaths)" Condition="'%(Extension)' == '.dll'" />
|
|
</ItemGroup>
|
|
<Mmp
|
|
Condition="'$(IsMacEnabled)' == 'true'"
|
|
SessionId="$(BuildSessionId)"
|
|
FrameworkRoot="$(XamarinMacFrameworkRoot)"
|
|
AppBundleDir="$(AppBundleDir)"
|
|
OutputPath="$(OutputPath)"
|
|
ApplicationName="$(_AppBundleName)"
|
|
ApplicationAssembly="$(OutputPath)$(TargetName)$(TargetExt)"
|
|
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
|
|
TargetFrameworkVersion="$(TargetFrameworkVersion)"
|
|
UseXamMacFullFramework="$(UseXamMacFullFramework)"
|
|
Architecture="$(XamMacArch)"
|
|
ArchiveSymbols="$(MonoSymbolArchive)"
|
|
LinkMode="$(LinkMode)"
|
|
Debug="$(DebugSymbols)"
|
|
HttpClientHandler="$(HttpClientHandler)"
|
|
I18n="$(I18n)"
|
|
Profiling="$(Profiling)"
|
|
ExtraArguments="$(MonoBundlingExtraArgs)"
|
|
NativeReferences="@(NativeReference)"
|
|
ExplicitReferences="@(ReferencePath);@(ReferenceCopyLocalAssemblyPaths)"
|
|
ResponseFilePath="$(IntermediateOutputPath)response-file.rsp"
|
|
SdkRoot="$(_SdkDevPath)"
|
|
IntermediateOutputPath="$(IntermediateOutputPath)mmp-cache"
|
|
AppManifest="$(_AppManifest)"
|
|
SdkVersion="$(MacOSXSdkVersion)"
|
|
IsAppExtension="$(IsAppExtension)"
|
|
EnableSGenConc="$(EnableSGenConc)"
|
|
AotMode="$(AOTMode)"
|
|
HybridAOT="$(HybridAOT)"
|
|
ExplicitAotAssemblies="$(ExplicitAotAssemblies)">
|
|
<Output TaskParameter="NativeLibraries" ItemName="_NativeLibrary" />
|
|
</Mmp>
|
|
</Target>
|
|
|
|
<Target Name="_CollectColladaAssets">
|
|
<CollectBundleResources
|
|
Condition="'$(IsMacEnabled)' == 'true'"
|
|
SessionId="$(BuildSessionId)"
|
|
BundleResources="@(Collada)"
|
|
ProjectDir="$(MSBuildProjectDirectory)"
|
|
ResourcePrefix="$(XamMacResourcePrefix)">
|
|
<Output TaskParameter="BundleResourcesWithLogicalNames" ItemName="_ColladaAssetWithLogicalName" />
|
|
</CollectBundleResources>
|
|
</Target>
|
|
|
|
<Target Name="_CoreCompileColladaAssets"
|
|
DependsOnTargets="_CollectColladaAssets;_DetectSdkLocations"
|
|
Inputs="@(_ColladaAssetWithLogicalName)"
|
|
Outputs="$(IntermediateOutputPath)%(_ColladaAssetWithLogicalName.LogicalName)"
|
|
>
|
|
|
|
<ScnTool
|
|
Condition="'$(IsMacEnabled)' == 'true'"
|
|
SessionId="$(BuildSessionId)"
|
|
ToolExe="$(ScnToolExe)"
|
|
ToolPath="$(ScnToolPath)"
|
|
SdkRoot="$(_SdkRoot)"
|
|
SdkDevPath="$(_SdkDevPath)"
|
|
SdkVersion="$(MacOSXSdkVersion)"
|
|
IntermediateOutputPath="$(IntermediateOutputPath)"
|
|
InputScene="%(_ColladaAssetWithLogicalName.Identity)"
|
|
OutputScene="$(IntermediateOutputPath)%(_ColladaAssetWithLogicalName.LogicalName)">
|
|
</ScnTool>
|
|
|
|
<CreateItem Include="$(IntermediateOutputPath)%(_ColladaAssetWithLogicalName.LogicalName)" AdditionalMetadata="LogicalName=%(_ColladaAssetWithLogicalName.LogicalName)">
|
|
<Output TaskParameter="Include" ItemName="_BundleResourceWithLogicalName" />
|
|
</CreateItem>
|
|
</Target>
|
|
|
|
<Target Name="_CompileImageAssets" DependsOnTargets="_DetectAppManifest;_DetectSdkLocations;_BeforeCoreCompileImageAssets;_ReadCompileImageAssets;_CoreCompileImageAssets" />
|
|
|
|
<Target Name="_BeforeCoreCompileImageAssets"
|
|
Inputs="@(ImageAsset);$(_AppManifest)"
|
|
Outputs="$(_ACTool_PartialAppManifestCache);$(_ACTool_BundleResourceCache)">
|
|
|
|
<!-- If any ImageAsset or AppManifest is newer than the generated items list, we delete them so that the _CoreCompileImageAssets
|
|
target runs again and updates those lists for the next run
|
|
-->
|
|
<Delete Files="$(_ACTool_PartialAppManifestCache);$(_ACTool_BundleResourceCache)" />
|
|
<RemoveDir Directories="$(IntermediateOutputPath)actool" />
|
|
</Target>
|
|
|
|
<Target Name="_ReadCompileImageAssets"
|
|
DependsOnTargets="_BeforeCoreCompileImageAssets">
|
|
|
|
<!-- If _BeforeCoreCompileImageAssets did not delete the generated items lists from _CoreCompileImageAsset, then we read them
|
|
since that target won't run and we need the output items that are cached in those files, which includes full metadata -->
|
|
<ReadItemsFromFile File="$(_ACTool_PartialAppManifestCache)" Condition="Exists('$(_ACTool_PartialAppManifestCache)')">
|
|
<Output TaskParameter="Items" ItemName="_PartialAppManifest" />
|
|
</ReadItemsFromFile>
|
|
<ReadItemsFromFile File="$(_ACTool_BundleResourceCache)" Condition="Exists('$(_ACTool_BundleResourceCache)')">
|
|
<Output TaskParameter="Items" ItemName="_BundleResourceWithLogicalName" />
|
|
</ReadItemsFromFile>
|
|
</Target>
|
|
|
|
<Target Name="_CoreCompileImageAssets"
|
|
Inputs="@(ImageAsset);$(_AppManifest)"
|
|
Outputs="$(_ACTool_PartialAppManifestCache);$(_ACTool_BundleResourceCache)"
|
|
DependsOnTargets="_DetectAppManifest;_DetectSdkLocations;_BeforeCoreCompileImageAssets">
|
|
|
|
<ACTool
|
|
SessionId="$(BuildSessionId)"
|
|
Condition="'$(IsMacEnabled)' == 'true' And '@(ImageAsset)' != ''"
|
|
ToolExe="$(ACToolExe)"
|
|
ToolPath="$(ACToolPath)"
|
|
AppManifest="$(_AppManifest)"
|
|
EnableOnDemandResources="false"
|
|
ImageAssets="@(ImageAsset)"
|
|
OptimizePngs="false"
|
|
OutputPath="$(OutputPath)"
|
|
IntermediateOutputPath="$(IntermediateOutputPath)"
|
|
ProjectDir="$(MSBuildProjectDirectory)"
|
|
ResourcePrefix="$(XamMacResourcePrefix)"
|
|
|
|
SdkDevPath="$(_SdkDevPath)"
|
|
SdkBinPath="$(_SdkBinPath)"
|
|
SdkUsrPath="$(_SdkUsrPath)"
|
|
SdkPlatform="MacOSX"
|
|
SdkVersion="$(MacOSXSdkVersion)">
|
|
<Output TaskParameter="PartialAppManifest" ItemName="_PartialAppManifest" />
|
|
<Output TaskParameter="BundleResources" ItemName="_BundleResourceWithLogicalName" />
|
|
|
|
<!-- Local items to be persisted to items files -->
|
|
<Output TaskParameter="PartialAppManifest" ItemName="_ACTool_PartialAppManifest" />
|
|
<Output TaskParameter="BundleResources" ItemName="_ACTool_BundleResources" />
|
|
</ACTool>
|
|
|
|
<!-- Cache the generated outputs items for incremental build support -->
|
|
<WriteItemsToFile Items="@(_ACTool_PartialAppManifest)" ItemName="_PartialAppManifest" File="$(_ACTool_PartialAppManifestCache)" Overwrite="true" IncludeMetadata="true" />
|
|
<WriteItemsToFile Items="@(_ACTool_BundleResources)" ItemName="_BundleResourceWithLogicalName" File="$(_ACTool_BundleResourceCache)" Overwrite="true" IncludeMetadata="true" />
|
|
<ItemGroup>
|
|
<FileWrites Include="$(_ACTool_PartialAppManifestCache);$(_ACTool_BundleResourceCache)" />
|
|
</ItemGroup>
|
|
</Target>
|
|
|
|
<Target Name="_CompileSceneKitAssets" DependsOnTargets="_DetectAppManifest;_DetectSdkLocations;_CoreCompileSceneKitAssets" />
|
|
|
|
<Target Name="_CoreCompileSceneKitAssets" DependsOnTargets="_GenerateBundleName">
|
|
<CompileSceneKitAssets
|
|
Condition="'$(IsMacEnabled)' == 'true'"
|
|
SessionId="$(BuildSessionId)"
|
|
AppBundleName="$(_AppBundleName)$(AppBundleExtension)"
|
|
ToolExe="$(CopySceneKitAssetsExe)"
|
|
ToolPath="$(CopySceneKitAssetsPath)"
|
|
SceneKitAssets="@(SceneKitAsset)"
|
|
IntermediateOutputPath="$(IntermediateOutputPath)"
|
|
ProjectDir="$(MSBuildProjectDirectory)"
|
|
ResourcePrefix="$(XamMacResourcePrefix)"
|
|
SdkPlatform="MacOSX"
|
|
SdkDevPath="$(_SdkDevPath)"
|
|
SdkRoot="$(_SdkRoot)"
|
|
SdkVersion="$(MacOSXSdkVersion)">
|
|
<Output TaskParameter="BundleResources" ItemName="FileWrites" />
|
|
<Output TaskParameter="BundleResources" ItemName="_BundleResourceWithLogicalName" />
|
|
</CompileSceneKitAssets>
|
|
</Target>
|
|
|
|
<Target Name="_CompileInterfaceDefinitions" DependsOnTargets="_DetectAppManifest;_DetectSdkLocations;_CoreCompileInterfaceDefinitions" />
|
|
|
|
<Target Name="_CoreCompileInterfaceDefinitions">
|
|
<IBTool
|
|
Condition="'$(IsMacEnabled)' == 'true'"
|
|
SessionId="$(BuildSessionId)"
|
|
ToolExe="$(IBToolExe)"
|
|
ToolPath="$(IBToolPath)"
|
|
AppManifest="$(_AppManifest)"
|
|
EnableOnDemandResources="false"
|
|
InterfaceDefinitions="@(InterfaceDefinition)"
|
|
IntermediateOutputPath="$(IntermediateOutputPath)"
|
|
SdkPlatform="MacOSX"
|
|
ProjectDir="$(MSBuildProjectDirectory)"
|
|
ResourcePrefix="$(XamMacResourcePrefix)"
|
|
SdkDevPath="$(_SdkDevPath)"
|
|
SdkBinPath="$(_SdkBinPath)"
|
|
SdkUsrPath="$(_SdkUsrPath)"
|
|
SdkRoot="$(_SdkRoot)"
|
|
SdkVersion="$(MacOSXSdkVersion)">
|
|
<Output TaskParameter="OutputManifests" ItemName="FileWrites" />
|
|
<Output TaskParameter="BundleResources" ItemName="FileWrites" />
|
|
<Output TaskParameter="BundleResources" ItemName="_BundleResourceWithLogicalName" />
|
|
</IBTool>
|
|
</Target>
|
|
|
|
<Target Name="_CreatePkgInfo" DependsOnTargets="_GenerateBundleName" Outputs="$(_AppBundlePath)Contents\PkgInfo">
|
|
<CreatePkgInfo SessionId="$(BuildSessionId)" Condition="'$(IsMacEnabled)' == 'true'" OutputPath="$(_AppBundlePath)Contents\PkgInfo" />
|
|
|
|
<Ditto
|
|
SessionId="$(BuildSessionId)"
|
|
Condition="'@(_ResolvedAppExtensionReferences)' != '' And '%(_ResolvedAppExtensionReferences.Identity)' != '' And '$(IsMacEnabled)' == 'true'"
|
|
ToolExe="$(DittoExe)"
|
|
ToolPath="$(DittoPath)"
|
|
Source="@(_ResolvedAppExtensionReferences)"
|
|
Destination="$(_AppBundlePath)PlugIns\%(_ResolvedAppExtensionReferences.FileName)%(_ResolvedAppExtensionReferences.Extension)"
|
|
/>
|
|
</Target>
|
|
|
|
<Target Name="_CopyAppExtensionsToBundle" Condition="'$(IsAppExtension)' != 'true'" DependsOnTargets="_ResolveAppExtensionReferences">
|
|
<MakeDir Directories="$(_AppBundlePath)Contents\PlugIns" Condition="'@(_ResolvedAppExtensionReferences)' != ''" />
|
|
|
|
<Ditto
|
|
SessionId="$(BuildSessionId)"
|
|
Condition="'@(_ResolvedAppExtensionReferences)' != '' And '%(_ResolvedAppExtensionReferences.Identity)' != '' And '$(IsMacEnabled)' == 'true'"
|
|
ToolExe="$(DittoExe)"
|
|
ToolPath="$(DittoPath)"
|
|
Source="@(_ResolvedAppExtensionReferences)"
|
|
Destination="$(_AppBundlePath)Contents\PlugIns\%(_ResolvedAppExtensionReferences.FileName)%(_ResolvedAppExtensionReferences.Extension)"
|
|
/>
|
|
</Target>
|
|
|
|
<Import Project="$(MSBuildThisFileDirectory)Xamarin.Mac.xbuild.targets"
|
|
Condition="'$(IsXBuild)' == 'true' "/>
|
|
|
|
<Import Project="$(MSBuildThisFileDirectory)Xamarin.Mac.msbuild.targets"
|
|
Condition="'$(IsXBuild)' != 'true' "/>
|
|
|
|
<Target Name="_SeparateAppExtensionReferences" BeforeTargets="AssignProjectConfiguration" Condition="'$(IsAppExtension)' != 'true'">
|
|
<CreateItem Include="@(ProjectReference)" PreserveExistingMetadata="true" Condition="'%(Identity)' != '' And '%(ProjectReference.IsAppExtension)' == 'true'">
|
|
<Output ItemName="_AppExtensionReference" TaskParameter="Include" />
|
|
</CreateItem>
|
|
|
|
<ItemGroup>
|
|
<ProjectReference Remove="@(_AppExtensionReference)" />
|
|
</ItemGroup>
|
|
|
|
<!--<Warning Text="_SeparateAppExtensionReferences: @(_AppExtensionReference)"/>-->
|
|
</Target>
|
|
|
|
<Target Name="_AssignAppExtensionConfiguration" Condition="'@(_AppExtensionReference)' != ''">
|
|
<!-- assign configs if building a solution file -->
|
|
<AssignProjectConfiguration
|
|
ProjectReferences = "@(_AppExtensionReference)"
|
|
SolutionConfigurationContents = "$(CurrentSolutionConfigurationContents)"
|
|
Condition="'$(CurrentSolutionConfigurationContents)' != ''">
|
|
|
|
<Output TaskParameter="AssignedProjects" ItemName="_AppExtensionReferenceWithConfiguration"/>
|
|
</AssignProjectConfiguration>
|
|
|
|
<!-- Else, just -->
|
|
<CreateItem Include="@(_AppExtensionReference)" Condition="'$(CurrentSolutionConfigurationContents)' == ''">
|
|
<Output TaskParameter="Include" ItemName="_AppExtensionReferenceWithConfiguration"/>
|
|
</CreateItem>
|
|
|
|
<!--<Warning Text="_AssignAppExtensionConfiguration: @(_AppExtensionReferenceWithConfiguration)"/>-->
|
|
</Target>
|
|
|
|
<!-- Split Mac App Extension projects into 2 lists
|
|
_AppExtensionReferenceWithConfigurationExistent: Projects existent on disk
|
|
_AppExtensionReferenceWithConfigurationNonExistent: Projects non-existent on disk -->
|
|
<Target Name="_SplitAppExtensionReferencesByExistent" DependsOnTargets="_AssignAppExtensionConfiguration">
|
|
<CreateItem Include="@(_AppExtensionReferenceWithConfiguration)" Condition="'@(_AppExtensionReferenceWithConfiguration)' != ''">
|
|
<Output TaskParameter="Include" ItemName="_AppExtensionReferenceWithConfigurationExistent"
|
|
Condition="Exists ('%(_AppExtensionReferenceWithConfiguration.Identity)')"/>
|
|
|
|
<Output TaskParameter="Include" ItemName="_AppExtensionReferenceWithConfigurationNonExistent"
|
|
Condition="!Exists ('%(_AppExtensionReferenceWithConfiguration.Identity)')"/>
|
|
</CreateItem>
|
|
|
|
<!--<Warning Text="_SplitAppExtensionReferencesByExistent: @(_AppExtensionReferenceWithConfigurationExistent)"/>-->
|
|
</Target>
|
|
|
|
<Target Name="_ResolveAppExtensionReferences" DependsOnTargets="_SplitAppExtensionReferencesByExistent">
|
|
<PropertyGroup>
|
|
<!-- When building a .sln with xbuild or building from IDE, the referenced projects are already built. -->
|
|
<_BuildReferencedExtensionProjects Condition="'$(IsXBuild)' == 'true' and '$(BuildingSolutionFile)' != 'true' and '$(BuildingInsideVisualStudio)' != 'true'">true</_BuildReferencedExtensionProjects>
|
|
|
|
<!-- When building a .sln with msbuild, the dependent projects may not be built. So, always build
|
|
the referenced projects unless building from IDE. -->
|
|
<_BuildReferencedExtensionProjects Condition="'$(IsXBuild)' != 'true' and '$(BuildingInsideVisualStudio)' != 'true'">true</_BuildReferencedExtensionProjects>
|
|
</PropertyGroup>
|
|
|
|
<!-- If the referenced projects have already been built, then just get the target paths -->
|
|
<MSBuild
|
|
Projects="@(_AppExtensionReferenceWithConfigurationExistent)"
|
|
Targets="GetBundleTargetPath"
|
|
Properties="%(_AppExtensionReferenceWithConfigurationExistent.SetConfiguration); %(_AppExtensionReferenceWithConfigurationExistent.SetPlatform)"
|
|
Condition="'@(_AppExtensionReferenceWithConfigurationExistent)' != '' and '$(_BuildReferencedExtensionProjects)' != 'true'">
|
|
|
|
<Output TaskParameter="TargetOutputs" ItemName="_ResolvedAppExtensionReferences" Condition="'%(_AppExtensionReferenceWithConfigurationExistent.ReferenceOutputAssembly)' != 'false'"/>
|
|
</MSBuild>
|
|
|
|
<!-- Building a project directly, build the referenced projects also -->
|
|
<MSBuild
|
|
Projects="@(_AppExtensionReferenceWithConfigurationExistent)"
|
|
Properties="%(_AppExtensionReferenceWithConfigurationExistent.SetConfiguration); %(_AppExtensionReferenceWithConfigurationExistent.SetPlatform)"
|
|
Condition="'@(_AppExtensionReferenceWithConfigurationExistent)' != '' and '$(_BuildReferencedExtensionProjects)' == 'true'">
|
|
|
|
<Output TaskParameter="TargetOutputs" ItemName="_ResolvedAppExtensionReferences" Condition="'%(_AppExtensionReferenceWithConfigurationExistent.ReferenceOutputAssembly)' != 'false'"/>
|
|
</MSBuild>
|
|
|
|
<Warning Text="Referenced Mac App Extension Project %(_AppExtensionReferenceWithConfigurationNonExistent.Identity) not found, ignoring."
|
|
Condition="'@(_AppExtensionReferenceWithConfigurationNonExistent)' != ''"/>
|
|
</Target>
|
|
|
|
<Import Project="$(MSBuildThisFileDirectory)$(MSBuildThisFileName).After.targets"
|
|
Condition="Exists('$(MSBuildThisFileDirectory)$(MSBuildThisFileName).After.targets')"/>
|
|
</Project>
|
|
|