build-everything.proj (97 lines of code) (raw):

<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. --> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> <!-- +++++++++++++++++++++++ Project selection for building +++++++++++++++++++++++++++++++ --> <ItemGroup Condition="'$(BUILD_NET40_FSHARP_CORE)'=='1'"> <ProjectsWithNet40 Include="src/fsharp/FSharp.Core/FSharp.Core.fsproj" /> </ItemGroup> <ItemGroup Condition="'$(BUILD_NET40)'=='1'"> <ProjectsWithNet40 Include="src/fsharp/FSharp.Build/FSharp.Build.fsproj" /> <ProjectsWithNet40 Include="src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj" /> <ProjectsWithNet40 Include="src/fsharp/FSharp.Compiler.Server.Shared/FSharp.Compiler.Server.Shared.fsproj"/> <ProjectsWithNet40 Include="src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj" /> <ProjectsWithNet40 Include="src/fsharp/Fsc/Fsc.fsproj" /> <ProjectsWithNet40 Include="src/fsharp/fsi/Fsi.fsproj" /> <ProjectsWithNet40 Include="src/fsharp/fsiAnyCpu/FsiAnyCPU.fsproj"/> </ItemGroup> <ItemGroup Condition="'$(BUILD_CORECLR)'=='1'"> <ProjectsWithCoreClr Include="src/fsharp/FSharp.Core/FSharp.Core.fsproj" /> <ProjectsWithCoreClr Include="src/fsharp/FSharp.Build/FSharp.Build.fsproj" /> <ProjectsWithCoreClr Include="src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj" /> <ProjectsWithCoreClr Include="src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj" /> <ProjectsWithCoreClr Include="src/fsharp/Fsc/Fsc.fsproj" /> <ProjectsWithCoreClr Include="src/fsharp/fsi/Fsi.fsproj" /> <ProjectsWithCoreClr Include="src/fsharp/FSharp.Compiler.nuget/FSharp.Compiler.nuget.proj" /> </ItemGroup> <ItemGroup Condition="'$(BUILD_VS)'=='1'"> <ProjectsWithNet40 Include="vsintegration/fsharp-vsintegration-src-build.proj" /> <ProjectsWithNet40 Include="vsintegration/Utils/LanguageServiceProfiling/LanguageServiceProfiling.fsproj" /> <ProjectsWithNet40 Include="vsintegration/fsharp-vsintegration-project-templates-build.proj" /> <ProjectsWithNet40 Include="vsintegration/fsharp-vsintegration-item-templates-build.proj" /> <ProjectsWithNet40 Include="vsintegration/fsharp-vsintegration-vsix-build.proj" /> </ItemGroup> <ItemGroup Condition="'$(BUILD_FCS)'=='1'"> <ProjectsWithNet40 Include="fcs/FSharp.Compiler.Service/FSharp.Compiler.Service.fsproj" /> <ProjectsWithNet40 Include="fcs/FSharp.Compiler.Service.MSBuild.v12/FSharp.Compiler.Service.MSBuild.v12.fsproj" /> <ProjectsWithNet40 Include="fcs/FSharp.Compiler.Service.ProjectCracker/FSharp.Compiler.Service.ProjectCracker.fsproj" /> <ProjectsWithNet40 Include="fcs/FSharp.Compiler.Service.ProjectCrackerTool/FSharp.Compiler.Service.ProjectCrackerTool.fsproj" /> <ProjectsWithNet40 Include="fcs/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj" /> </ItemGroup> <ItemGroup Condition="'$(BUILD_SETUP)'=='1'"> <SetupProjects Include="setup/fsharp-setup-build.proj" /> </ItemGroup> <ItemGroup Condition="'$(BUILD_NUGET)'=='1'"> <NugetProjects Include="src/fsharp/FSharp.Core.nuget/FSharp.Core.nuget.proj" /> </ItemGroup> <!-- +++++++++++++++++++++++ Project selection for testing +++++++++++++++++++++++++++++++ --> <ItemGroup Condition="'$(TEST_NET40_COREUNIT_SUITE)'=='1'" > <ProjectsWithNet40 Include="tests/FSharp.Core.UnitTests/FSharp.Core.Unittests.fsproj"/> <ProjectsWithNet40 Include="tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj"/> </ItemGroup> <ItemGroup Condition="'$(TEST_CORECLR_COREUNIT_SUITE)'=='1'"> <ProjectsWithCoreClr Include="tests/FSharp.Core.UnitTests/FSharp.Core.Unittests.fsproj"/> <ProjectsWithCoreClr Include="tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj"/> </ItemGroup> <ItemGroup Condition="'$(TEST_NET40_COMPILERUNIT_SUITE)'=='1'" > <ProjectsWithNet40 Include="tests/FSharp.Compiler.UnitTests/FSharp.Compiler.UnitTests.fsproj"/> </ItemGroup> <ItemGroup Condition="'$(TEST_NET40_FSHARP_SUITE)'=='1'" > <ProjectsWithNet40 Include="tests/fsharp/FSharp.Tests.FSharpSuite.fsproj" /> </ItemGroup> <ItemGroup Condition="'$(TEST_CORECLR_FSHARP_SUITE)'=='1'" > <ProjectsWithCoreClr Include="tests/fsharp/FSharp.Tests.FSharpSuite.DrivingCoreCLR/FSharp.Tests.FSharpSuite.DrivingCoreCLR.fsproj" /> <ProjectsWithCoreClr Include="tests/fsharpqa/testenv/src/PEVerify/PEVerify.csproj" /> <ProjectsToRestore Include="tests/fsharpqa/testenv/src/PEVerify/PEVerify.csproj" /> </ItemGroup> <ItemGroup Condition="'$(TEST_NET40_FSHARPQA_SUITE)'=='1' OR '$(TEST_NET40_FSHARP_SUITE)'=='1'" > <ProjectsWithNet40 Include="tests/fsharpqa/testenv/src/ILComparer/ILComparer.fsproj" /> <ProjectsWithNet40 Include="tests/fsharpqa/testenv/src/HostedCompilerServer/HostedCompilerServer.fsproj" /> <ProjectsWithNet40 Include="tests/fsharpqa/testenv/src/PEVerify/PEVerify.csproj" /> <ProjectsToRestore Include="tests/fsharpqa/testenv/src/PEVerify/PEVerify.csproj" /> </ItemGroup> <ItemGroup Condition="'$(TEST_VS_IDEUNIT_SUITE)'=='1'" > <ProjectsWithNet40 Include="vsintegration/fsharp-vsintegration-unittests-build.proj"/> </ItemGroup> <PropertyGroup> <CustomProps>AssemblySearchPaths={HintPathFromItem};{TargetFrameworkDirectory};{RawFileName}</CustomProps> </PropertyGroup> <!-- +++++++++++++++++++++++ Targets +++++++++++++++++++++++++++++++ --> <Target Name="Build"> <MSBuild Projects="@(ProjectsWithNet40)" Targets="Build" BuildInParallel="true" Properties="Configuration=$(Configuration);TargetDotnetProfile=net40;BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" /> <MSBuild Projects="@(ProjectsWithCoreClr)" Targets="Build" BuildInParallel="false" Properties="Configuration=$(Configuration);TargetDotnetProfile=coreclr;BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" /> <MSBuild Projects="@(NugetProjects)" Targets="Build" BuildInParallel="false" Properties="Configuration=$(Configuration);$(CustomProps)" /> <MSBuild Projects="@(SetupProjects)" Targets="Build" BuildInParallel="false" Properties="Configuration=$(Configuration);BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" /> </Target> <Target Name="Rebuild"> <MSBuild Projects="@(ProjectsWithNet40)" Targets="Rebuild" BuildInParallel="true" Properties="Configuration=$(Configuration);TargetDotnetProfile=net40;BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" /> <MSBuild Projects="@(ProjectsWithNet40PlusDefine)" Targets="Rebuild" BuildInParallel="true" Properties="Configuration=$(Configuration);TargetDotnetProfile=net40;BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);FSHARP_SUITE_DRIVES_CORECLR_TESTS=true;$(CustomProps)" /> <MSBuild Projects="@(ProjectsWithCoreClr)" Targets="Rebuild" BuildInParallel="false" Properties="Configuration=$(Configuration);TargetDotnetProfile=coreclr;BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" /> <MSBuild Projects="@(NugetProjects)" Targets="Rebuild" BuildInParallel="false" Properties="Configuration=$(Configuration);$(CustomProps)" /> <MSBuild Projects="@(SetupProjects)" Targets="Rebuild" BuildInParallel="false" Properties="Configuration=$(Configuration);BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" /> </Target> <Target Name="Clean"> <MSBuild Projects="@(ProjectsWithNet40)" Targets="Clean" BuildInParallel="true" Properties="Configuration=$(Configuration);TargetDotnetProfile=net40;BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" /> <MSBuild Projects="@(ProjectsWithNet40PlusDefine)" Targets="Clean" BuildInParallel="true" Properties="Configuration=$(Configuration);TargetDotnetProfile=net40;BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);FSHARP_SUITE_DRIVES_CORECLR_TESTS=true;$(CustomProps)" /> <MSBuild Projects="@(ProjectsWithCoreClr)" Targets="Clean" BuildInParallel="false" Properties="Configuration=$(Configuration);TargetDotnetProfile=coreclr;BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" /> <MSBuild Projects="@(NugetProjects)" Targets="Clean" BuildInParallel="false" Properties="Configuration=$(Configuration);$(CustomProps)" /> <MSBuild Projects="@(SetupProjects)" Targets="Clean" BuildInParallel="false" Properties="Configuration=$(Configuration);BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" /> </Target> <Target Name="Restore"> <MSBuild Projects="@(ProjectsToRestore)" Targets="Restore" /> </Target> </Project>