Skip to content

Commit 0302e63

Browse files
authored
reshape the output directory to match divisional standards (#5985)
1 parent b0351f1 commit 0302e63

File tree

92 files changed

+761
-666
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+761
-666
lines changed

.gitignore

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,7 @@
1-
# Downloaded packages and build tools.
2-
/lkg
3-
/packages
4-
/Tools
1+
# output location
2+
artifacts/
53

64
/tests/scripts/current
7-
/release
8-
/debug
9-
/Proto
105

116
# auto-generated during the build
127
global.json
@@ -88,9 +83,6 @@ lib/bootstrap/4.1/policy*
8883
obj/
8984
bin/
9085
aclocal.m4
91-
Debug
92-
Release
93-
Proto
9486
sign_temp
9587
.libs
9688
configure
@@ -114,7 +106,6 @@ ossreadme*.txt
114106
*.cto
115107
*.vstman
116108
project.lock.json
117-
Tools/
118109
Backup/
119110
tests/fsharp/core/array/dont.run.peverify
120111
tests/fsharp/core/innerpoly/dont.run.peverify
@@ -123,7 +114,6 @@ times
123114
/tests/fsharpqa/testenv/bin/System.ValueTuple.dll
124115
source_link.json
125116
.vs/
126-
/VSRelease/net40/bin
127117
System.ValueTuple.dll
128118
tests/fsharpqa/testenv/bin/System.ValueTuple.dll
129119
*/.fake

.vsts-pr.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
- script: $(_command) $(_args)
1818
- task: PublishBuildArtifacts@1
1919
inputs:
20-
PathtoPublish: '$(Build.SourcesDirectory)/tests/TestResults'
20+
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/TestResults'
2121
ArtifactName: 'Linux $(_command) $(_args)'
2222
publishLocation: Container
2323
continueOnError: true
@@ -26,7 +26,7 @@ jobs:
2626
- job: Windows
2727
pool:
2828
vmImage: vs2017-win2016
29-
timeoutInMinutes: 90
29+
timeoutInMinutes: 120
3030
strategy:
3131
maxParallel: 7
3232
matrix:
@@ -55,7 +55,7 @@ jobs:
5555
- script: $(_command) $(_args)
5656
- task: PublishBuildArtifacts@1
5757
inputs:
58-
PathtoPublish: '$(Build.SourcesDirectory)\tests\TestResults'
58+
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\TestResults'
5959
ArtifactName: 'Windows $(_command) $(_args)'
6060
publishLocation: Container
6161
continueOnError: true

.vsts-signed.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
displayName: Publish nightly package to MyGet
3030
inputs:
3131
scriptName: 'setup\publish-assets.ps1'
32-
arguments: '-binariesPath $(MSBuildConfiguration) -branchName $(Build.SourceBranch) -apiKey $(FSharp.MyGetApiKey)'
32+
arguments: '-binariesPath artifacts\bin -configuration $(MSBuildConfiguration) -branchName $(Build.SourceBranch) -apiKey $(FSharp.MyGetApiKey)'
3333
condition: and(succeeded(), contains(variables['PB_PublishType'], 'myget'))
3434

3535
# Publish packages to Azure Blob Storage
@@ -44,7 +44,7 @@ jobs:
4444
- task: PublishBuildArtifacts@1
4545
displayName: Create static drop
4646
inputs:
47-
PathtoPublish: '$(MSBuildConfiguration)'
47+
PathtoPublish: 'artifacts'
4848
ArtifactName: '$(Build.BuildNumber)'
4949
publishLocation: FilePath
5050
TargetPath: '$(DropRoot)\$(Build.DefinitionName)\$(Build.SourceBranchName)'
@@ -58,7 +58,7 @@ jobs:
5858
inputs:
5959
SymbolsPath: '$(DropRoot)\$(Build.DefinitionName)\$(Build.SourceBranchName)\$(Build.BuildNumber)\Symbols'
6060
SearchPattern: '**\*.dll;**\*.exe;**\*.pdb'
61-
SymbolsFolder: '$(Build.SourcesDirectory)\$(MSBuildConfiguration)'
61+
SymbolsFolder: '$(Build.SourcesDirectory)\artifacts\SymStore'
6262
TreatNotIndexedAsWarning: true
6363
SymbolsProduct: '$(Build.DefinitionName)'
6464
SymbolsVersion: '$(Build.BuildNumber)'
@@ -69,7 +69,7 @@ jobs:
6969
- task: ms-vseng.MicroBuildTasks.4305a8de-ba66-4d8b-b2d1-0dc4ecbbf5e8.MicroBuildUploadVstsDropFolder@1
7070
displayName: Upload VSTS Drop
7171
inputs:
72-
DropFolder: '$(Build.SourcesDirectory)\$(MSBuildConfiguration)\insertion'
72+
DropFolder: '$(Build.SourcesDirectory)\artifacts\VSSetup\$(MSBuildConfiguration)\Insertion'
7373
condition: and(succeeded(), contains(variables['PB_PublishType'], 'vsts'))
7474

7575
# Execute cleanup tasks
@@ -91,6 +91,6 @@ jobs:
9191
displayName: Publish symbols to SymWeb
9292
inputs:
9393
symbolServiceURI: 'https://microsoft.artifacts.visualstudio.com/DefaultCollection'
94-
sourcePath: '$(DropRoot)\$(Build.DefinitionName)\$(Build.SourceBranchName)\$(Build.BuildNumber)\Symbols'
94+
sourcePath: '$(DropRoot)\$(Build.DefinitionName)\$(Build.SourceBranchName)\$(Build.BuildNumber)\SymStore'
9595
usePat: false
9696
condition: and(succeeded(), contains(variables['PB_PublishType'], 'symweb'))

FSharpBuild.Directory.Build.props

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,16 @@
1010
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
1111
<RepoRoot>$(MSBuildThisFileDirectory)</RepoRoot>
1212
<FSharpSourcesRoot>$(RepoRoot)src</FSharpSourcesRoot>
13-
<ToolsRoot>$(RepoRoot)Tools</ToolsRoot>
14-
<ProtoOutputPath Condition="'$(OS)' != 'Unix'">$(RepoRoot)Proto\net40\bin</ProtoOutputPath>
15-
<ProtoOutputPath Condition="'$(OS)' == 'Unix'">$(RepoRoot)Proto\coreclr\bin</ProtoOutputPath>
13+
<ArtifactsDir>$(RepoRoot)artifacts</ArtifactsDir>
14+
<ToolsRoot>$(ArtifactsDir)\toolset</ToolsRoot>
15+
<ArtifactsBinDir>$(ArtifactsDir)\bin</ArtifactsBinDir>
16+
<ArtifactsObjDir>$(ArtifactsDir)\obj</ArtifactsObjDir>
17+
<ArtifactsPackagesDir>$(ArtifactsDir)\packages</ArtifactsPackagesDir>
18+
<BaseOutputPath>$(ArtifactsBinDir)\$(MSBuildProjectName)</BaseOutputPath>
19+
<BaseIntermediateOutputPath>$(ArtifactsObjDir)\$(MSBuildProjectName)</BaseIntermediateOutputPath>
20+
<SymStoreDirectory>$(ArtifactsDir)\SymStore</SymStoreDirectory>
21+
<ProtoOutputPath Condition="'$(OS)' != 'Unix'">$(ArtifactsBinDir)\fsc\Proto\net46</ProtoOutputPath>
22+
<ProtoOutputPath Condition="'$(OS)' == 'Unix'">$(ArtifactsBinDir)/fsc/Proto/netcoreapp2.1</ProtoOutputPath>
1623
<ValueTupleImplicitPackageVersion>4.4.0</ValueTupleImplicitPackageVersion>
1724
</PropertyGroup>
1825

FSharpBuild.Directory.Build.targets

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -34,42 +34,6 @@
3434
</CreateItem>
3535
</Target>
3636

37-
<Target Name="ComputeFinalOutputPaths">
38-
<!--
39-
Ideally we'd set <OutputPath> to `$(Configuration)\[net40|coreclr]\bin`, but the calculation of `[net40|coreclr]`
40-
depends on the `$(TargetFramework)` variable which is set by the individual project files, but by the time we have
41-
that value (e.g., in this file) it's too late; some targets, particularly from the VsSDK have already used the
42-
values of $(OutputPath)/$(OutDir).
43-
44-
The fix is to not set `$(Outputpath)` and simply copy stuff there after the fact.
45-
-->
46-
47-
<PropertyGroup>
48-
<TargetDotnetProfile Condition="$(TargetFramework.StartsWith('netstandard')) or $(TargetFramework.StartsWith('netcoreapp'))">coreclr</TargetDotnetProfile>
49-
<TargetDotnetProfile Condition="$(TargetFramework.StartsWith('net4'))">net40</TargetDotnetProfile>
50-
<ActualOutputPath Condition="'$(Language)' != 'VB'">$(MSBuildProjectDirectory)\$(OutputPath)</ActualOutputPath>
51-
<ActualOutputPath Condition="'$(Language)' == 'VB'">$(OutputPath)</ActualOutputPath>
52-
<FinalOutputPath>$(RepoRoot)$(Configuration)\$(TargetDotnetProfile)\bin</FinalOutputPath>
53-
<FinalIntermediateOutputPath>$(RepoRoot)$(Configuration)\$(TargetDotnetProfile)\obj</FinalIntermediateOutputPath>
54-
</PropertyGroup>
55-
</Target>
56-
57-
<Target Name="HACK_CopyOutputsToTheProperLocation"
58-
AfterTargets="AfterBuild"
59-
DependsOnTargets="ComputeFinalOutputPaths"
60-
Condition="'$(DisableOutputPathCopying)' != 'true'">
61-
62-
<ItemGroup>
63-
<OutputFilesToCopy Include="$(ActualOutputPath)**" />
64-
<IntermediateFilesToCopy Include="$(IntermediateOutputPath)\**" />
65-
</ItemGroup>
66-
67-
<Message Text="Copying build artifacts to $(FinalOutputPath)" />
68-
<MakeDir Directories="$(FinalOutputPath);$(FinalIntermediateOutputPath)" />
69-
<Copy SourceFiles="@(OutputFilesToCopy)" DestinationFolder="$(FinalOutputPath)\%(RecursiveDir)" />
70-
<Copy SourceFiles="@(IntermediateFilesToCopy)" DestinationFolder="$(FinalIntermediateOutputPath)\%(RecursiveDir)" />
71-
</Target>
72-
7337
<Import Project="build\targets\ConvertPortablePdbs.targets" />
7438
<Import Project="build\targets\GenerateAssemblyAttributes.targets" />
7539
<Import Project="build\targets\GenerateInternalsVisibleTo.targets" />

FSharpTests.Directory.Build.props

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,43 @@
11
<Project>
22

3-
<!-- SDK targets override -->
4-
<PropertyGroup Condition=" '$(FSharpTestCompilerVersion)' == 'net40' ">
5-
<_FSharpCompilerPath>$(MSBuildThisFileDirectory)$(Configuration)/net40/bin</_FSharpCompilerPath>
6-
3+
<PropertyGroup Condition="'$(FSharpTestCompilerVersion)' == 'net40'">
74
<DisableAutoSetFscCompilerPath>true</DisableAutoSetFscCompilerPath>
85

9-
<FscToolPath>$(_FSharpCompilerPath)</FscToolPath>
6+
<FscToolPath>$(MSBuildThisFileDirectory)artifacts\bin\fsc\$(Configuration)\net46</FscToolPath>
107
<FscToolExe>fsc.exe</FscToolExe>
118
<DotnetFscCompilerPath></DotnetFscCompilerPath>
129

13-
<FsiToolPath>$(_FSharpCompilerPath)</FsiToolPath>
10+
<FsiToolPath>$(MSBuildThisFileDirectory)artifacts\bin\fsi\$(Configuration)\net46</FsiToolPath>
1411
<FsiToolExe>fsi.exe</FsiToolExe>
1512
<DotnetFsiCompilerPath></DotnetFsiCompilerPath>
1613
</PropertyGroup>
1714

18-
<!-- SDK targets override -->
19-
<PropertyGroup Condition=" '$(FSharpTestCompilerVersion)' == 'coreclr' ">
20-
<_FSharpCompilerPath>$(MSBuildThisFileDirectory)$(Configuration)/coreclr/bin</_FSharpCompilerPath>
21-
15+
<PropertyGroup Condition="'$(FSharpTestCompilerVersion)' == 'coreclr'">
2216
<DisableAutoSetFscCompilerPath>true</DisableAutoSetFscCompilerPath>
23-
<FscToolPath>$(MSBuildThisFileDirectory)Tools/dotnet20</FscToolPath>
17+
18+
<FscToolPath>$(MSBuildThisFileDirectory)artifacts\toolset\dotnet</FscToolPath>
2419
<FscToolExe Condition="'$(OS)' != 'Unix'">dotnet.exe</FscToolExe>
2520
<FscToolExe Condition="'$(OS)' == 'Unix'">dotnet</FscToolExe>
26-
<DotnetFscCompilerPath>$(_FSharpCompilerPath)/fsc.exe</DotnetFscCompilerPath>
21+
<DotnetFscCompilerPath>$(MSBuildThisFileDirectory)artifacts\bin\fsc\$(Configuration)\netcoreapp2.1\fsc.exe</DotnetFscCompilerPath>
2722

28-
<FsiToolPath>$(MSBuildThisFileDirectory)Tools/dotnet20</FsiToolPath>
23+
<FsiToolPath>$(MSBuildThisFileDirectory)artifacts\toolset\dotnet</FsiToolPath>
2924
<FsiToolExe Condition="'$(OS)' != 'Unix'">dotnet.exe</FsiToolExe>
3025
<FsiToolExe Condition="'$(OS)' == 'Unix'">dotnet</FsiToolExe>
31-
<DotnetFsiCompilerPath>$(_FSharpCompilerPath)/fsi.exe</DotnetFsiCompilerPath>
26+
<DotnetFsiCompilerPath>$(MSBuildThisFileDirectory)artifacts\bin\fsi\$(Configuration)\netcoreapp2.0\fsi.exe</DotnetFsiCompilerPath>
3227
</PropertyGroup>
3328

3429
<!-- SDK targets override -->
3530
<PropertyGroup>
36-
<FSharpTargetsPath>$(_FSharpCompilerPath)/Microsoft.FSharp.Targets</FSharpTargetsPath>
37-
<FSharpPropsShim>$(_FSharpCompilerPath)/Microsoft.FSharp.NetSdk.props</FSharpPropsShim>
38-
<FSharpTargetsShim>$(_FSharpCompilerPath)/Microsoft.FSharp.NetSdk.targets</FSharpTargetsShim>
39-
<FSharpOverridesTargetsShim>$(_FSharpCompilerPath)/Microsoft.FSharp.Overrides.NetSdk.targets</FSharpOverridesTargetsShim>
40-
</PropertyGroup>
31+
<_FSharpBuildTargetFramework Condition="'$(FSharpTestCompilerVersion)' == 'net40'">net46</_FSharpBuildTargetFramework>
32+
<_FSharpBuildTargetFramework Condition="'$(FSharpTestCompilerVersion)' == 'coreclr'">netstandard2.0</_FSharpBuildTargetFramework>
33+
<_FSharpBuildBinPath>$(MSBuildThisFileDirectory)artifacts\bin\FSharp.Build\$(Configuration)\$(_FSharpBuildTargetFramework)</_FSharpBuildBinPath>
4134

35+
<FSharpBuildAssemblyFile>$(_FSharpBuildBinPath)\FSharp.Build.dll</FSharpBuildAssemblyFile>
4236

43-
<!-- We are running under netcore so even though we will use the fsc compiler we can't use the desktop version of the fsharp.build tasks -->
44-
<PropertyGroup>
45-
<FSharpBuildAssemblyFile Condition = " '$(DOTNET_HOST_PATH)' != '' ">$(MSBuildThisFileDirectory)$(Configuration)\coreclr\bin\FSharp.Build.dll</FSharpBuildAssemblyFile>
46-
<FSharpBuildAssemblyFile Condition = " '$(DOTNET_HOST_PATH)' == '' ">$(MSBuildThisFileDirectory)$(Configuration)\net40\bin\FSharp.Build.dll</FSharpBuildAssemblyFile>
37+
<FSharpTargetsPath>$(_FSharpBuildBinPath)/Microsoft.FSharp.Targets</FSharpTargetsPath>
38+
<FSharpPropsShim>$(_FSharpBuildBinPath)/Microsoft.FSharp.NetSdk.props</FSharpPropsShim>
39+
<FSharpTargetsShim>$(_FSharpBuildBinPath)/Microsoft.FSharp.NetSdk.targets</FSharpTargetsShim>
40+
<FSharpOverridesTargetsShim>$(_FSharpBuildBinPath)/Microsoft.FSharp.Overrides.NetSdk.targets</FSharpOverridesTargetsShim>
4741
</PropertyGroup>
48-
</Project>
42+
43+
</Project>

Makefile

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
Configuration ?= release
22
DotNetVersion = `cat DotnetCLIToolsVersion.txt`
3-
DotNetExe = "$(CURDIR)/Tools/dotnet20/dotnet"
3+
DotNetToolPath = $(CURDIR)/artifacts/toolset/dotnet
4+
DotNetExe = "$(DotNetToolPath)/dotnet"
45

56
all: proto restore build test
67

78
tools:
8-
$(CURDIR)/scripts/dotnet-install.sh --version $(DotNetVersion) --install-dir $(CURDIR)/Tools/dotnet20
9+
$(CURDIR)/scripts/dotnet-install.sh --version $(DotNetVersion) --install-dir "$(DotNetToolPath)"
910

1011
global.json: tools
1112
echo { \"sdk\": { \"version\": \"$(DotNetVersion)\" } }>global.json
@@ -14,18 +15,18 @@ proto: global.json
1415
$(DotNetExe) build-server shutdown
1516
$(DotNetExe) restore src/buildtools/buildtools.proj
1617
$(DotNetExe) restore src/fsharp/FSharp.Build/FSharp.Build.fsproj
17-
$(DotNetExe) restore src/fsharp/Fsc/Fsc.fsproj
18+
$(DotNetExe) restore src/fsharp/fsc/fsc.fsproj
1819
$(DotNetExe) build src/buildtools/buildtools.proj -c Proto
1920
$(DotNetExe) build src/fsharp/FSharp.Build/FSharp.Build.fsproj -f netstandard2.0 -c Proto
20-
$(DotNetExe) build src/fsharp/Fsc/Fsc.fsproj -f netcoreapp2.1 -c Proto
21+
$(DotNetExe) build src/fsharp/fsc/fsc.fsproj -f netcoreapp2.1 -c Proto
2122

2223
restore: global.json
2324
$(DotNetExe) restore src/fsharp/FSharp.Core/FSharp.Core.fsproj
2425
$(DotNetExe) restore src/fsharp/FSharp.Build/FSharp.Build.fsproj
2526
$(DotNetExe) restore src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj
26-
$(DotNetExe) restore src/fsharp/Fsc/Fsc.fsproj
27+
$(DotNetExe) restore src/fsharp/fsc/fsc.fsproj
2728
$(DotNetExe) restore src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
28-
$(DotNetExe) restore src/fsharp/fsi/Fsi.fsproj
29+
$(DotNetExe) restore src/fsharp/fsi/fsi.fsproj
2930
$(DotNetExe) restore tests/FSharp.Core.UnitTests/FSharp.Core.UnitTests.fsproj
3031
$(DotNetExe) restore tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj
3132

@@ -34,9 +35,9 @@ build: proto restore
3435
$(DotNetExe) build -c $(Configuration) -f netstandard1.6 src/fsharp/FSharp.Core/FSharp.Core.fsproj
3536
$(DotNetExe) build -c $(Configuration) -f netstandard2.0 src/fsharp/FSharp.Build/FSharp.Build.fsproj
3637
$(DotNetExe) build -c $(Configuration) -f netstandard1.6 src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj
37-
$(DotNetExe) build -c $(Configuration) -f netcoreapp2.1 src/fsharp/Fsc/Fsc.fsproj
38+
$(DotNetExe) build -c $(Configuration) -f netcoreapp2.1 src/fsharp/fsc/fsc.fsproj
3839
$(DotNetExe) build -c $(Configuration) -f netstandard1.6 src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
39-
$(DotNetExe) build -c $(Configuration) -f netcoreapp2.0 src/fsharp/fsi/Fsi.fsproj
40+
$(DotNetExe) build -c $(Configuration) -f netcoreapp2.0 src/fsharp/fsi/fsi.fsproj
4041
$(DotNetExe) build -c $(Configuration) -f netcoreapp2.0 tests/FSharp.Core.UnitTests/FSharp.Core.UnitTests.fsproj
4142
$(DotNetExe) build -c $(Configuration) -f netcoreapp2.0 tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj
4243

@@ -45,6 +46,4 @@ test: build
4546
$(DotNetExe) test -f netcoreapp2.0 -c $(Configuration) --no-restore --no-build tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj -l "trx;LogFileName=$(CURDIR)/tests/TestResults/FSharp.Build.UnitTests.coreclr.trx"
4647

4748
clean:
48-
rm -rf $(CURDIR)/Proto
49-
rm -rf $(CURDIR)/debug
50-
rm -rf $(CURDIR)/release
49+
rm -rf $(CURDIR)/artifacts

PublishToBlob.proj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
<ItemGroup>
1919
<!-- this should pick up both *.nupkg and *.symbols.nupkg -->
20-
<NuGetPackages Include="$(MSBuildThisFileDirectory)$(Configuration)\artifacts\Microsoft.FSharp.Compiler.*.nupkg" />
20+
<NuGetPackages Include="$(MSBuildThisFileDirectory)\artifacts\packages\$(Configuration)\Microsoft.FSharp.Compiler.*.nupkg" />
2121
</ItemGroup>
2222

2323
<Target Name="Build">

artifacts/.gitignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)