提交 d801647b 编写于 作者: J Jared Parsons 提交者: GitHub

Merge pull request #14839 from jaredpar/fix-build

Build changes
......@@ -115,6 +115,20 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Microsoft.CodeAnalysis.Meta
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MSBuildTask", "src\Compilers\Core\MSBuildTask\MSBuildTask.csproj", "{7AD4FE65-9A30-41A6-8004-AA8F89BCB7F3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ScriptingTest", "src\Scripting\CoreTest\ScriptingTest.csproj", "{2DAE4406-7A89-4B5F-95C3-BC5472CE47CE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpScriptingTest", "src\Scripting\CSharpTest\CSharpScriptingTest.csproj", "{2DAE4406-7A89-4B5F-95C3-BC5422CE47CE}"
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "BasicScriptingTest", "src\Scripting\VisualBasicTest\BasicScriptingTest.vbproj", "{ABC7262E-1053-49F3-B846-E3091BB92E8C}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Scripting", "Scripting", "{3FF38FD4-DF16-44B0-924F-0D5AE155495B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Scripting", "src\Scripting\Core\Scripting.csproj", "{12A68549-4E8C-42D6-8703-A09335F97997}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpScripting", "src\Scripting\CSharp\CSharpScripting.csproj", "{066F0DBD-C46C-4C20-AFEC-99829A172625}"
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "BasicScripting", "src\Scripting\VisualBasic\BasicScripting.vbproj", "{3E7DEA65-317B-4F43-A25D-62F18D96CFD7}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
src\Compilers\Core\CommandLine\CommandLine.projitems*{06b26dcb-7a12-48ef-ae50-708593abd05f}*SharedItemsImports = 4
......@@ -981,6 +995,126 @@ Global
{7AD4FE65-9A30-41A6-8004-AA8F89BCB7F3}.Release|x64.Build.0 = Release|Any CPU
{7AD4FE65-9A30-41A6-8004-AA8F89BCB7F3}.Release|x86.ActiveCfg = Release|Any CPU
{7AD4FE65-9A30-41A6-8004-AA8F89BCB7F3}.Release|x86.Build.0 = Release|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5472CE47CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5472CE47CE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5472CE47CE}.Debug|ARM.ActiveCfg = Debug|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5472CE47CE}.Debug|ARM.Build.0 = Debug|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5472CE47CE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5472CE47CE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5472CE47CE}.Debug|x64.ActiveCfg = Debug|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5472CE47CE}.Debug|x64.Build.0 = Debug|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5472CE47CE}.Debug|x86.ActiveCfg = Debug|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5472CE47CE}.Debug|x86.Build.0 = Debug|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5472CE47CE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5472CE47CE}.Release|Any CPU.Build.0 = Release|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5472CE47CE}.Release|ARM.ActiveCfg = Release|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5472CE47CE}.Release|ARM.Build.0 = Release|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5472CE47CE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5472CE47CE}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5472CE47CE}.Release|x64.ActiveCfg = Release|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5472CE47CE}.Release|x64.Build.0 = Release|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5472CE47CE}.Release|x86.ActiveCfg = Release|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5472CE47CE}.Release|x86.Build.0 = Release|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5422CE47CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5422CE47CE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5422CE47CE}.Debug|ARM.ActiveCfg = Debug|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5422CE47CE}.Debug|ARM.Build.0 = Debug|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5422CE47CE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5422CE47CE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5422CE47CE}.Debug|x64.ActiveCfg = Debug|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5422CE47CE}.Debug|x64.Build.0 = Debug|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5422CE47CE}.Debug|x86.ActiveCfg = Debug|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5422CE47CE}.Debug|x86.Build.0 = Debug|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5422CE47CE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5422CE47CE}.Release|Any CPU.Build.0 = Release|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5422CE47CE}.Release|ARM.ActiveCfg = Release|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5422CE47CE}.Release|ARM.Build.0 = Release|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5422CE47CE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5422CE47CE}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5422CE47CE}.Release|x64.ActiveCfg = Release|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5422CE47CE}.Release|x64.Build.0 = Release|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5422CE47CE}.Release|x86.ActiveCfg = Release|Any CPU
{2DAE4406-7A89-4B5F-95C3-BC5422CE47CE}.Release|x86.Build.0 = Release|Any CPU
{ABC7262E-1053-49F3-B846-E3091BB92E8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{ABC7262E-1053-49F3-B846-E3091BB92E8C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{ABC7262E-1053-49F3-B846-E3091BB92E8C}.Debug|ARM.ActiveCfg = Debug|Any CPU
{ABC7262E-1053-49F3-B846-E3091BB92E8C}.Debug|ARM.Build.0 = Debug|Any CPU
{ABC7262E-1053-49F3-B846-E3091BB92E8C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{ABC7262E-1053-49F3-B846-E3091BB92E8C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{ABC7262E-1053-49F3-B846-E3091BB92E8C}.Debug|x64.ActiveCfg = Debug|Any CPU
{ABC7262E-1053-49F3-B846-E3091BB92E8C}.Debug|x64.Build.0 = Debug|Any CPU
{ABC7262E-1053-49F3-B846-E3091BB92E8C}.Debug|x86.ActiveCfg = Debug|Any CPU
{ABC7262E-1053-49F3-B846-E3091BB92E8C}.Debug|x86.Build.0 = Debug|Any CPU
{ABC7262E-1053-49F3-B846-E3091BB92E8C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{ABC7262E-1053-49F3-B846-E3091BB92E8C}.Release|Any CPU.Build.0 = Release|Any CPU
{ABC7262E-1053-49F3-B846-E3091BB92E8C}.Release|ARM.ActiveCfg = Release|Any CPU
{ABC7262E-1053-49F3-B846-E3091BB92E8C}.Release|ARM.Build.0 = Release|Any CPU
{ABC7262E-1053-49F3-B846-E3091BB92E8C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{ABC7262E-1053-49F3-B846-E3091BB92E8C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{ABC7262E-1053-49F3-B846-E3091BB92E8C}.Release|x64.ActiveCfg = Release|Any CPU
{ABC7262E-1053-49F3-B846-E3091BB92E8C}.Release|x64.Build.0 = Release|Any CPU
{ABC7262E-1053-49F3-B846-E3091BB92E8C}.Release|x86.ActiveCfg = Release|Any CPU
{ABC7262E-1053-49F3-B846-E3091BB92E8C}.Release|x86.Build.0 = Release|Any CPU
{12A68549-4E8C-42D6-8703-A09335F97997}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{12A68549-4E8C-42D6-8703-A09335F97997}.Debug|Any CPU.Build.0 = Debug|Any CPU
{12A68549-4E8C-42D6-8703-A09335F97997}.Debug|ARM.ActiveCfg = Debug|ARM
{12A68549-4E8C-42D6-8703-A09335F97997}.Debug|ARM.Build.0 = Debug|ARM
{12A68549-4E8C-42D6-8703-A09335F97997}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{12A68549-4E8C-42D6-8703-A09335F97997}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{12A68549-4E8C-42D6-8703-A09335F97997}.Debug|x64.ActiveCfg = Debug|Any CPU
{12A68549-4E8C-42D6-8703-A09335F97997}.Debug|x64.Build.0 = Debug|Any CPU
{12A68549-4E8C-42D6-8703-A09335F97997}.Debug|x86.ActiveCfg = Debug|Any CPU
{12A68549-4E8C-42D6-8703-A09335F97997}.Debug|x86.Build.0 = Debug|Any CPU
{12A68549-4E8C-42D6-8703-A09335F97997}.Release|Any CPU.ActiveCfg = Release|Any CPU
{12A68549-4E8C-42D6-8703-A09335F97997}.Release|Any CPU.Build.0 = Release|Any CPU
{12A68549-4E8C-42D6-8703-A09335F97997}.Release|ARM.ActiveCfg = Release|ARM
{12A68549-4E8C-42D6-8703-A09335F97997}.Release|ARM.Build.0 = Release|ARM
{12A68549-4E8C-42D6-8703-A09335F97997}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{12A68549-4E8C-42D6-8703-A09335F97997}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{12A68549-4E8C-42D6-8703-A09335F97997}.Release|x64.ActiveCfg = Release|Any CPU
{12A68549-4E8C-42D6-8703-A09335F97997}.Release|x64.Build.0 = Release|Any CPU
{12A68549-4E8C-42D6-8703-A09335F97997}.Release|x86.ActiveCfg = Release|Any CPU
{12A68549-4E8C-42D6-8703-A09335F97997}.Release|x86.Build.0 = Release|Any CPU
{066F0DBD-C46C-4C20-AFEC-99829A172625}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{066F0DBD-C46C-4C20-AFEC-99829A172625}.Debug|Any CPU.Build.0 = Debug|Any CPU
{066F0DBD-C46C-4C20-AFEC-99829A172625}.Debug|ARM.ActiveCfg = Debug|ARM
{066F0DBD-C46C-4C20-AFEC-99829A172625}.Debug|ARM.Build.0 = Debug|ARM
{066F0DBD-C46C-4C20-AFEC-99829A172625}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{066F0DBD-C46C-4C20-AFEC-99829A172625}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{066F0DBD-C46C-4C20-AFEC-99829A172625}.Debug|x64.ActiveCfg = Debug|Any CPU
{066F0DBD-C46C-4C20-AFEC-99829A172625}.Debug|x64.Build.0 = Debug|Any CPU
{066F0DBD-C46C-4C20-AFEC-99829A172625}.Debug|x86.ActiveCfg = Debug|Any CPU
{066F0DBD-C46C-4C20-AFEC-99829A172625}.Debug|x86.Build.0 = Debug|Any CPU
{066F0DBD-C46C-4C20-AFEC-99829A172625}.Release|Any CPU.ActiveCfg = Release|Any CPU
{066F0DBD-C46C-4C20-AFEC-99829A172625}.Release|Any CPU.Build.0 = Release|Any CPU
{066F0DBD-C46C-4C20-AFEC-99829A172625}.Release|ARM.ActiveCfg = Release|ARM
{066F0DBD-C46C-4C20-AFEC-99829A172625}.Release|ARM.Build.0 = Release|ARM
{066F0DBD-C46C-4C20-AFEC-99829A172625}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{066F0DBD-C46C-4C20-AFEC-99829A172625}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{066F0DBD-C46C-4C20-AFEC-99829A172625}.Release|x64.ActiveCfg = Release|Any CPU
{066F0DBD-C46C-4C20-AFEC-99829A172625}.Release|x64.Build.0 = Release|Any CPU
{066F0DBD-C46C-4C20-AFEC-99829A172625}.Release|x86.ActiveCfg = Release|Any CPU
{066F0DBD-C46C-4C20-AFEC-99829A172625}.Release|x86.Build.0 = Release|Any CPU
{3E7DEA65-317B-4F43-A25D-62F18D96CFD7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3E7DEA65-317B-4F43-A25D-62F18D96CFD7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3E7DEA65-317B-4F43-A25D-62F18D96CFD7}.Debug|ARM.ActiveCfg = Debug|ARM
{3E7DEA65-317B-4F43-A25D-62F18D96CFD7}.Debug|ARM.Build.0 = Debug|ARM
{3E7DEA65-317B-4F43-A25D-62F18D96CFD7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{3E7DEA65-317B-4F43-A25D-62F18D96CFD7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{3E7DEA65-317B-4F43-A25D-62F18D96CFD7}.Debug|x64.ActiveCfg = Debug|Any CPU
{3E7DEA65-317B-4F43-A25D-62F18D96CFD7}.Debug|x64.Build.0 = Debug|Any CPU
{3E7DEA65-317B-4F43-A25D-62F18D96CFD7}.Debug|x86.ActiveCfg = Debug|Any CPU
{3E7DEA65-317B-4F43-A25D-62F18D96CFD7}.Debug|x86.Build.0 = Debug|Any CPU
{3E7DEA65-317B-4F43-A25D-62F18D96CFD7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3E7DEA65-317B-4F43-A25D-62F18D96CFD7}.Release|Any CPU.Build.0 = Release|Any CPU
{3E7DEA65-317B-4F43-A25D-62F18D96CFD7}.Release|ARM.ActiveCfg = Release|ARM
{3E7DEA65-317B-4F43-A25D-62F18D96CFD7}.Release|ARM.Build.0 = Release|ARM
{3E7DEA65-317B-4F43-A25D-62F18D96CFD7}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{3E7DEA65-317B-4F43-A25D-62F18D96CFD7}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{3E7DEA65-317B-4F43-A25D-62F18D96CFD7}.Release|x64.ActiveCfg = Release|Any CPU
{3E7DEA65-317B-4F43-A25D-62F18D96CFD7}.Release|x64.Build.0 = Release|Any CPU
{3E7DEA65-317B-4F43-A25D-62F18D96CFD7}.Release|x86.ActiveCfg = Release|Any CPU
{3E7DEA65-317B-4F43-A25D-62F18D96CFD7}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
......@@ -1035,5 +1169,11 @@ Global
{C1930979-C824-496B-A630-70F5369A636F} = {3CDEA9FB-CD44-4AB4-98A8-5537AAA2169B}
{D73ADF7D-2C1C-42AE-B2AB-EDC9497E4B71} = {3CDEA9FB-CD44-4AB4-98A8-5537AAA2169B}
{7AD4FE65-9A30-41A6-8004-AA8F89BCB7F3} = {A41D1B99-F489-4C43-BBDF-96D61B19A6B9}
{2DAE4406-7A89-4B5F-95C3-BC5472CE47CE} = {3FF38FD4-DF16-44B0-924F-0D5AE155495B}
{2DAE4406-7A89-4B5F-95C3-BC5422CE47CE} = {3FF38FD4-DF16-44B0-924F-0D5AE155495B}
{ABC7262E-1053-49F3-B846-E3091BB92E8C} = {3FF38FD4-DF16-44B0-924F-0D5AE155495B}
{12A68549-4E8C-42D6-8703-A09335F97997} = {3FF38FD4-DF16-44B0-924F-0D5AE155495B}
{066F0DBD-C46C-4C20-AFEC-99829A172625} = {3FF38FD4-DF16-44B0-924F-0D5AE155495B}
{3E7DEA65-317B-4F43-A25D-62F18D96CFD7} = {3FF38FD4-DF16-44B0-924F-0D5AE155495B}
EndGlobalSection
EndGlobal
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -->
<!-- If the project hasn't configured a ruleset, set a default ruleset. -->
<Choose>
<When Condition="'$(RoslynProjectType)' == 'Dll'">
<PropertyGroup>
......@@ -95,20 +94,32 @@
</When>
</Choose>
<ItemDefinitionGroup Condition="'$(_CopyReferences)' == 'false'">
<Reference>
<Private>False</Private>
</Reference>
</ItemDefinitionGroup>
<Choose>
<When Condition="'$(ProjectLanguage)' == 'VB'">
<PropertyGroup>
<MSBuildTargetsLanguageName>VisualBasic</MSBuildTargetsLanguageName>
</PropertyGroup>
</When>
<When Condition="'$(ProjectLanguage)' == 'CSharp'">
<PropertyGroup>
<MSBuildTargetsLanguageName>CSharp</MSBuildTargetsLanguageName>
</PropertyGroup>
</When>
</Choose>
<ItemDefinitionGroup Condition="'$(_CopyProjectReferences)' == 'false'">
<ProjectReference>
<Private>False</Private>
</ProjectReference>
</ItemDefinitionGroup>
<Choose>
<When Condition="'$(TargetFrameworkIdentifier)' == '.NETPortable'">
<PropertyGroup>
<MSBuildTargetsFilePath>$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.$(MSBuildTargetsLanguageName).targets</MSBuildTargetsFilePath>
</PropertyGroup>
</When>
<Otherwise>
<PropertyGroup>
<MSBuildTargetsFilePath>$(MSBuildToolsPath)\Microsoft.$(MSBuildTargetsLanguageName).targets</MSBuildTargetsFilePath>
</PropertyGroup>
</Otherwise>
</Choose>
<!-- This file is imported by all projects at the end of the project files -->
<!-- Update common properties -->
<PropertyGroup>
<OutputPath>$(OutDir)</OutputPath>
<DocumentationFile Condition="'$(DocumentationFile)' == '' AND '$(NoDocumentationFile)' != 'true' AND '$(Nonshipping)' != 'true' AND '$(ProjectLanguage)' == 'VB' AND '$(AssemblyName)' != ''">$(AssemblyName).xml</DocumentationFile>
......@@ -119,10 +130,18 @@
<!-- While UseCommonOutputDirectory will prevent NuGet implementations from being copied,
we still need to turn off CopyNuGetImplementations to prevent the build task from complaining about a
lack of a runtime section in our project.json. -->
<CopyNuGetImplementations Condition="'$(UseCommonOutputDirectory)' == 'true'">false</CopyNuGetImplementations>
<ForceGenerationOfBindingRedirects Condition="'$(GenerateMSBuildBindingRedirects)' == 'true'">true</ForceGenerationOfBindingRedirects>
<AutoGenerateBindingRedirects Condition="'$(ForceGenerationOfBindingRedirects)' == 'true'">true</AutoGenerateBindingRedirects>
</PropertyGroup>
<PropertyGroup>
<OptimizationDataFolderPath>$(NuGetPackageRoot)\RoslynDependencies.OptimizationData\2.0.0-beta5-60913-03\content\OptimizationData</OptimizationDataFolderPath>
<OptimizationDataFile>$([System.IO.Path]::GetFullPath('$(OptimizationDataFolderPath)\$(TargetName).pgo'))</OptimizationDataFile>
</PropertyGroup>
<!-- If the project hasn't configured a ruleset, set a default ruleset. -->
<Choose>
<When Condition="'$(CodeAnalysisRuleSet)' == ''">
......@@ -190,6 +209,32 @@
</When>
</Choose>
<PropertyGroup>
<GetVsixSourceItemsDependsOn>$(GetVsixSourceItemsDependsOn);IncludeVsixLocalOnlyItems</GetVsixSourceItemsDependsOn>
</PropertyGroup>
<PropertyGroup>
<ProducingSignedVsix Condition="'$(ShouldSignBuild)' == 'true' AND '$(NonShipping)' != 'true' AND '$(CreateVsixContainer)' == 'true'">true</ProducingSignedVsix>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(_CopyReferences)' == 'false'">
<Reference>
<Private>False</Private>
</Reference>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(_CopyProjectReferences)' == 'false'">
<ProjectReference>
<Private>False</Private>
</ProjectReference>
</ItemDefinitionGroup>
<ItemDefinitionGroup>
<NuGetPackageToIncludeInVsix>
<Visible>false</Visible>
</NuGetPackageToIncludeInVsix>
</ItemDefinitionGroup>
<!-- ====================================================================================
Generation of binding redirects.
......@@ -212,47 +257,6 @@
<MaxVersion>$(VisualStudioReferenceAssemblyVersion)</MaxVersion>
</SuggestedBindingRedirects>
</ItemGroup>
<PropertyGroup>
<ForceGenerationOfBindingRedirects Condition="'$(GenerateMSBuildBindingRedirects)' == 'true'">true</ForceGenerationOfBindingRedirects>
<AutoGenerateBindingRedirects Condition="'$(ForceGenerationOfBindingRedirects)' == 'true'">true</AutoGenerateBindingRedirects>
</PropertyGroup>
<Target Name="ForceGenerationOfBindingRedirects"
AfterTargets="ResolveAssemblyReferences"
BeforeTargets="GenerateBindingRedirects"
Condition="'$(ForceGenerationOfBindingRedirects)' == 'true'">
<PropertyGroup>
<!-- Needs to be set in a target because it has to be set after the initial evaluation in the common targets -->
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
</Target>
<Choose>
<When Condition="'$(ProjectLanguage)' == 'VB'">
<PropertyGroup>
<MSBuildTargetsLanguageName>VisualBasic</MSBuildTargetsLanguageName>
</PropertyGroup>
</When>
<When Condition="'$(ProjectLanguage)' == 'CSharp'">
<PropertyGroup>
<MSBuildTargetsLanguageName>CSharp</MSBuildTargetsLanguageName>
</PropertyGroup>
</When>
</Choose>
<Choose>
<When Condition="'$(TargetFrameworkIdentifier)' == '.NETPortable'">
<PropertyGroup>
<MSBuildTargetsFilePath>$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.$(MSBuildTargetsLanguageName).targets</MSBuildTargetsFilePath>
</PropertyGroup>
</When>
<Otherwise>
<PropertyGroup>
<MSBuildTargetsFilePath>$(MSBuildToolsPath)\Microsoft.$(MSBuildTargetsLanguageName).targets</MSBuildTargetsFilePath>
</PropertyGroup>
</Otherwise>
</Choose>
<Import Project="$(MSBuildTargetsFilePath)" />
......@@ -287,25 +291,6 @@
<FinalDefineConstants>$(FinalDefineConstants.Replace('"', ''))</FinalDefineConstants>
</PropertyGroup>
<!-- Verify some build flags are correct -->
<PropertyGroup>
<PrepareForBuildDependsOn>$(PrepareForBuildDependsOn);VerifyBuildFlags</PrepareForBuildDependsOn>
</PropertyGroup>
<Target Name="VerifyBuildFlags">
<Error
Condition="'$(CheckForOverflowUnderflow)' != '' OR '$(RemoveIntegerChecks)' != ''"
Text="The following properties cannot be set by individual projects: CheckForOverflowUnderflow and RemoveIntegerChecks" />
<PropertyGroup Condition="'$(ProjectLanguage)' == 'CSharp'">
<CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
</PropertyGroup>
<PropertyGroup Condition="'$(ProjectLanguage)' == 'VB'">
<RemoveIntegerChecks>true</RemoveIntegerChecks>
</PropertyGroup>
</Target>
<!-- For our projects that specify multiple targets in the project.json to work around https://github.com/dotnet/roslyn/issues/12458,
we need to also silence a NuGet generated warning -->
<Target Name="EmitMSBuildWarning"></Target>
......@@ -316,10 +301,6 @@
==================================================================================== -->
<PropertyGroup>
<GetVsixSourceItemsDependsOn>$(GetVsixSourceItemsDependsOn);IncludeVsixLocalOnlyItems</GetVsixSourceItemsDependsOn>
</PropertyGroup>
<Target Name="IncludeVsixLocalOnlyItems">
<!-- This is shamelessly ripped from Microsoft.VsSDK.targets -->
<ItemGroup>
......@@ -368,12 +349,6 @@
</ItemGroup>
</Target>
<ItemDefinitionGroup>
<NuGetPackageToIncludeInVsix>
<Visible>false</Visible>
</NuGetPackageToIncludeInVsix>
</ItemDefinitionGroup>
<!-- This is a copy of the Microsoft.VisualStudio.SDK.EmbedInteropTypes NuGet package, but only the list of
assemblies that we need. The package includes things like EnvDTE which are reasonable for consumers, but
strange since we actually _implement_ DTE and use it as an exchange type with generics in a few places. -->
......@@ -465,10 +440,16 @@
==================================================================================== -->
<PropertyGroup>
<OptimizationDataFolderPath>$(NuGetPackageRoot)\RoslynDependencies.OptimizationData\2.0.0-beta5-60913-03\content\OptimizationData</OptimizationDataFolderPath>
<OptimizationDataFile>$([System.IO.Path]::GetFullPath('$(OptimizationDataFolderPath)\$(TargetName).pgo'))</OptimizationDataFile>
</PropertyGroup>
<Target Name="ForceGenerationOfBindingRedirects"
AfterTargets="ResolveAssemblyReferences"
BeforeTargets="GenerateBindingRedirects"
Condition="'$(ForceGenerationOfBindingRedirects)' == 'true'">
<PropertyGroup>
<!-- Needs to be set in a target because it has to be set after the initial evaluation in the common targets -->
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
</Target>
<!-- The path to IBCMerge.exe must be specified at build time via $(IbcMergePath). Typically this is passed as a build definition variable -->
<Target Name="ApplyOptimizations"
......@@ -484,16 +465,4 @@
<Message Text="$(IbcMergeOutput)" />
</Target>
<!-- ====================================================================================
Support for signing VSIXes
==================================================================================== -->
<PropertyGroup>
<ProducingSignedVsix Condition="'$(ShouldSignBuild)' == 'true' AND '$(NonShipping)' != 'true' AND '$(CreateVsixContainer)' == 'true'">true</ProducingSignedVsix>
</PropertyGroup>
</Project>
# Build Targets
## Strategy
The goal of our targets files is to be the container of all of our build logic. Our repo has several hundred projects that target various platforms and products. The requirements of these platforms / products can change frequently during a release. Reacting to these changes is easier when the build logic is centralized.
To accomplish this all of the build logic is contained in our central targets files. This includes logic around packaging, deployment, nuget targeting, signing, etc... The preference is to contain logic in XML when reasonable but a custom build task is used when appropriate.
The individual project files contain declaritive information only. They inherit their build logic by importing [Settings.targets](Settings.targets) at the start and [Imports.targets](Imports.targets) at the conclusion.
## Files
This section describes the purpose and layout of the important files here.
### Settings.targets
This file is importanted at the start of projects. There are two primary purposes of this file:
- Import standard targets files.
- Define the set of properties which ...
- Projects reasonably need to ready, modify or evaluate.
- Are necessary for importing standard target files.
Properties like $(Configuration) and $(OutDir) are reasonable to define here as projects can make reasonable use of these values. For example:
``` xml
<OutDir>$(OutDir)\Shared</OutDir>
```
Properties like $(Deterministic), $(CheckForOverflowUnderflow), etc ... should not be defined here. No reasonable project will read these values as they are a requirement for how we produce binaries. These should all instead be defined in Imports.targets.
The general structure of this file is:
- PropertyGroup for setting all of the necessary properties.
- UsingTask for any of our custom tasks.
- Import elements for standard targets.
### Imports.targets
This file is imported at the end of projects. The primary purposes of this file are:
- Define all properties which are necessary to build the product.
- Use Import and custom Targets to define the necessary build logic.
Properties which are central to our build should be defined here. For example $(Deterministic) is unconditionally defined in this file. No project should be able to override it because it's important to the correctness of our build.
The general structure of this file is:
- PropertyGroup for setting properties that are necessary for build or for correctly evaluating the following Imports.
- Import all of the external targets.
- PropertyGroup to adjust properties set by the external projects.
- Custom Targets for our build.
......@@ -114,6 +114,7 @@
<OptionStrict>On</OptionStrict>
<RootNamespace></RootNamespace>
<VBRuntime>Embed</VBRuntime>
<RemoveIntegerChecks>true</RemoveIntegerChecks>
</PropertyGroup>
<ItemGroup>
<Import Include="Microsoft.VisualBasic" />
......@@ -153,6 +154,7 @@
thorough documentation story
-->
<NoWarn>$(NoWarn);1591</NoWarn>
<CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<DebugSymbols>true</DebugSymbols>
......@@ -262,4 +264,4 @@
SourceFiles="@(IntermediateAssembly -> '%(fullpath).key')"
DestinationFolder="$(OutDir)" />
</Target>
</Project>
</Project>
{
"targets": [
"Roslyn.sln",
"src\\Samples\\Samples.sln"
]
}
......@@ -123,7 +123,7 @@ echo Running RepoUtil
REM Verify the state of our project.jsons
echo Running BuildBoss
.\Binaries\%BuildConfiguration%\Exes\BuildBoss\BuildBoss.exe Roslyn.sln src\Samples\Samples.sln || goto :BuildFailed
.\Binaries\%BuildConfiguration%\Exes\BuildBoss\BuildBoss.exe Roslyn.sln Compilers.sln src\Samples\Samples.sln || goto :BuildFailed
REM Ensure caller sees successful exit.
exit /b 0
......
......@@ -39,7 +39,6 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<OutDir>..\..\..\..\Binaries\Debug\amd64</OutDir>
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>..\CSharpCodeAnalysisRules.ruleset</CodeAnalysisRuleSet>
......@@ -892,4 +891,4 @@
</ItemGroup>
<Import Project="..\CSharpAnalyzerDriver\CSharpAnalyzerDriver.projitems" Label="Shared" />
<Import Project="..\..\..\..\build\Targets\Imports.targets" />
</Project>
\ No newline at end of file
</Project>
......@@ -55,7 +55,6 @@
<DebugSymbols>true</DebugSymbols>
<OutDir>..\..\..\..\Binaries\Debug\amd64</OutDir>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
......@@ -88,4 +87,4 @@
</ItemGroup>
<Import Project="..\..\..\..\build\Targets\Imports.targets" />
<Import Project="..\..\..\..\build\Targets\Roslyn.Toolsets.Xunit.targets" />
</Project>
\ No newline at end of file
</Project>
......@@ -23,7 +23,6 @@
<DebugSymbols>true</DebugSymbols>
<OutDir>..\..\..\..\Binaries\Debug\amd64</OutDir>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
......@@ -813,4 +812,4 @@
<Import Project="..\..\..\Dependencies\CodeAnalysis.Metadata\Microsoft.CodeAnalysis.Metadata.projitems" Label="Shared" />
<Import Project="..\..\..\Dependencies\PooledObjects\Microsoft.CodeAnalysis.PooledObjects.projitems" Label="Shared" />
<Import Project="..\..\..\..\build\Targets\Imports.targets" />
</Project>
\ No newline at end of file
</Project>
......@@ -66,7 +66,6 @@
<DebugSymbols>true</DebugSymbols>
<OutDir>..\..\..\..\Binaries\Debug\amd64</OutDir>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
......@@ -109,4 +108,4 @@
</ItemGroup>
<Import Project="..\..\..\..\build\Targets\Imports.targets" />
<Import Project="..\..\..\..\build\Targets\Roslyn.Toolsets.Xunit.targets" />
</Project>
\ No newline at end of file
</Project>
......@@ -34,7 +34,6 @@
<DebugSymbols>true</DebugSymbols>
<OutDir>..\..\..\Binaries\Debug\amd64</OutDir>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
......@@ -82,4 +81,4 @@
<Import Project="..\..\Dependencies\PooledObjects\Microsoft.CodeAnalysis.PooledObjects.projitems" Label="Shared" />
<Import Project="..\..\Dependencies\CodeAnalysis.Metadata\Microsoft.CodeAnalysis.Metadata.projitems" Label="Shared" />
<Import Project="..\..\..\build\Targets\Imports.targets" />
</Project>
\ No newline at end of file
</Project>
......@@ -60,7 +60,6 @@
<DebugSymbols>true</DebugSymbols>
<OutDir>..\..\..\..\Binaries\Debug\amd64</OutDir>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
......@@ -168,4 +167,4 @@
<Import Project="..\Shared\TestUtilities.projitems" Label="Shared" />
<Import Project="..\..\..\..\build\Targets\Imports.targets" />
<Import Project="..\..\..\..\build\Targets\Roslyn.Toolsets.Xunit.targets" />
</Project>
\ No newline at end of file
</Project>
......@@ -51,7 +51,6 @@
<DebugSymbols>true</DebugSymbols>
<OutDir>..\..\..\..\Binaries\Debug\amd64</OutDir>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
......@@ -114,4 +113,4 @@
</ItemGroup>
<Import Project="..\..\..\..\build\Targets\Imports.targets" />
<Import Project="..\..\..\..\build\Targets\Roslyn.Toolsets.Xunit.targets" />
</Project>
\ No newline at end of file
</Project>
......@@ -22,7 +22,6 @@
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<Compile Include="BuildBossConfig.cs" />
<Compile Include="Program.cs" />
<Compile Include="ProjectData.cs" />
<Compile Include="ProjectUtil.cs" />
......
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BuildBoss
{
public sealed class BuildBossConfig
{
/// <summary>
/// The solutions targetted by this scan
/// </summary>
[JsonProperty(PropertyName = "targets")]
public string[] Targets { get; set; }
}
}
......@@ -11,28 +11,14 @@ namespace BuildBoss
{
internal static class Program
{
internal static int Main(string[] args)
internal static int Main(string[] solutionFilePaths)
{
string configFile;
string basePath;
List<string> solutionFilePaths;
if (!ParseCommandLine(args, out configFile, out basePath, out solutionFilePaths))
if (solutionFilePaths.Length == 0)
{
Usage();
return 1;
}
if (configFile != null)
{
var config = JsonConvert.DeserializeObject<BuildBossConfig>(File.ReadAllText(configFile));
foreach (var target in config.Targets)
{
solutionFilePaths.Add(Path.IsPathRooted(target)
? target
: Path.Combine(basePath, target));
}
}
var allGood = true;
foreach (var solutionFilePath in solutionFilePaths)
{
......@@ -86,51 +72,9 @@ private static bool ProcessProject(string solutionPath, ProjectData projectData,
return true;
}
private static bool ParseCommandLine(string[] args, out string configFile, out string basePath, out List<string> solutionFilePaths)
{
configFile = null;
basePath = AppContext.BaseDirectory;
solutionFilePaths = new List<string>();
var i = 0;
while (i < args.Length)
{
var current = args[i];
switch (current.ToLower())
{
case "-config":
if (i + 1 >= args.Length)
{
Console.WriteLine("config requires an argument");
return false;
}
configFile = args[i + 1];
i += 2;
break;
case "-basepath":
if (i + 1 >= args.Length)
{
Console.WriteLine("basePath requise and argument");
return false;
}
basePath = args[i + 1];
i += 2;
break;
default:
solutionFilePaths.Add(current);
i++;
break;
}
}
return true;
}
private static void Usage()
{
Console.WriteLine($"BuildBoss [-config <config file path] [-basePath <base path>] <solution paths>");
Console.WriteLine($"BuildBoss <solution paths>");
}
}
}
......@@ -40,6 +40,8 @@ internal bool CheckAll(TextWriter textWriter)
allGood &= CheckForProperty(textWriter, "OldToolsVersion");
allGood &= CheckForProperty(textWriter, "SchemaVersion");
allGood &= CheckForProperty(textWriter, "Configuration");
allGood &= CheckForProperty(textWriter, "CheckForOverflowUnderflow");
allGood &= CheckForProperty(textWriter, "RemoveIntegerChecks");
allGood &= CheckRoslynProjectType(textWriter);
allGood &= CheckProjectReferences(textWriter);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册