Skip to content

Commit

Permalink
Convert SignalR projects to build with ProjectReference (#6457)
Browse files Browse the repository at this point in the history
Part of #4246 

Changes:
* Update source code layout to follow the new conventions for this repo
* Update project files to use `<Reference>`
* Update targets to build NPM packages
* Update BuildTools to support custom 'restore' and 'test' targets
  • Loading branch information
natemcmaster committed Jan 9, 2019
1 parent 5d16f97 commit d383862
Show file tree
Hide file tree
Showing 434 changed files with 1,192 additions and 1,183 deletions.
4 changes: 4 additions & 0 deletions .azure/pipelines/jobs/default-build.yml
Expand Up @@ -103,6 +103,10 @@ jobs:
steps:
- checkout: self
clean: true
- task: NodeTool@0
displayName: Install Node 10.x
inputs:
versionSpec: 10.x
- ${{ if and(eq(parameters.agentOs, 'Windows'), eq(parameters.codeSign, 'true')) }}:
- task: MicroBuildSigningPlugin@1
displayName: Install MicroBuild Signing plugin
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -28,3 +28,4 @@ scripts/tmp/
launchSettings.json
korebuild-lock.txt
.gradle/
src/SignalR/clients/**/dist/
3 changes: 2 additions & 1 deletion Directory.Build.props
Expand Up @@ -23,7 +23,7 @@

<RepoRelativeProjectDir>$([MSBuild]::MakeRelative($(RepositoryRoot), $(MSBuildProjectDirectory)))</RepoRelativeProjectDir>

<IsBenchmarkProject Condition="$(MSBuildProjectName.EndsWith('.Performance'))">true</IsBenchmarkProject>
<IsBenchmarkProject Condition="$(MSBuildProjectName.EndsWith('.Performance')) OR $(RepoRelativeProjectDir.Contains('perf'))">true</IsBenchmarkProject>
<IsTestProject Condition="$(MSBuildProjectName.EndsWith('Tests')) OR $(MSBuildProjectName.EndsWith('.Test'))">true</IsTestProject>
<IsTestAssetProject Condition="$(RepoRelativeProjectDir.Contains('testassets'))">true</IsTestAssetProject>
<IsSampleProject Condition="$(RepoRelativeProjectDir.Contains('sample'))">true</IsSampleProject>
Expand All @@ -48,5 +48,6 @@
<Import Project="eng\targets\Wix.Common.props" Condition="'$(MSBuildProjectExtension)' == '.wixproj'" />
<Import Project="eng\targets\CSharp.Common.props" Condition="'$(MSBuildProjectExtension)' == '.csproj'" />
<Import Project="eng\targets\Cpp.Common.props" Condition="'$(MSBuildProjectExtension)' == '.vcxproj'" />
<Import Project="eng\targets\Npm.Common.props" Condition="'$(MSBuildProjectExtension)' == '.npmproj'" />

</Project>
1 change: 1 addition & 0 deletions Directory.Build.targets
Expand Up @@ -57,5 +57,6 @@
<Import Project="eng\targets\CSharp.Common.targets" Condition="'$(MSBuildProjectExtension)' == '.csproj'" />
<Import Project="eng\targets\FSharp.Common.targets" Condition="'$(MSBuildProjectExtension)' == '.fsproj'" />
<Import Project="eng\targets\Cpp.Common.targets" Condition="'$(MSBuildProjectExtension)' == '.vcxproj'" />
<Import Project="eng\targets\Npm.Common.targets" Condition="'$(MSBuildProjectExtension)' == '.npmproj'" />
<Import Project="eng\targets\ResolveIisReferences.targets" Condition=" '$(MSBuildProjectExtension)' != '.vcxproj' " />
</Project>
1 change: 0 additions & 1 deletion build/buildorder.props
Expand Up @@ -10,7 +10,6 @@
<RepositoryBuildOrder Include="EntityFrameworkCore" Order="8" />
<RepositoryBuildOrder Include="MvcPrecompilation" Order="15" RootPath="$(RepositoryRoot)src\MvcPrecompilation\" />
<RepositoryBuildOrder Include="Scaffolding" Order="15" />
<RepositoryBuildOrder Include="SignalR" Order="16" RootPath="$(RepositoryRoot)src\SignalR\" />
<RepositoryBuildOrder Include="AuthSamples" Order="16" RootPath="$(RepositoryRoot)src\AuthSamples\" />
<RepositoryBuildOrder Include="Templating" Order="17" RootPath="$(RepositoryRoot)src\Templating\" />
</ItemGroup>
Expand Down
6 changes: 3 additions & 3 deletions build/dependencies.props
Expand Up @@ -20,7 +20,7 @@
<!-- Determined by build tools -->
<InternalAspNetCoreSdkPackageVersion>$(KoreBuildVersion)</InternalAspNetCoreSdkPackageVersion>
<InternalAspNetCoreSiteExtensionSdkPackageVersion>$(KoreBuildVersion)</InternalAspNetCoreSiteExtensionSdkPackageVersion>
<InternalAspNetCoreSdkPackageVersion Condition=" '$(KoreBuildVersion)' == '' ">2.1.7-build-20190104.1</InternalAspNetCoreSdkPackageVersion>
<InternalAspNetCoreSdkPackageVersion Condition=" '$(KoreBuildVersion)' == '' ">2.1.7-build-20190109.2</InternalAspNetCoreSdkPackageVersion>
</PropertyGroup>

<!-- These are package versions that should not be overridden or updated by automation. -->
Expand Down Expand Up @@ -137,7 +137,7 @@
<MicrosoftNETCoreApp11PackageVersion>1.1.8</MicrosoftNETCoreApp11PackageVersion>
<MicrosoftNETCoreApp20PackageVersion>2.0.7</MicrosoftNETCoreApp20PackageVersion>
<MicrosoftNETCoreWindowsApiSetsPackageVersion>1.0.1</MicrosoftNETCoreWindowsApiSetsPackageVersion>
<MicrosoftNETTestSdkPackageVersion>15.6.1</MicrosoftNETTestSdkPackageVersion>
<MicrosoftNETTestSdkPackageVersion>15.9.0</MicrosoftNETTestSdkPackageVersion>
<MicrosoftOwinSecurityCookiesPackageVersion>3.0.1</MicrosoftOwinSecurityCookiesPackageVersion>
<MicrosoftOwinSecurityPackageVersion>3.0.1</MicrosoftOwinSecurityPackageVersion>
<MicrosoftOwinTestingPackageVersion>3.0.1</MicrosoftOwinTestingPackageVersion>
Expand Down Expand Up @@ -224,7 +224,7 @@
<XunitCorePackageVersion>2.3.1</XunitCorePackageVersion>
<XunitExtensibilityCorePackageVersion>2.3.1</XunitExtensibilityCorePackageVersion>
<XunitExtensibilityExecutionPackageVersion>2.3.1</XunitExtensibilityExecutionPackageVersion>
<XunitPackageVersion>2.3.1</XunitPackageVersion>
<XunitPackageVersion>2.4.0</XunitPackageVersion>
<XunitRunnerVisualStudioPackageVersion>2.4.0</XunitRunnerVisualStudioPackageVersion>
</PropertyGroup>
</Project>
41 changes: 25 additions & 16 deletions build/repo.props
Expand Up @@ -46,6 +46,26 @@
<SharedFrameworkName Include="Microsoft.AspNetCore.App" />
</ItemGroup>

<ItemGroup>
<!-- These projects use 'legacy' csproj, which is not supported by dotnet-msbuild. -->
<ProjectToExclude Include="
$(RepositoryRoot)src\Servers\HttpSys\samples\TestClient\TestClient.csproj;
$(RepositoryRoot)src\Middleware\WebSockets\samples\TestServer\TestServer.csproj;
$(RepositoryRoot)src\Identity\samples\NativeWPFClient\NativeWPFClient.csproj;
"
Condition=" '$(MSBuildRuntimeType)' == 'Core' " />

<!-- Exclude the websockets samples for now because they use classic .csproj, which is not yet supported in our build. -->
<ProjectToExclude Include="
$(RepositoryRoot)src\Middleware\WebSockets\samples\**\*.csproj;
$(RepositoryRoot)src\Middleware\NodeServices.Sockets\**\*.csproj;
$(RepositoryRoot)src\Tools\dotnet-watch\test\TestProjects\**\*.csproj;
$(RepositoryRoot)src\Razor\Razor.Design\test\testassets\**\*.*proj;
$(RepositoryRoot)src\SignalR\clients\cpp\**\*.*proj;
$(RepositoryRoot)src\SignalR\clients\ts\**\node_modules\**\*.*proj;
" />
</ItemGroup>

<Choose>
<!-- Project selection can be overridden on the command line by passing in -projects -->
<When Condition="'$(Projects)' != ''">
Expand All @@ -59,23 +79,10 @@

<ProjectToExclude Include="@(SamplesProject)" Condition="'$(BuildSamples)' == 'false' "/>

<!-- These projects use 'legacy' csproj, which is not supported by dotnet-msbuild. -->
<ProjectToExclude Include="
$(RepositoryRoot)src\Servers\HttpSys\samples\TestClient\TestClient.csproj;
$(RepositoryRoot)src\Middleware\WebSockets\samples\TestServer\TestServer.csproj;
$(RepositoryRoot)src\Identity\samples\NativeWPFClient\NativeWPFClient.csproj;
"
Condition=" '$(MSBuildRuntimeType)' == 'Core' " />

<!-- Exclude the websockets samples for now because they use classic .csproj, which is not yet supported in our build. -->
<ProjectToExclude Include="
$(RepositoryRoot)src\Middleware\WebSockets\samples\**\*.csproj;
$(RepositoryRoot)src\Middleware\NodeServices.Sockets\**\*.csproj;
$(RepositoryRoot)src\Tools\dotnet-watch\test\TestProjects\**\*.csproj;
$(RepositoryRoot)src\Razor\Razor.Design\test\testassets\**\*.*proj
" />
<ProjectToBuild Condition="'$(SkipSignalRTypescriptClient)' != 'true'"
Include="$(RepositoryRoot)src\SignalR\**\*.npmproj"
Exclude="@(ProjectToExclude)" />

<ProjectToBuild Include="@(NativeProjects)" Condition="'$(OS)' == 'Windows_NT'"/>
<ProjectToBuild Include="
$(RepositoryRoot)src\DefaultBuilder\**\*.*proj;
$(RepositoryRoot)src\Features\JsonPatch\**\*.*proj;
Expand All @@ -95,9 +102,11 @@
$(RepositoryRoot)src\Mvc\**\*.*proj;
$(RepositoryRoot)src\Azure\**\*.*proj;
$(RepositoryRoot)src\MusicStore\**\*.*proj;
$(RepositoryRoot)src\SignalR\**\*.csproj;
"
Exclude="
@(ProjectToExclude);
$(RepositoryRoot)**\node_modules\**\*;
$(RepositoryRoot)**\bin\**\*;
$(RepositoryRoot)**\obj\**\*;" />
</ItemGroup>
Expand Down
15 changes: 0 additions & 15 deletions build/repo.targets
Expand Up @@ -27,21 +27,6 @@
<GetArtifactInfoDependsOn Condition="'$(_ProjectsOnly)' != 'true'">$(GetArtifactInfoDependsOn);ResolveRepoInfo</GetArtifactInfoDependsOn>
</PropertyGroup>

<PropertyGroup>
<RestoreDependsOn Condition=" '$(SkipNpm)' != 'true' ">$(RestoreDependsOn);RestoreNpm</RestoreDependsOn>
</PropertyGroup>

<Target Name="RestoreNpm" Condition="@(NpmProjectDirectory->Count()) != 0">
<Message Text="Restoring NPM modules" Importance="high" />

<PropertyGroup>
<NpmInstallCommand Condition=" '$(CI)' != 'true' ">install --no-optional</NpmInstallCommand>
<NpmInstallCommand Condition=" '$(CI)' == 'true' ">ci</NpmInstallCommand>
</PropertyGroup>

<Exec Command="npm $(NpmInstallCommand)" WorkingDirectory="%(NpmProjectDirectory.Identity)" Condition=" '%(NpmProjectDirectory.Identity)' != '' " />
</Target>

<Target Name="PrepareOutputPaths">
<MakeDir Directories="$(ArtifactsDir);$(BuildDir)" />
</Target>
Expand Down
1 change: 0 additions & 1 deletion build/submodules.props
Expand Up @@ -46,6 +46,5 @@
<ItemGroup>
<ShippedRepository Include="EntityFrameworkCore" />
<ShippedRepository Include="MvcPrecompilation" RootPath="$(RepositoryRoot)src\MvcPrecompilation\"/>
<ShippedRepository Include="SignalR" RootPath="$(RepositoryRoot)src\SignalR\" />
</ItemGroup>
</Project>
2 changes: 0 additions & 2 deletions docs/BuildFromSource.md
Expand Up @@ -3,8 +3,6 @@ Build ASP.NET Core from Source

Building ASP.NET Core from source allows you tweak and customize ASP.NET Core, and to contribute your improvements back to the project.

:warning: We are currently in the middle of restructing our source code. These instructions will likely change rapidly during November and December 2018.

See https://github.com/aspnet/AspNetCore/labels/area-infrastructure for known issues and to track ongoing work.

## Install pre-requistes
Expand Down

0 comments on commit d383862

Please sign in to comment.