Microsoft.Data.SqlClient.SNI.targets 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <!--
  2. *
  3. * Microsoft.Data.SqlClient.SNI.targets -
  4. *
  5. * WARNING: This MSBuild file requires MSBuild 4.0 features.
  6. *
  7. -->
  8. <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  9. <!--
  10. ******************************************************************************
  11. ** Load Per-User Settings **
  12. ******************************************************************************
  13. -->
  14. <!--
  15. NOTE: If the per-user settings file exists, import it now. The contained
  16. settings, if any, will override the default ones provided below.
  17. -->
  18. <Import Condition="'$(MSBuildThisFileDirectory)' != '' And
  19. HasTrailingSlash('$(MSBuildThisFileDirectory)') And
  20. Exists('$(MSBuildThisFileDirectory)Microsoft.Data.SqlClient.SNI.targets.user')"
  21. Project="$(MSBuildThisFileDirectory)Microsoft.Data.SqlClient.SNI.targets.user" />
  22. <!--
  23. ******************************************************************************
  24. ** Library Build Items **
  25. ******************************************************************************
  26. -->
  27. <ItemGroup>
  28. <SNIFiles Condition="'$(MSBuildThisFileDirectory)' != '' And
  29. HasTrailingSlash('$(MSBuildThisFileDirectory)')"
  30. Include="$(MSBuildThisFileDirectory)**\SNI.*" />
  31. </ItemGroup>
  32. <!--
  33. ******************************************************************************
  34. ** Library Content Items **
  35. ******************************************************************************
  36. -->
  37. <ItemGroup Condition="'$(ContentSNIFiles)' != '' And
  38. '$(ContentSNIFiles)' != 'false' And
  39. '@(SNIFiles)' != ''">
  40. <Content Include="@(SNIFiles)">
  41. <Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
  42. <CopyToOutputDirectory>Always</CopyToOutputDirectory>
  43. </Content>
  44. </ItemGroup>
  45. <!--
  46. ******************************************************************************
  47. ** Library Build Targets **
  48. ******************************************************************************
  49. -->
  50. <Target Name="CopySNIFiles"
  51. Condition="'$(CopySNIFiles)' != 'false' And
  52. '$(OutDir)' != '' And
  53. HasTrailingSlash('$(OutDir)') And
  54. Exists('$(OutDir)')"
  55. Inputs="@(SNIFiles)"
  56. Outputs="@(SNIFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')">
  57. <!--
  58. NOTE: Copy "SNI.dll" and all related files, for every
  59. architecture that we support, to the build output directory.
  60. -->
  61. <Copy SourceFiles="@(SNIFiles)"
  62. DestinationFiles="@(SNIFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')" />
  63. </Target>
  64. <Target Name="PublishSNIFiles" AfterTargets="Publish"
  65. Condition="'$(CopySNIFiles)' != 'false' And
  66. '$(PublishSNIFiles)' != 'false' And
  67. '$(PublishDir)' != '' And
  68. HasTrailingSlash('$(PublishDir)') And
  69. Exists('$(PublishDir)')"
  70. Inputs="@(SNIFiles)"
  71. Outputs="@(SNIFiles -> '$(PublishDir)%(RecursiveDir)%(Filename)%(Extension)')">
  72. <!--
  73. NOTE: Copy "SNI.dll" and all related files, for every
  74. architecture that we support, to the build output directory.
  75. -->
  76. <Copy SourceFiles="@(SNIFiles)"
  77. DestinationFiles="@(SNIFiles -> '$(PublishDir)%(RecursiveDir)%(Filename)%(Extension)')" />
  78. </Target>
  79. <!--
  80. ******************************************************************************
  81. -->
  82. <Target Name="CleanSNIFiles"
  83. Condition="'$(CleanSNIFiles)' != 'false' And
  84. '$(OutDir)' != '' And
  85. HasTrailingSlash('$(OutDir)') And
  86. Exists('$(OutDir)')">
  87. <!--
  88. NOTE: Delete "SNI.dll" and all related files, for every
  89. architecture that we support, from the build output directory.
  90. -->
  91. <Delete Files="@(SNIFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')" />
  92. </Target>
  93. <!--
  94. ******************************************************************************
  95. -->
  96. <Target Name="CollectSNIFiles"
  97. Condition="'$(CollectSNIFiles)' != 'false'">
  98. <ItemGroup>
  99. <FilesForPackagingFromProject Include="@(SNIFiles)">
  100. <DestinationRelativePath>bin\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
  101. </FilesForPackagingFromProject>
  102. </ItemGroup>
  103. </Target>
  104. <!--
  105. ******************************************************************************
  106. ** Library Build Properties **
  107. ******************************************************************************
  108. -->
  109. <PropertyGroup>
  110. <PostBuildEventDependsOn>
  111. $(PostBuildEventDependsOn);
  112. CopySNIFiles;
  113. </PostBuildEventDependsOn>
  114. <PublishItemsOutputGroupDependsOn>
  115. $(PublishItemsOutputGroupDependsOn);
  116. PublishSNIFiles;
  117. </PublishItemsOutputGroupDependsOn>
  118. <BuildDependsOn>
  119. $(BuildDependsOn);
  120. CopySNIFiles;
  121. </BuildDependsOn>
  122. <CleanDependsOn>
  123. $(CleanDependsOn);
  124. CleanSNIFiles;
  125. </CleanDependsOn>
  126. </PropertyGroup>
  127. <!--
  128. ******************************************************************************
  129. ** Library Publish Properties for Visual Studio 201x **
  130. ******************************************************************************
  131. -->
  132. <PropertyGroup Condition="'$(VisualStudioVersion)' == '' Or
  133. '$(VisualStudioVersion)' == '10.0' Or
  134. '$(VisualStudioVersion)' == '11.0' Or
  135. '$(VisualStudioVersion)' == '12.0' Or
  136. '$(VisualStudioVersion)' == '14.0' Or
  137. '$(VisualStudioVersion)' == '15.0' Or
  138. '$(VisualStudioVersion)' == '16.0'">
  139. <PipelineCollectFilesPhaseDependsOn>
  140. CollectSNIFiles;
  141. $(PipelineCollectFilesPhaseDependsOn);
  142. </PipelineCollectFilesPhaseDependsOn>
  143. </PropertyGroup>
  144. </Project>