[msbuild] Share the app extensions targets between iOS and Mac. (#10039)
* Share the following targets: * _ResolveAppExtensionReferences * _SplitAppExtensionReferencesByExistent * _AssignAppExtensionConfiguration * _SeparateAppExtensionReferences * _CopyAppExtensionsToBundle The first four were pretty much identical between iOS and Mac already, and needed very few changes. The latter, _CopyAppExtensionsToBundle, required a little bit of tweaking to the targets to make sure it works for both iOS and Mac: * Removed the conditions on the Ditto task to check if we have app extensions - this is unnecessary because Inputs/Outputs on the target itself (which weren't there when the Ditto task conditions were written). * Added a '_PlaceAppExtensions' target that calculates where in the container's app bundle extensions should be placed (the '_AppExtensionRoot' property), and the name of the containing folder (the 'ContainerName' metadata).
This commit is contained in:
Родитель
32f360ed42
Коммит
354beec69c
|
@ -386,106 +386,8 @@ Copyright (C) 2014 Xamarin. All rights reserved.
|
|||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="_CopyAppExtensionsToBundle" Condition="'$(IsAppExtension)' != 'true'" DependsOnTargets="_ExtendAppExtensionReferences">
|
||||
<MakeDir Directories="$(_AppBundlePath)Contents\PlugIns" Condition="'%(_ResolvedAppExtensionReferences.Extension)' == '.appex'" />
|
||||
<MakeDir Directories="$(_AppBundlePath)Contents\XPCServices" Condition="'%(_ResolvedAppExtensionReferences.Extension)' == '.xpc'" />
|
||||
|
||||
<Ditto
|
||||
SessionId="$(BuildSessionId)"
|
||||
Condition="'@(_ResolvedAppExtensionReferences)' != '' And '%(_ResolvedAppExtensionReferences.Identity)' != '' And '%(_ResolvedAppExtensionReferences.Extension)' == '.appex' And '$(IsMacEnabled)' == 'true'"
|
||||
ToolExe="$(DittoExe)"
|
||||
ToolPath="$(DittoPath)"
|
||||
Source="@(_ResolvedAppExtensionReferences)"
|
||||
Destination="$(_AppBundlePath)Contents\PlugIns\%(_ResolvedAppExtensionReferences.FileName)%(_ResolvedAppExtensionReferences.Extension)"
|
||||
/>
|
||||
|
||||
<Ditto
|
||||
SessionId="$(BuildSessionId)"
|
||||
Condition="'@(_ResolvedAppExtensionReferences)' != '' And '%(_ResolvedAppExtensionReferences.Identity)' != '' And '%(_ResolvedAppExtensionReferences.Extension)' == '.xpc' And '$(IsMacEnabled)' == 'true'"
|
||||
ToolExe="$(DittoExe)"
|
||||
ToolPath="$(DittoPath)"
|
||||
Source="@(_ResolvedAppExtensionReferences)"
|
||||
Destination="$(_AppBundlePath)Contents\XPCServices\%(_ResolvedAppExtensionReferences.FileName)%(_ResolvedAppExtensionReferences.Extension)"
|
||||
/>
|
||||
</Target>
|
||||
|
||||
<Import Project="$(MSBuildThisFileDirectory)Xamarin.Mac.msbuild.targets" />
|
||||
|
||||
<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 msbuild, the dependent projects may not be built. So, always build
|
||||
the referenced projects unless building from IDE. -->
|
||||
<_BuildReferencedExtensionProjects Condition="'$(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>
|
||||
|
||||
<PropertyGroup>
|
||||
<ArchiveDependsOn>
|
||||
_CoreArchive
|
||||
|
|
|
@ -912,6 +912,124 @@ Copyright (C) 2018 Microsoft. All rights reserved.
|
|||
</PrepareResourceRules>
|
||||
</Target>
|
||||
|
||||
<!-- App extensions -->
|
||||
|
||||
<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>
|
||||
</Target>
|
||||
|
||||
<Target Name="_SeparateAppExtensionReferences" BeforeTargets="AssignProjectConfiguration">
|
||||
<CreateItem Include="@(ProjectReference)" PreserveExistingMetadata="true" Condition="'%(Identity)' != '' And '%(ProjectReference.IsAppExtension)' == 'true'">
|
||||
<Output ItemName="_AppExtensionReference" TaskParameter="Include" />
|
||||
</CreateItem>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Remove="@(_AppExtensionReference)" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<!-- Split 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>
|
||||
</Target>
|
||||
|
||||
<Target Name="_ResolveAppExtensionReferences" DependsOnTargets="_SplitAppExtensionReferencesByExistent">
|
||||
<PropertyGroup>
|
||||
<!-- 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="'$(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>
|
||||
|
||||
<!-- Build the referenced project if required -->
|
||||
<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 $(_PlatformName) App Extension Project %(_AppExtensionReferenceWithConfigurationNonExistent.Identity) not found, ignoring."
|
||||
Condition="'@(_AppExtensionReferenceWithConfigurationNonExistent)' != ''"/>
|
||||
</Target>
|
||||
|
||||
<Target Name="_PlaceAppExtensions" DependsOnTargets="_ExtendAppExtensionReferences;_ResolveAppExtensionReferences">
|
||||
<ItemGroup>
|
||||
<!-- Add a 'ContainerName' metadata to indicate where the extension should go inside the container's app bundle -->
|
||||
<_ResolvedAppExtensionReferences Condition="'%(_ResolvedAppExtensionReferences.Extension)' == '.appex'">
|
||||
<ContainerName>PlugIns</ContainerName>
|
||||
</_ResolvedAppExtensionReferences>
|
||||
<_ResolvedAppExtensionReferences Condition="'%(_ResolvedAppExtensionReferences.Extension)' == '.xpc'">
|
||||
<ContainerName>XPCServices</ContainerName>
|
||||
</_ResolvedAppExtensionReferences>
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<_AppExtensionRoot Condition="'$(_PlatformName)' == 'macOS'">$(_AppBundlePath)Contents\</_AppExtensionRoot>
|
||||
<_AppExtensionRoot Condition="'$(_PlatformName)' != 'macOS'">$(_AppBundlePath)</_AppExtensionRoot>
|
||||
</PropertyGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="_CopyAppExtensionsToBundle"
|
||||
DependsOnTargets="_ExtendAppExtensionReferences;_ResolveAppExtensionReferences;_PlaceAppExtensions"
|
||||
Inputs="@(_ResolvedAppExtensionReferences)"
|
||||
Outputs="$(_AppExtensionRoot)%(_ResolvedAppExtensionReferences.ContainerName)\%(_ResolvedAppExtensionReferences.FileName)%(_ResolvedAppExtensionReferences.Extension)"
|
||||
>
|
||||
<MakeDir
|
||||
SessionId="$(BuildSessionId)"
|
||||
Condition="'$(IsMacEnabled)' == 'true'"
|
||||
Directories="$(_AppExtensionRoot)%(_ResolvedAppExtensionReferences.ContainerName)"
|
||||
/>
|
||||
|
||||
<Ditto
|
||||
SessionId="$(BuildSessionId)"
|
||||
Condition="'$(IsMacEnabled)' == 'true'"
|
||||
ToolExe="$(DittoExe)"
|
||||
ToolPath="$(DittoPath)"
|
||||
Source="@(_ResolvedAppExtensionReferences)"
|
||||
Destination="$(_AppExtensionRoot)%(_ResolvedAppExtensionReferences.ContainerName)\%(_ResolvedAppExtensionReferences.FileName)%(_ResolvedAppExtensionReferences.Extension)"
|
||||
/>
|
||||
|
||||
<!-- Delete any code signatures and dSYM dirs since they are now invalid -->
|
||||
<RemoveDir
|
||||
SessionId="$(BuildSessionId)"
|
||||
Condition="'$(IsMacEnabled)' == 'true'"
|
||||
Directories="$(_AppExtensionRoot)%(_ResolvedAppExtensionReferences.ContainerName)\%(_ResolvedAppExtensionReferences.FileName)%(_ResolvedAppExtensionReferences.Extension)\_CodeSignature;
|
||||
$(_AppBundlePath)..\%(_ResolvedAppExtensionReferences.FileName)%(_ResolvedAppExtensionReferences.Extension).dSYM"
|
||||
/>
|
||||
</Target>
|
||||
|
||||
<Import Project="$(MSBuildThisFileDirectory)Xamarin.Shared.ObjCBinding.targets" Condition="'$(IsBindingProject)' == 'true'" />
|
||||
|
||||
<!-- Xamarin.ImplicitFacade.targets will detect if we need to add an implicit reference to netstandard.dll -->
|
||||
|
|
|
@ -954,82 +954,6 @@ Copyright (C) 2013-2016 Xamarin. All rights reserved.
|
|||
</EmbedMobileProvision>
|
||||
</Target>
|
||||
|
||||
<Target Name="_SeparateAppExtensionReferences" BeforeTargets="AssignProjectConfiguration">
|
||||
<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 iOS 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 msbuild, the dependent projects may not be built. So, always build
|
||||
the referenced projects unless building from IDE. -->
|
||||
<_BuildReferencedExtensionProjects Condition="'$(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>
|
||||
|
||||
<!-- Build the referenced project if required -->
|
||||
<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 iOS App Extension Project %(_AppExtensionReferenceWithConfigurationNonExistent.Identity) not found, ignoring."
|
||||
Condition="'@(_AppExtensionReferenceWithConfigurationNonExistent)' != ''"/>
|
||||
</Target>
|
||||
|
||||
<Target Name="_DetectDebugNetworkConfiguration">
|
||||
<DetectDebugNetworkConfiguration
|
||||
SessionId="$(BuildSessionId)"
|
||||
|
@ -1043,25 +967,6 @@ Copyright (C) 2013-2016 Xamarin. All rights reserved.
|
|||
</DetectDebugNetworkConfiguration>
|
||||
</Target>
|
||||
|
||||
<Target Name="_CopyAppExtensionsToBundle" DependsOnTargets="_ResolveAppExtensionReferences" Inputs="@(_ResolvedAppExtensionReferences)"
|
||||
Outputs="$(_AppBundlePath)PlugIns\%(_ResolvedAppExtensionReferences.FileName)%(_ResolvedAppExtensionReferences.Extension)">
|
||||
|
||||
<MakeDir SessionId="$(BuildSessionId)" Condition="'$(IsMacEnabled)' == 'true' And '@(_ResolvedAppExtensionReferences)' != ''" Directories="$(_AppBundlePath)PlugIns" />
|
||||
|
||||
<Ditto
|
||||
SessionId="$(BuildSessionId)"
|
||||
Condition="'$(IsMacEnabled)' == 'true' And '@(_ResolvedAppExtensionReferences)' != '' And '%(_ResolvedAppExtensionReferences.Identity)' != ''"
|
||||
ToolExe="$(DittoExe)"
|
||||
ToolPath="$(DittoPath)"
|
||||
Source="@(_ResolvedAppExtensionReferences)"
|
||||
Destination="$(_AppBundlePath)PlugIns\%(_ResolvedAppExtensionReferences.FileName)%(_ResolvedAppExtensionReferences.Extension)"
|
||||
/>
|
||||
|
||||
<!-- Delete any code signatures and dSYM dirs since they are now invalid -->
|
||||
<RemoveDir SessionId="$(BuildSessionId)" Condition="'$(IsMacEnabled)' == 'true'" Directories="$(_AppBundlePath)PlugIns\%(_ResolvedAppExtensionReferences.FileName)%(_ResolvedAppExtensionReferences.Extension)\_CodeSignature;
|
||||
$(_AppBundlePath)..\%(_ResolvedAppExtensionReferences.FileName)%(_ResolvedAppExtensionReferences.Extension).dSYM" />
|
||||
</Target>
|
||||
|
||||
<Target Name="_ValidateAppBundle" Condition="'$(IsAppExtension)' == 'false' And '$(IsWatchApp)' == 'false'" DependsOnTargets="_DetectSdkLocations;_ComputeTargetFrameworkMoniker;_GenerateBundleName">
|
||||
<ValidateAppBundleTask
|
||||
Condition="'$(IsMacEnabled)' == 'true'"
|
||||
|
|
Загрузка…
Ссылка в новой задаче