Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corefx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Mellino <erme@microsoft.com>2017-03-21 22:41:05 +0300
committerEric Mellino <erme@microsoft.com>2017-03-24 21:52:40 +0300
commit33c665c2ccbd87bdad7ead85fd4e70561502214a (patch)
tree139aecf9099acc2e6f6aff48e4eaa896323b53e4 /Tools-Override
parent1dd2219b1ba4705ee8291bc0c48cc7222285e7fb (diff)
Move contents of binplace.targets
* The targets themselves are now located in FrameworkTargeting.targets. This will let us easily merge them back into buildtools, where the common logic should live * The specific properties used in corefx are now in dir.targets.
Diffstat (limited to 'Tools-Override')
-rw-r--r--Tools-Override/FrameworkTargeting.targets110
1 files changed, 110 insertions, 0 deletions
diff --git a/Tools-Override/FrameworkTargeting.targets b/Tools-Override/FrameworkTargeting.targets
index 71a8b0867a..a835bbe570 100644
--- a/Tools-Override/FrameworkTargeting.targets
+++ b/Tools-Override/FrameworkTargeting.targets
@@ -215,4 +215,114 @@
</ItemGroup>
</Target>
+ <!-- Binplacing targets -->
+ <Target Name="BinPlace"
+ DependsOnTargets="GetBinPlaceDirs;BinPlaceFiles;BinPlaceProps"
+ AfterTargets="CopyFilesToOutputDirectory"
+ Condition="'$(BinPlaceRef)' == 'true' OR '$(BinPlaceRuntime)' == 'true'" />
+
+ <Target Name="BinPlaceFiles"
+ Condition="'@(BinPlaceDir)' != ''"
+ DependsOnTargets="GetBinPlaceItems" >
+
+ <Message Importance="low" Text="BinPlaceDir: @(BinPlaceDir)" />
+
+ <Copy SourceFiles="@(BinPlaceItem)"
+ DestinationFolder="%(BinPlaceDir.Identity)"
+ SkipUnchangedFiles="true"
+ OverwriteReadOnlyFiles="true"
+ Retries="$(CopyRetryCount)"
+ RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"
+ UseHardlinksIfPossible="$(BinPlaceUseHardlinksIfPossible)">
+ <Output TaskParameter="DestinationFiles" ItemName="FileWrites" />
+ </Copy>
+ </Target>
+
+ <UsingTask TaskName="SaveItems" AssemblyFile="$(CoreFxToolsTaskDir)CoreFx.Tools.dll"/>
+ <Target Name="BinPlaceProps"
+ Condition="'@(PackageFileDir)' != ''"
+ DependsOnTargets="GetBinPlaceItems" >
+ <PropertyGroup>
+ <_propsFilename>$(TargetName)</_propsFilename>
+ <_propsFilename Condition="'$(_propsFilename)' == ''">$(MSBuildProjectName)</_propsFilename>
+ <_projectDirLength>$(ProjectDir.Length)</_projectDirLength>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <_itemsToSave Include="@(BinPlaceItem)">
+ <!-- intentionally empty: to be set by pkgproj -->
+ <TargetPath></TargetPath>
+ </_itemsToSave>
+
+ <!-- Include source files. -->
+ <_itemsToSave Condition="'@(Compile)' != ''" Include="@(Compile->'%(FullPath)')">
+ <TargetPath>src</TargetPath>
+ <TargetPath Condition="$([System.String]::Copy('%(FullPath)').StartsWith('$(ProjectDir)'))">src/$([System.String]::Copy('%(FullPath)').Substring($(_projectDirLength)).Replace('\', '/'))</TargetPath>
+ <IsSourceCodeFile>true</IsSourceCodeFile>
+ </_itemsToSave>
+ </ItemGroup>
+
+ <Message Importance="low" Text="PackageFileDir: @(PackageFileDir)" />
+
+ <SaveItems ItemName="FileToPackage"
+ Items="@(_itemsToSave)"
+ Files="@(PackageFileDir->'%(Identity)\$(_propsFilename).props')" />
+ </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 -->
+ <FindBestConfigurations Properties="@(Property)"
+ PropertyValues="@(PropertyValue)"
+ SupportedConfigurations="$(_AllBuildConfigurations)"
+ Configurations="@(BinPlaceConfiguration)">
+ <Output TaskParameter="BestConfigurations" ItemName="_bestBinlaceConfigurations" />
+ </FindBestConfigurations>
+
+ <ItemGroup>
+ <_currentBinPlaceConfigurations Include="@(_bestBinlaceConfigurations)" Condition="'%(Identity)' == '$(Configuration)' OR '%(Identity)-$(ConfigurationGroup)' == '$(Configuration)'" />
+
+ <BinPlaceDir Condition="'$(BinPlaceRuntime)' == 'true'" Include="%(_currentBinPlaceConfigurations.RuntimePath)" />
+ <BinPlaceDir Condition="'$(BinPlaceRef)' == 'true'" Include="%(_currentBinPlaceConfigurations.RefPath)" />
+
+ <PackageFileDir Condition="'$(BinPlaceRuntime)' == 'true'" Include="%(_currentBinPlaceConfigurations.PackageFileRuntimePath)" />
+ <PackageFileDir Condition="'$(BinPlaceRef)' == 'true'" Include="%(_currentBinPlaceConfigurations.PackageFileRefPath)" />
+ </ItemGroup>
+ </Target>
+
+ <ItemGroup>
+ <AdditionalCleanDirectories Include="$(BinDir)netcoreapp" />
+ </ItemGroup>
+
+ <!-- Incremental clean only cleans paths under Intermediate or OutDir, handle additional paths -->
+ <Target Name="_CleanGetCurrentAdditionalFileWrites" BeforeTargets="_CleanGetCurrentAndPriorFileWrites">
+ <!-- find files under paths we care about and add them to _CleanCurrentFileWrites to ensure they are written to the file list -->
+ <FindUnderPath Path="%(AdditionalCleanDirectories.Identity)" Files="@(FileWrites)" UpdateToAbsolutePaths="true">
+ <Output TaskParameter="InPath" ItemName="_CleanCurrentFileWrites" />
+ </FindUnderPath>
+ </Target>
+
+ <Target Name="IncrementalCleanAdditionalDirectories" BeforeTargets="IncrementalClean">
+ <ItemGroup>
+ <_CleanOrphanAdditionalFileWrites Include="@(_CleanPriorFileWrites)" Exclude="@(_CleanCurrentFileWrites)" />
+ </ItemGroup>
+ <FindUnderPath Path="%(AdditionalCleanDirectories.Identity)" Files="@(_CleanOrphanAdditionalFileWrites)">
+ <Output TaskParameter="InPath" ItemName="_CleanOrphanFileWritesInAdditionalDirectories" />
+ </FindUnderPath>
+
+ <!-- Delete the orphaned files. IncrementalClean will remove these from the file list -->
+ <Delete Files="@(_CleanOrphanFileWritesInAdditionalDirectories)" TreatErrorsAsWarnings="true">
+ <Output TaskParameter="DeletedFiles" ItemName="_CleanOrphanFilesDeleted" />
+ </Delete>
+ </Target>
+
</Project>