diff options
11 files changed, 143 insertions, 7 deletions
diff --git a/config.json b/config.json index 982b4e04c9..8f0eb6fbde 100644 --- a/config.json +++ b/config.json @@ -252,6 +252,12 @@ "BuildPackages": false } }, + "sourceIndex": { + "description": "Builds the source index data.", + "settings": { + "Project": "src/SourceIndex/index.proj" + } + }, "packages": { "description": "Builds the NuGet packages.", "settings": { diff --git a/dir.targets b/dir.targets index 7d45879e5d..e51ab5fa25 100644 --- a/dir.targets +++ b/dir.targets @@ -70,4 +70,24 @@ </ItemGroup> </Target> + <Target Name="RewriteReferences" Condition="'$(SourceIndex)' == 'true'" AfterTargets="ResolveNuGetPackages"> + <ItemGroup> + <Reference Remove="@(_ReferenceFromPackage)"/> + <_ReferenceProjectToHarvest Include="@(_ReferenceFromPackage -> '$(MSBuildThisFileDirectory)src/%(Filename)/src/%(FileName).csproj')"/> + <_ReferenceProjectToHarvest Include="@(_ReferenceFromPackage -> '$(MSBuildThisFileDirectory)src/%(Filename)/src/%(FileName).vbproj')"/> + </ItemGroup> + + <MSBuild Condition="'$(SourceIndex)' == 'true' AND Exists('%(Identity)')" + Projects="%(_ReferenceProjectToHarvest.Identity)" + Targets="GetTargetPath"> + <Output TaskParameter="TargetOutputs" ItemName="_PackageLibReferencePath"/> + </MSBuild> + <Error Condition="!Exists('%(_PackageLibReferencePath.Identity)')" Text="Required Reference '%(Identity)' does not exist. Ensure that you have built the entire tree."/> + <ItemGroup Condition=" '$(SourceIndex)' == 'true' "> + <ReferencePath Include="%(_PackageLibReferencePath.Identity)" Condition="Exists('%(Identity)')"/> + <ReferencePath Include="$(PackagesDir)runtime.win7-x64.Microsoft.NETCore.Runtime.CoreCLR\1.2.0-$(CoreClrExpectedPrerelease)\runtimes\win7-x64\lib\netstandard1.0\mscorlib.dll"/> + <ReferencePath Include="$(PackagesDir)runtime.win7-x64.Microsoft.NETCore.Runtime.CoreCLR\1.2.0-$(CoreClrExpectedPrerelease)\runtimes\win7-x64\lib\netstandard1.0\System.Private.CoreLib.dll"/> + </ItemGroup> + </Target> + </Project> diff --git a/src/SourceIndex/HtmlGenerator.exe.config b/src/SourceIndex/HtmlGenerator.exe.config new file mode 100644 index 0000000000..23d36ae479 --- /dev/null +++ b/src/SourceIndex/HtmlGenerator.exe.config @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> +<configuration> + <system.net> + <defaultProxy useDefaultCredentials="true" /> + </system.net> + <runtime> + <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> + <dependentAssembly> + <assemblyIdentity name="System.Composition.AttributedModel" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.0.30.0" newVersion="1.0.30.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Composition.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.0.30.0" newVersion="1.0.30.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Composition.TypedParts" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.0.30.0" newVersion="1.0.30.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Composition.Hosting" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.0.30.0" newVersion="1.0.30.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.Build.Framework" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-99.9.9.9" newVersion="14.0.0.0" /> + </dependentAssembly> + </assemblyBinding> + </runtime> +</configuration> diff --git a/src/SourceIndex/index.proj b/src/SourceIndex/index.proj new file mode 100644 index 0000000000..940e204bfa --- /dev/null +++ b/src/SourceIndex/index.proj @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" /> + <ItemGroup> + <SourceProject Include="../**/src/*.csproj"/> + <SourceProject Include="../**/tests/*.csproj"/> + <SourceProject Include="../**/src/*.vbproj"/> + <SourceProject Include="../**/tests/*.vbproj"/> + <SourceProject Include="../../../coreclr/src/mscorlib/System.Private.CoreLib.csproj"/> + </ItemGroup> + + <UsingTask TaskName="SortItems" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll"> + <ParameterGroup> + <Inputs ParameterType="Microsoft.Build.Framework.ITaskItem[]" Required="true"/> + <Outputs ParameterType="Microsoft.Build.Framework.ITaskItem[]" Output="true"/> + </ParameterGroup> + <Task> + <Using Namespace="System"/> + <Using Namespace="System.Linq"/> + <Using Namespace="Microsoft.Build.Framework"/> + <Code> + <![CDATA[ + Outputs = Inputs.OrderBy(i => i.GetMetadata("Identity")).ToArray(); + ]]> + </Code> + </Task> + </UsingTask> + + <Target Name="Validate" BeforeTargets="RestorePackages"> + <Error Condition="!Exists('../../../coreclr/src/mscorlib/System.Private.CoreLib.csproj')" Text="CoreClr repository not found - the source index can only be built with side by side repositories of coreclr and corefx."/> + </Target> + + <Target Name="RestorePackages" Condition="'$(HtmlGeneratorExePath)' == ''"> + <Exec Command="$(DotnetToolCommand) restore --packages $(PackagesDir)" WorkingDirectory="$(MSBuildThisFileDirectory)"/> + <PropertyGroup> + <HtmlGeneratorPath>$(PackagesDir)Microsoft.SourceBrowser/1.0.13/tools/</HtmlGeneratorPath> + <HtmlGeneratorExePath>$(HtmlGeneratorPath)HtmlGenerator.exe</HtmlGeneratorExePath> + </PropertyGroup> + <Copy SourceFiles="$(MSBuildThisFileDirectory)HtmlGenerator.exe.config" DestinationFiles="$(HtmlGeneratorPath)HtmlGenerator.exe.config"/> + </Target> + + <Target Name="Build" DependsOnTargets="RestorePackages"> + <Error Condition="'$(OS)' != 'Windows_NT'" Text="This tool can only be run on Windows_NT."/> + <Error Condition="!Exists('$(HtmlGeneratorExePath)')" Text="Html generator executable not found."/> + <RemoveDuplicates Inputs="@(SourceProject)"> + <Output TaskParameter="Filtered" ItemName="_FilteredProject"/> + </RemoveDuplicates> + <SortItems Inputs="@(_FilteredProject)"> + <Output TaskParameter="Outputs" ItemName="_SortedProject"/> + </SortItems> + <MakeDir Condition="!Exists('$(BinDir)')" Directories="$(BinDir)"/> + <RemoveDir Directories="$(BinDir)index/"/> + <WriteLinesToFile Lines="@(_SortedProject -> '%(FullPath)')" File="$(BinDir)index.list" Overwrite="true"/> + <Exec Command="$(HtmlGeneratorExePath) /out:$(BinDir)index/ /in:$(BinDir)index.list /p:SourceIndex=true"/> + </Target> +</Project> diff --git a/src/SourceIndex/project.json b/src/SourceIndex/project.json new file mode 100644 index 0000000000..2f3c8eee9e --- /dev/null +++ b/src/SourceIndex/project.json @@ -0,0 +1,8 @@ +{ + "dependencies": { + "Microsoft.SourceBrowser": "1.0.13" + }, + "frameworks": { + "net45": {} + } +} diff --git a/src/System.IO.FileSystem.AccessControl/src/System.IO.FileSystem.AccessControl.csproj b/src/System.IO.FileSystem.AccessControl/src/System.IO.FileSystem.AccessControl.csproj index ed0d23928e..7b5525f261 100644 --- a/src/System.IO.FileSystem.AccessControl/src/System.IO.FileSystem.AccessControl.csproj +++ b/src/System.IO.FileSystem.AccessControl/src/System.IO.FileSystem.AccessControl.csproj @@ -1,5 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build"> + <PropertyGroup> + <OSGroup Condition="'$(OSGroup)' == ''">Windows_NT</OSGroup> + </PropertyGroup> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" /> <PropertyGroup> <AssemblyName>System.IO.FileSystem.AccessControl</AssemblyName> @@ -30,4 +33,4 @@ <Compile Include="System\IO\FileSystemAclExtensions.net46.cs" /> </ItemGroup> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" /> -</Project>
\ No newline at end of file +</Project> diff --git a/src/System.Net.Http.Rtc/src/System.Net.Http.Rtc.csproj b/src/System.Net.Http.Rtc/src/System.Net.Http.Rtc.csproj index 681eb182bc..0f19c4a7d4 100644 --- a/src/System.Net.Http.Rtc/src/System.Net.Http.Rtc.csproj +++ b/src/System.Net.Http.Rtc/src/System.Net.Http.Rtc.csproj @@ -1,7 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> - <Configuration Condition="'$(Configuration)'==''">netcore50_Debug</Configuration> + <OSGroup Condition="'$(OSGroup)' == ''">Windows_NT</OSGroup> + <TargetGroup Condition="'$(TargetGroup)' == ''">netcore50</TargetGroup> </PropertyGroup> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" /> <PropertyGroup> @@ -15,4 +16,4 @@ <None Include="project.json" /> </ItemGroup> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" /> -</Project>
\ No newline at end of file +</Project> diff --git a/src/System.Security.AccessControl/src/System.Security.AccessControl.csproj b/src/System.Security.AccessControl/src/System.Security.AccessControl.csproj index 29dda3c8c8..6e54a23f89 100644 --- a/src/System.Security.AccessControl/src/System.Security.AccessControl.csproj +++ b/src/System.Security.AccessControl/src/System.Security.AccessControl.csproj @@ -1,5 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <OSGroup Condition="'$(OSGroup)' == ''">Windows_NT</OSGroup> + </PropertyGroup> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" /> <PropertyGroup> <Configuration Condition="'$(Configuration)'==''">Windows_Debug</Configuration> @@ -119,4 +122,4 @@ <None Include="project.json" /> </ItemGroup> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" /> -</Project>
\ No newline at end of file +</Project> diff --git a/src/System.Security.Cryptography.Csp/src/System.Security.Cryptography.Csp.csproj b/src/System.Security.Cryptography.Csp/src/System.Security.Cryptography.Csp.csproj index 3b8cd775be..42ad35ed28 100644 --- a/src/System.Security.Cryptography.Csp/src/System.Security.Cryptography.Csp.csproj +++ b/src/System.Security.Cryptography.Csp/src/System.Security.Cryptography.Csp.csproj @@ -1,5 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <OSGroup Condition="'$(OSGroup)' == ''">Windows_NT</OSGroup> + </PropertyGroup> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" /> <PropertyGroup> <Configuration Condition="'$(Configuration)'==''">Windows_NT_Debug</Configuration> @@ -59,4 +62,4 @@ </ProjectReference> </ItemGroup> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" /> -</Project>
\ No newline at end of file +</Project> diff --git a/src/System.Security.Cryptography.ProtectedData/src/System.Security.Cryptography.ProtectedData.csproj b/src/System.Security.Cryptography.ProtectedData/src/System.Security.Cryptography.ProtectedData.csproj index 96bf29c5f4..ab0e3fa311 100644 --- a/src/System.Security.Cryptography.ProtectedData/src/System.Security.Cryptography.ProtectedData.csproj +++ b/src/System.Security.Cryptography.ProtectedData/src/System.Security.Cryptography.ProtectedData.csproj @@ -1,5 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <OSGroup Condition="'$(OSGroup)' == ''">Windows_NT</OSGroup> + </PropertyGroup> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" /> <PropertyGroup> <ProjectGuid>{FB39F994-1504-4B96-9588-E0385D3B73F1}</ProjectGuid> @@ -50,4 +53,4 @@ <None Include="project.json" /> </ItemGroup> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" /> -</Project>
\ No newline at end of file +</Project> diff --git a/src/System.Threading.AccessControl/src/System.Threading.AccessControl.csproj b/src/System.Threading.AccessControl/src/System.Threading.AccessControl.csproj index 3ebe18610a..644f8416a8 100644 --- a/src/System.Threading.AccessControl/src/System.Threading.AccessControl.csproj +++ b/src/System.Threading.AccessControl/src/System.Threading.AccessControl.csproj @@ -1,5 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build"> + <PropertyGroup> + <OSGroup Condition="'$(OSGroup)' == ''">Windows_NT</OSGroup> + </PropertyGroup> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" /> <PropertyGroup> <AssemblyName>System.Threading.AccessControl</AssemblyName> @@ -31,4 +34,4 @@ <None Include="project.json" /> </ItemGroup> <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" /> -</Project>
\ No newline at end of file +</Project> |