diff options
Diffstat (limited to 'build.proj')
-rw-r--r-- | build.proj | 215 |
1 files changed, 148 insertions, 67 deletions
@@ -6,9 +6,13 @@ <ILMergeOutputAssemblyDirectory>$(OutputPath)unified\</ILMergeOutputAssemblyDirectory> <ILMergeOutputAssembly>$(ILMergeOutputAssemblyDirectory)$(ProductName).dll</ILMergeOutputAssembly> <ProjectTemplatesLayoutPath>$(IntermediatePath)projecttemplates\</ProjectTemplatesLayoutPath> - <ProjectTemplatesVsi>$(ProjectTemplatesLayoutPath)DotNetOpenAuth Starter Kits.vsi</ProjectTemplatesVsi> - <ExtensionVsixLayoutPath>$(IntermediatePath)Vsix\</ExtensionVsixLayoutPath> - <ExtensionVsix>$(ExtensionVsixLayoutPath)DotNetOpenAuth Starter Kits.vsix</ExtensionVsix> + + <VS2008ProjectTemplatesDirectory>$(IntermediatePath)VS2008projecttemplates\</VS2008ProjectTemplatesDirectory> + <ProjectTemplatesVsiDirectory>$(IntermediatePath)vsi\</ProjectTemplatesVsiDirectory> + + <VS2010ProjectTemplatesDirectory>$(IntermediatePath)VS2010projecttemplates\</VS2010ProjectTemplatesDirectory> + <ExtensionVsixLayoutDirectory>$(IntermediatePath)Vsix\</ExtensionVsixLayoutDirectory> + <ZipLevel>6</ZipLevel> </PropertyGroup> <Import Project="$(ProjectRoot)tools\$(ProductName).Versioning.targets"/> @@ -139,7 +143,8 @@ <Zip ZipFileName="$(ToolsZip)" Files="@(AllToolTargets)" - WorkingDirectory="$(ToolsDirectory)" /> + WorkingDirectory="$(ToolsDirectory)" + ZipLevel="$(ZipLevel)" /> </Target> <Target Name="BuildProjectTemplates"> @@ -183,21 +188,11 @@ <SkipUnchangedFiles Condition="'%(Extension)' != '.csproj'">true</SkipUnchangedFiles> <SkipUnchangedFiles Condition="'%(Extension)' == '.csproj'">false</SkipUnchangedFiles> </_ProjectTemplatesTransformSource> - <_ProjectTemplatesTransformSource Include="@(ProjectTemplatesSource)" Condition=" - '%(Extension)' == '.vscontent' - "> - <BeforeTokens>$version$</BeforeTokens> - <AfterTokens>$(BuildVersion)</AfterTokens> - <SkipUnchangedFiles>false</SkipUnchangedFiles> - </_ProjectTemplatesTransformSource> <ProjectTemplatesSource Remove="@(_ProjectTemplatesTransformSource)" /> <ProjectTemplatesLayout Include="@(ProjectTemplatesSource->'$(ProjectTemplatesLayoutPath)%(RecursiveDir)%(FileName)%(Extension)')"/> <ProjectTemplatesTransformLayout Include="@(_ProjectTemplatesTransformSource->'$(ProjectTemplatesLayoutPath)%(RecursiveDir)%(FileName)%(Extension)')"/> - <VSProjectTemplates Include="@(ProjectTemplatesLayout)" Condition="'%(Extension)' == '.vstemplate'" /> - <TopLevelVSProjectTemplates Include="@(VSProjectTemplates)" Condition="'%(RootDir)%(Directory)' == '$(ProjectTemplatesLayoutPath)'" /> - <!-- Include the template icon --> <ProjectTemplatesSource Include="$(ProjectRoot)doc\logo\favicon.ico" /> <ProjectTemplatesLayout Include="$(ProjectTemplatesLayoutPath)__TemplateIcon.ico" /> @@ -218,13 +213,13 @@ <FixupReferenceAssemblies Include="@(ProjectTemplateLibrariesTargets)" Condition="'%(Extension)' == '.dll'" /> <InjectedLibraryItems Include="@(ProjectTemplateLibrariesTargets->'lib\%(FileName)%(Extension)')" /> - <VSProjectTemplateZipFiles Include="@(TopLevelVSProjectTemplates->'%(RootDir)%(Directory)%(FileName).zip')" /> + <VSProjectTemplates Include="@(ProjectTemplatesLayout)" Condition="'%(Extension)' == '.vstemplate'" /> </ItemGroup> <Trim Inputs="@(_ProjectTemplatesTransformSource)" MetadataName="BeforeTokens" AllAfter="\"> <Output TaskParameter="Outputs" ItemName="ProjectTemplatesTransformSource" /> </Trim> - <MSBuild Projects="@(ProjectTemplates)" /> + <!--<MSBuild Projects="@(ProjectTemplates)" />--> <Copy SourceFiles="@(ProjectTemplatesSource)" DestinationFiles="@(ProjectTemplatesLayout)" SkipUnchangedFiles="true" /> <CopyWithTokenSubstitution SourceFiles="@(ProjectTemplatesTransformSource)" DestinationFiles="@(ProjectTemplatesTransformLayout)"> <Output TaskParameter="CopiedFiles" ItemName="CopiedProjectTemplateFiles" /> @@ -233,8 +228,6 @@ IntendedFiles=" @(ProjectTemplatesLayout); @(ProjectTemplatesTransformLayout); - @(VSProjectTemplateZipFiles); - $(ProjectTemplatesVsi); " /> <ChangeProjectReferenceToAssemblyReference Projects="@(CopiedProjectTemplateFiles)" @@ -251,10 +244,6 @@ Condition="'%(CopiedProjectTemplateFiles.FileName)%(CopiedProjectTemplateFiles.Extension)' == 'RelyingPartyLogic.csproj'" Items="@(InjectedLibraryItems)" /> - <DowngradeProjects - Projects="@(CopiedProjectTemplateFiles)" - Condition="'%(Extension)' == '.csproj'" - /> <MergeProjectWithVSTemplate ProjectItemTypes="@(VsTemplateProjectItemTypes)" ReplaceParametersExtensions="@(VsTemplateParameterReplaceExtensions)" @@ -262,88 +251,180 @@ /> </Target> - <Target Name="ProjectTemplates" DependsOnTargets="ProjectTemplatesLayout"> - <DiscoverProjectTemplates TopLevelTemplates="@(TopLevelVSProjectTemplates)"> - <Output TaskParameter="ProjectTemplates" ItemName="SubVSTemplates" /> - <Output TaskParameter="ProjectTemplateContents" ItemName="TemplateItemContents" /> + <Target Name="ProjectTemplates2008" DependsOnTargets="ProjectTemplatesLayout"> + <ItemGroup> + <ProjectTemplates2008Source Include="$(ProjectTemplatesLayoutPath)**" /> + <ProjectTemplates2008Layout Include="@(ProjectTemplates2008Source->'$(VS2008ProjectTemplatesDirectory)%(RecursiveDir)%(FileName)%(Extension)')" /> + <ProjectTemplates2008Layout> + <HardLink Condition=" '%(Extension)' != '.csproj' ">true</HardLink> + </ProjectTemplates2008Layout> + + <VS2008ProjectTemplates Include="@(ProjectTemplates2008Layout)" Condition="'%(Extension)' == '.vstemplate'" /> + <TopLevelVS2008ProjectTemplates Include="@(VS2008ProjectTemplates)" Condition="'%(RootDir)%(Directory)' == '$(VS2008ProjectTemplatesDirectory)'" /> + <VS2008ProjectTemplateZipFiles Include="@(TopLevelVS2008ProjectTemplates->'%(RootDir)%(Directory)%(FileName).zip')" /> + </ItemGroup> + + <HardLinkCopy SourceFiles="@(ProjectTemplates2008Source)" DestinationFiles="@(ProjectTemplates2008Layout)" /> + + <DowngradeProjects + Projects="@(ProjectTemplates2008Layout)" + Condition="'%(Extension)' == '.csproj'" + /> + + <DiscoverProjectTemplates TopLevelTemplates="@(TopLevelVS2008ProjectTemplates)"> + <Output TaskParameter="ProjectTemplates" ItemName="SubVS2008Templates" /> + <Output TaskParameter="ProjectTemplateContents" ItemName="VS2008TemplateItemContents" /> </DiscoverProjectTemplates> <ItemGroup> <!-- Include in each template .zip file the top-level .vstemplate file itself. --> - <VSProjectTemplateContents Include="@(TopLevelVSProjectTemplates)"> - <ZipFile>$(ProjectTemplatesLayoutPath)%(FileName).zip</ZipFile> - <WorkingDirectory>$(ProjectTemplatesLayoutPath)</WorkingDirectory> - </VSProjectTemplateContents> + <VS2008ProjectTemplateContents Include="@(TopLevelVS2008ProjectTemplates)"> + <ZipFile>$(ProjectTemplatesVsiDirectory)%(FileName).zip</ZipFile> + <WorkingDirectory>$(VS2008ProjectTemplatesDirectory)</WorkingDirectory> + </VS2008ProjectTemplateContents> <!-- Now throw in all the files in each of the project-level template's directories and their children. --> - <VSProjectTemplateContents Include="@(TemplateItemContents)"> - <ZipFile>$(ProjectTemplatesLayoutPath)%(TemplateItemContents.TopLevelTemplateFileName).zip</ZipFile> - <WorkingDirectory>$(ProjectTemplatesLayoutPath)</WorkingDirectory> - </VSProjectTemplateContents> + <VS2008ProjectTemplateContents Include="@(VS2008TemplateItemContents)"> + <ZipFile>$(ProjectTemplatesVsiDirectory)%(VS2008TemplateItemContents.TopLevelTemplateFileName).zip</ZipFile> + <WorkingDirectory>$(VS2008ProjectTemplatesDirectory)</WorkingDirectory> + </VS2008ProjectTemplateContents> <!-- Include the template icon for each .zip file. --> - <VSProjectTemplateContents Include="@(TopLevelVSProjectTemplates->'$(ProjectTemplatesLayoutPath)__TemplateIcon.ico')"> - <ZipFile>$(ProjectTemplatesLayoutPath)%(TopLevelVSProjectTemplates.FileName).zip</ZipFile> - <WorkingDirectory>$(ProjectTemplatesLayoutPath)</WorkingDirectory> - </VSProjectTemplateContents> + <VS2008ProjectTemplateContents Include="@(TopLevelVS2008ProjectTemplates->'$(VS2008ProjectTemplatesDirectory)__TemplateIcon.ico')"> + <ZipFile>$(ProjectTemplatesVsiDirectory)%(TopLevelVS2008ProjectTemplates.FileName).zip</ZipFile> + <WorkingDirectory>$(VS2008ProjectTemplatesDirectory)</WorkingDirectory> + </VS2008ProjectTemplateContents> </ItemGroup> <Zip - Files="@(VSProjectTemplateContents)" - ZipFileName="%(VSProjectTemplateContents.ZipFile)" - WorkingDirectory="%(VSProjectTemplateContents.WorkingDirectory)" + Files="@(VS2008ProjectTemplateContents)" + ZipFileName="%(VS2008ProjectTemplateContents.ZipFile)" + WorkingDirectory="%(VS2008ProjectTemplateContents.WorkingDirectory)" + ZipLevel="$(ZipLevel)" /> + + <Purge Directories="$(VS2008ProjectTemplatesDirectory)" IntendedFiles="@(ProjectTemplates2008Layout)" /> </Target> - <Target Name="vsi" DependsOnTargets="ProjectTemplates"> + <Target Name="ProjectTemplates2010" DependsOnTargets="ProjectTemplatesLayout"> + <ItemGroup> + <ProjectTemplates2010Source Include="$(ProjectTemplatesLayoutPath)**" /> + <ProjectTemplates2010Layout Include="@(ProjectTemplates2010Source->'$(VS2010ProjectTemplatesDirectory)%(RecursiveDir)%(FileName)%(Extension)')" /> + <ProjectTemplates2010Layout> + <HardLink Condition=" '%(Extension)' != '.csproj' ">true</HardLink> + </ProjectTemplates2010Layout> + + <VS2010ProjectTemplates Include="@(ProjectTemplates2010Layout)" Condition="'%(Extension)' == '.vstemplate'" /> + <TopLevelVS2010ProjectTemplates Include="@(VS2010ProjectTemplates)" Condition="'%(RootDir)%(Directory)' == '$(VS2010ProjectTemplatesDirectory)'" /> + <VS2010ProjectTemplateZipFiles Include="@(TopLevelVS2010ProjectTemplates->'%(RootDir)%(Directory)%(FileName).zip')" /> + </ItemGroup> + + <HardLinkCopy SourceFiles="@(ProjectTemplates2010Source)" DestinationFiles="@(ProjectTemplates2010Layout)" /> + + <DiscoverProjectTemplates TopLevelTemplates="@(TopLevelVS2010ProjectTemplates)"> + <Output TaskParameter="ProjectTemplates" ItemName="SubVS2010Templates" /> + <Output TaskParameter="ProjectTemplateContents" ItemName="VS2010TemplateItemContents" /> + </DiscoverProjectTemplates> + <ItemGroup> + <!-- Include in each template .zip file the top-level .vstemplate file itself. --> + <VS2010ProjectTemplateContents Include="@(TopLevelVS2010ProjectTemplates)"> + <ZipFile>$(ExtensionVsixLayoutDirectory)%(FileName)\%(FileName).zip</ZipFile> + <WorkingDirectory>$(VS2010ProjectTemplatesDirectory)</WorkingDirectory> + </VS2010ProjectTemplateContents> + + <!-- Now throw in all the files in each of the project-level template's directories and their children. --> + <VS2010ProjectTemplateContents Include="@(VS2010TemplateItemContents)"> + <ZipFile>$(ExtensionVsixLayoutDirectory)%(VS2010TemplateItemContents.TopLevelTemplateFileName)\%(VS2010TemplateItemContents.TopLevelTemplateFileName).zip</ZipFile> + <WorkingDirectory>$(VS2010ProjectTemplatesDirectory)</WorkingDirectory> + </VS2010ProjectTemplateContents> + + <!-- Include the template icon for each .zip file. --> + <VS2010ProjectTemplateContents Include="@(TopLevelVS2010ProjectTemplates->'$(VS2010ProjectTemplatesDirectory)__TemplateIcon.ico')"> + <ZipFile>$(ExtensionVsixLayoutDirectory)%(TopLevelVS2010ProjectTemplates.FileName)\%(TopLevelVS2010ProjectTemplates.FileName).zip</ZipFile> + <WorkingDirectory>$(VS2010ProjectTemplatesDirectory)</WorkingDirectory> + </VS2010ProjectTemplateContents> + + <ExtensionVsixContents Include="%(VS2010ProjectTemplateContents.ZipFile)" /> + </ItemGroup> + + <Zip + Files="@(VS2010ProjectTemplateContents)" + ZipFileName="%(VS2010ProjectTemplateContents.ZipFile)" + WorkingDirectory="%(VS2010ProjectTemplateContents.WorkingDirectory)" + ZipLevel="$(ZipLevel)" + /> + </Target> + + <Target Name="vsi" DependsOnTargets="ProjectTemplates2008"> + <PropertyGroup> + <ProjectTemplatesVsi>$(DropDirectoryNoSlash).vsi</ProjectTemplatesVsi> + </PropertyGroup> + <ItemGroup> + <VsiTransformSource Include="$(ProjectRoot)vsi\*.vscontent"> + <BeforeTokens>$version$</BeforeTokens> + <AfterTokens>$(BuildVersion)</AfterTokens> + <SkipUnchangedFiles>false</SkipUnchangedFiles> + </VsiTransformSource> + <VsiTransformLayout Include="@(VsiTransformSource->'$(ProjectTemplatesVsiDirectory)%(RecursiveDir)%(FileName)%(Extension)')" /> + <ProjectTemplateVsiContents Include=" - $(ProjectTemplatesLayoutPath)*.vscontent; - $(ProjectTemplatesLayoutPath)*.zip + $(ProjectTemplatesVsiDirectory)*.zip; + @(VsiTransformLayout); " /> </ItemGroup> + <CopyWithTokenSubstitution SourceFiles="@(VsiTransformSource)" DestinationFiles="@(VsiTransformLayout)" /> + <Zip Files="@(ProjectTemplateVsiContents)" ZipFileName="$(ProjectTemplatesVsi)" - WorkingDirectory="$(ProjectTemplatesLayoutPath)" + WorkingDirectory="$(ProjectTemplatesVsiDirectory)" + ZipLevel="$(ZipLevel)" /> </Target> - <Target Name="VsixLayout" DependsOnTargets="GetBuildVersion"> + <Target Name="VsixLayout" DependsOnTargets="ProjectTemplates2010"> <ItemGroup> + <ProjectTemplates2010TransformSource Include=" + $(ProjectRoot)vsix\extension.vsixmanifest; + $(ProjectRoot)LICENSE.txt; + "> + <BeforeTokens>$version$</BeforeTokens> + <AfterTokens>$(BuildVersion)</AfterTokens> + <SkipUnchangedFiles>false</SkipUnchangedFiles> + </ProjectTemplates2010TransformSource> + <ProjectTemplates2010TransformLayout Include="@(ProjectTemplates2010TransformSource->'$(ExtensionVsixLayoutDirectory)%(RecursiveDir)%(FileName)%(Extension)')" /> + <ExtensionVsixSources Include=" - $(ProjectRoot)vsix\[Content_Types].xml; - $(ProjectRoot)LICENSE.txt; - $(ProjectRoot)doc\logo\dnoa-logo.png; - $(ProjectRoot)doc\logo\dnoa-logo_64x64.png; - "> - <SkipUnchangedFiles>true</SkipUnchangedFiles> - </ExtensionVsixSources> - <ExtensionVsixSources Include=" + $(ProjectRoot)vsix\*; + " Exclude=" $(ProjectRoot)vsix\extension.vsixmanifest; "> <SkipUnchangedFiles>true</SkipUnchangedFiles> - <BeforeTokens>$version$</BeforeTokens> - <AfterTokens>$(BuildVersion)</AfterTokens> </ExtensionVsixSources> - <ExtensionVsixContents Include="@(ExtensionVsixSources->'$(ExtensionVsixLayoutPath)%(FileName)%(Extension)')" /> + + <ExtensionVsixTargets Include="@(ExtensionVsixSources->'$(ExtensionVsixLayoutDirectory)%(FileName)%(Extension)')" /> + + <ExtensionVsixContents Include=" + @(ExtensionVsixTargets); + @(ProjectTemplates2010TransformLayout); + "/> </ItemGroup> - <CopyWithTokenSubstitution SourceFiles="@(ExtensionVsixSources)" - DestinationFiles="@(ExtensionVsixContents)" /> - <Purge Directories="$(ExtensionVsixLayoutPath)" - IntendedFiles=" - @(ExtensionVsixContents); - $(ExtensionVsix); - " /> + <Copy SourceFiles="@(ExtensionVsixSources)" DestinationFiles="@(ExtensionVsixTargets)" SkipUnchangedFiles="true" /> + <CopyWithTokenSubstitution SourceFiles="@(ProjectTemplates2010TransformSource)" DestinationFiles="@(ProjectTemplates2010TransformLayout)" /> </Target> - <Target Name="vsix" DependsOnTargets="VsixLayout"> + <Target Name="vsix" DependsOnTargets="VsixLayout;_SetDropProperties"> + <PropertyGroup> + <ExtensionVsix>$(DropDirectoryNoSlash).vsix</ExtensionVsix> + </PropertyGroup> <Zip Files="@(ExtensionVsixContents)" ZipFileName="$(ExtensionVsix)" - WorkingDirectory="$(ExtensionVsixLayoutPath)" + WorkingDirectory="$(ExtensionVsixLayoutDirectory)" + ZipLevel="$(ZipLevel)" /> </Target> @@ -489,7 +570,7 @@ <PropertyGroup> <DropZip>$(DropDirectoryNoSlash).zip</DropZip> </PropertyGroup> - <Zip Files="@(AllDropTargets)" ZipFileName="$(DropZip)" WorkingDirectory="$(DropsRoot)" /> + <Zip Files="@(AllDropTargets)" ZipFileName="$(DropZip)" WorkingDirectory="$(DropsRoot)" ZipLevel="$(ZipLevel)" /> </Target> <!-- Although Nightly includes publishing samples and docs, those targets are conditioned for |