diff options
author | Eric St. John <ericstj@microsoft.com> | 2017-02-02 00:41:56 +0300 |
---|---|---|
committer | Eric St. John <ericstj@microsoft.com> | 2017-02-02 05:27:15 +0300 |
commit | 36a7f40e06aa5bd2bb04afe14f23f32aca8a68b7 (patch) | |
tree | 1073f81cdd0a9e373a68d066b3ce507bb514b3a4 /binplace.targets | |
parent | 8216d8e1603546bbe88a26e148be4bb54d8f1f67 (diff) |
Make external use binplacing
This switches the external dir to binplace rather than copy to output.
This is more flexible as it will conditionally binplace to many
locations based on what's needed for the configuration.
Diffstat (limited to 'binplace.targets')
-rw-r--r-- | binplace.targets | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/binplace.targets b/binplace.targets index 6621c721c8..6f3d155784 100644 --- a/binplace.targets +++ b/binplace.targets @@ -11,7 +11,7 @@ <BinPlaceStuffDependsOn Condition="'$(IsRuntimeAssembly)' == 'true' OR '$(IsRuntimeAndReferenceAssembly)' == 'true'">$(BinPlaceStuffDependsOn);BinPlaceRuntimeAssembly</BinPlaceStuffDependsOn> </PropertyGroup> - <ItemGroup> + <ItemGroup Condition="'@(BinplaceConfiguration)' == ''"> <BinplaceConfiguration Include="$(BuildConfiguration)"> <RefPath>$(BuildConfigurationRefPath)</RefPath> <RuntimePath>$(RuntimePath)</RuntimePath> @@ -31,22 +31,28 @@ <Message Importance="low" Text="IsRuntimeAndReferenceAssembly: $(IsRuntimeAndReferenceAssembly)" /> </Target> - <Target Name="BinPlaceReferenceAssembly" DependsOnTargets="GetBinplaceDirs"> + <Target Name="BinPlaceReferenceAssembly" DependsOnTargets="GetBinplaceDirs;GetBinplaceItems"> <Message Importance="low" Text="TargetingPackDir: @(TargetingPackDir)" /> - <Copy Condition="'@(TargetingPackDir)' != ''" SourceFiles="$(TargetPath)" DestinationFolder="%(TargetingPackDir.Identity)" > + <Copy Condition="'@(TargetingPackDir)' != ''" SourceFiles="@(BinplaceItem)" DestinationFolder="%(TargetingPackDir.Identity)" > <Output TaskParameter="DestinationFiles" ItemName="FileWrites" /> </Copy> </Target> - <Target Name="BinPlaceRuntimeAssembly" DependsOnTargets="GetBinplaceDirs"> - <Copy Condition="'@(RuntimeDir)' != ''" SourceFiles="$(TargetPath)" DestinationFolder="%(RuntimeDir.Identity)"> - <Output TaskParameter="DestinationFiles" ItemName="FileWrites" /> - </Copy> - <Copy Condition="'@(RuntimeDir)' != '' And Exists($(TargetPath.Replace('.dll', '.pdb')))" SourceFiles="$(TargetPath.Replace('.dll', '.pdb'))" DestinationFolder="%(RuntimeDir.Identity)"> + <Target Name="BinPlaceRuntimeAssembly" DependsOnTargets="GetBinplaceDirs;GetBinplaceItems"> + <Copy Condition="'@(RuntimeDir)' != ''" SourceFiles="@(BinplaceItem)" DestinationFolder="%(RuntimeDir.Identity)"> <Output TaskParameter="DestinationFiles" ItemName="FileWrites" /> </Copy> </Target> + <Target Name="GetBinplaceItems" DependsOnTargets="GetCopyToOutputDirectoryItems"> + <ItemGroup> + <BinplaceItem Condition="Exists('$(TargetPath)')" Include="$(TargetPath)" /> + <BinplaceItem Condition="Exists('$(TargetDir)$(TargetName).pdb')" Include="$(TargetDir)$(TargetName).pdb" /> + <BinplaceItem Condition="'$(BinplaceReferenceCopyLocalPaths)' != 'false'" Include="@(ReferenceCopyLocalPaths)" /> + <BinplaceItem Condition="'$(BinplaceCopyToOutputDirectoryItems)' != 'false'" Include="@(AllItemsFullPathWithTargetPath)" /> + </ItemGroup> + </Target> + <Target Name="GetBinplaceDirs" DependsOnTargets="GetBuildConfigurations"> <!-- find which, if any, build configuration of this project is best for each binplace configuration --> |