<commit_before><Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <!-- This file is imported by all projects at the end of the project files -->
  <PropertyGroup Condition="'$(OpenSourceDebug)' == 'true'">
    <DeployVSVersion>12.0</DeployVSVersion>
    <DeployVSHive>Roslyn</DeployVSHive>
    <DeployToPackageFolders>true</DeployToPackageFolders>
    <DelaySignBuild Condition="'$(DelaySignBuild)' == ''">true</DelaySignBuild>
    <NonShipping Condition="'$(NonShipping)' == ''">false</NonShipping>
    <AssemblyVersion>$(MajorRoslynVersion).0.0</AssemblyVersion>
    <BuildVersion>$(MajorRoslynVersion).0.0</BuildVersion>
  </PropertyGroup>

  <!-- Returns the current build version. Used in .vsixmanifests to substitute our build version into them -->
  <Target Name="GetBuildVersion" Outputs="$(BuildVersion)" />

  <!-- Update common properties -->
  <PropertyGroup>
    <OutputPath>$(OutDir)</OutputPath>
    <DocumentationFile Condition="'$(DocumentationFile)' == '' AND '$(NoDocumentationFile)' != 'true' AND '$(Nonshipping)' != 'true' AND '$(ProjectLanguage)' == 'VB' AND '$(AssemblyName)' != ''">$(AssemblyName).xml</DocumentationFile>
    <DocumentationFile Condition="'$(DocumentationFile)' == '' AND '$(NoDocumentationFile)' != 'true' AND '$(Nonshipping)' != 'true' AND '$(ProjectLanguage)' == 'CSharp' AND '$(AssemblyName)' != ''">$(OutputPath)$(AssemblyName).xml</DocumentationFile>
    <RoslynInternalKey>002400000480000094000000060200000024000052534131000400000100010055e0217eb635f69281051f9a823e0c7edd90f28063eb6c7a742a19b4f6139778ee0af438f47aed3b6e9f99838aa8dba689c7a71ddb860c96d923830b57bbd5cd6119406ddb9b002cf1c723bf272d6acbb7129e9d6dd5a5309c94e0ff4b2c884d45a55f475cd7dba59198086f61f5a8c8b5e601c0edbf269733f6f578fc8579c2</RoslynInternalKey>
  </PropertyGroup>

  <!-- settings for strong name signing -->
  <Choose>
    <When Condition="'$(SignAssembly)' == 'true'">
      <Choose>
        <!-- Shipping binaries in an "official" build are delay-signed with the MS key; later, the signing
             system will finish the strong-name signing. -->
        <When Condition="'$(NonShipping)' != 'true' AND ('$(RealSignBuild)' == 'true' OR '$(DelaySignBuild)' == 'true')">
          <PropertyGroup>
            <AssemblyOriginatorKeyFile>$(VSLToolsPath)\Strong Name Keys\35MSSharedLib1024.snk</AssemblyOriginatorKeyFile>
            <DelaySign>true</DelaySign>
            <PublicKey>0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9</PublicKey>
            <PublicKeyToken>31BF3856AD364E35</PublicKeyToken>
          </PropertyGroup>
        </When>

        <!-- Non-shipping binaries in "official" builds, and any binary in an "unofficial" build, are simply
             signed with the Roslyn internal key. -->
        <Otherwise>
          <PropertyGroup>
            <AssemblyOriginatorKeyFile>$(VSLToolsPath)\Strong Name Keys\RoslynInternalKey.Private.snk</AssemblyOriginatorKeyFile>
            <DelaySign>false</DelaySign>
            <PublicKey>$(RoslynInternalKey)</PublicKey>
            <PublicKeyToken>fc793a00266884fb</PublicKeyToken>
          </PropertyGroup>
        </Otherwise>
      </Choose>
    </When>
  </Choose>

  <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" Condition="'$(ProjectLanguage)' == 'VB'" />
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" Condition="'$(ProjectLanguage)' == 'CSharp'" />
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" Condition="'$(ProjectLanguage)' == 'C++'" />

  <PropertyGroup>
    <BuildDependsOn>
      $(BuildDependsOn);
      CopyCppOutputBackToIntDir;
      DeployToPreviewPackageFolders;
    </BuildDependsOn>
  </PropertyGroup>

  <!-- A task for C++ projects to copy their output back under obj\Debug or the like. This is slightly hacky. -->
  <Target
    Name="CopyCppOutputBackToIntDir" Condition="'$(ProjectLanguage)' == 'C++'">

    <Copy SourceFiles="$(TargetPath)" DestinationFolder="$(IntDir)" SkipUnchangedFiles="true" />
    <Copy SourceFiles="$(OutDir)$(TargetName).pdb" DestinationFolder="$(IntDir)" SkipUnchangedFiles="true" Condition="Exists('$(OutDir)$(TargetName).pdb')" />
  </Target>

  <!-- ====================================================================================
       
         Set LARGEADDRESSAWARE bit
       
       ==================================================================================== -->

  <Target Name="SetLargeAddressAwareBit" Condition="'$(OutputType)' == 'Exe' AND '$(LargeAddressAware)' == 'true' AND Exists('$(IntermediateOutputPath)\$(TargetFileName)')"
          BeforeTargets="AfterCompile" DependsOnTargets="CoreCompile">
    <CombinePath BasePath="$(IntermediateOutputPath)" Paths="$(TargetFileName)">
      <Output TaskParameter="CombinedPaths" PropertyName="OutputFilePath" />
    </CombinePath>

    <Exec Command="&quot;$(EditBinToolPath)&quot; /NOLOGO /LARGEADDRESSAWARE &quot;$(OutputFilePath)&quot;" />

    <!-- Since we've modified the binary, we'll now need to re-sign it (unless we're just delay signing)... -->
    <Exec Condition="'$(DelaySign)' != 'true'"
          Command="&quot;$(SnToolPath)&quot; -Ra &quot;$(OutputFilePath)&quot; &quot;$(AssemblyOriginatorKeyFile)&quot;" />
  </Target>

  <!-- Verify some build flags are correct -->
  <PropertyGroup>
    <PrepareForBuildDependsOn>$(PrepareForBuildDependsOn);VerifyBuildFlags</PrepareForBuildDependsOn>
  </PropertyGroup>

  <Target Name="VerifyBuildFlags">
    <Error Condition="'$(RealSignBuild)' == 'true' AND '$(BuildVersion)' == '4192.168.3.11'"
           Text="Must specify a build version in order to real sign a build." />
  </Target>

  <!-- ====================================================================================
  
         Ensure we rebuild if we do a build with a different strong name key

       ==================================================================================== --><commit_msg>Remove SetLargeAddressAwareBit task from VSL.Imports.targets With the Roslyn compiler, the LargeAddressAware bit is already set for VBCSCompiler.exe which is the only project that needs that option. This is different from the native compiler and I'm still tracking down whether it's an intentional change or an accidental one. In any case, the task, as written, didn't work well for incremental builds. (changeset 1225825)<commit_after><Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <!-- This file is imported by all projects at the end of the project files -->
  <PropertyGroup Condition="'$(OpenSourceDebug)' == 'true'">
    <DeployVSVersion>12.0</DeployVSVersion>
    <DeployVSHive>Roslyn</DeployVSHive>
    <DeployToPackageFolders>true</DeployToPackageFolders>
    <DelaySignBuild Condition="'$(DelaySignBuild)' == ''">true</DelaySignBuild>
    <NonShipping Condition="'$(NonShipping)' == ''">false</NonShipping>
    <AssemblyVersion>$(MajorRoslynVersion).0.0</AssemblyVersion>
    <BuildVersion>$(MajorRoslynVersion).0.0</BuildVersion>
  </PropertyGroup>

  <!-- Returns the current build version. Used in .vsixmanifests to substitute our build version into them -->
  <Target Name="GetBuildVersion" Outputs="$(BuildVersion)" />

  <!-- Update common properties -->
  <PropertyGroup>
    <OutputPath>$(OutDir)</OutputPath>
    <DocumentationFile Condition="'$(DocumentationFile)' == '' AND '$(NoDocumentationFile)' != 'true' AND '$(Nonshipping)' != 'true' AND '$(ProjectLanguage)' == 'VB' AND '$(AssemblyName)' != ''">$(AssemblyName).xml</DocumentationFile>
    <DocumentationFile Condition="'$(DocumentationFile)' == '' AND '$(NoDocumentationFile)' != 'true' AND '$(Nonshipping)' != 'true' AND '$(ProjectLanguage)' == 'CSharp' AND '$(AssemblyName)' != ''">$(OutputPath)$(AssemblyName).xml</DocumentationFile>
    <RoslynInternalKey>002400000480000094000000060200000024000052534131000400000100010055e0217eb635f69281051f9a823e0c7edd90f28063eb6c7a742a19b4f6139778ee0af438f47aed3b6e9f99838aa8dba689c7a71ddb860c96d923830b57bbd5cd6119406ddb9b002cf1c723bf272d6acbb7129e9d6dd5a5309c94e0ff4b2c884d45a55f475cd7dba59198086f61f5a8c8b5e601c0edbf269733f6f578fc8579c2</RoslynInternalKey>
  </PropertyGroup>

  <!-- settings for strong name signing -->
  <Choose>
    <When Condition="'$(SignAssembly)' == 'true'">
      <Choose>
        <!-- Shipping binaries in an "official" build are delay-signed with the MS key; later, the signing
             system will finish the strong-name signing. -->
        <When Condition="'$(NonShipping)' != 'true' AND ('$(RealSignBuild)' == 'true' OR '$(DelaySignBuild)' == 'true')">
          <PropertyGroup>
            <AssemblyOriginatorKeyFile>$(VSLToolsPath)\Strong Name Keys\35MSSharedLib1024.snk</AssemblyOriginatorKeyFile>
            <DelaySign>true</DelaySign>
            <PublicKey>0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9</PublicKey>
            <PublicKeyToken>31BF3856AD364E35</PublicKeyToken>
          </PropertyGroup>
        </When>

        <!-- Non-shipping binaries in "official" builds, and any binary in an "unofficial" build, are simply
             signed with the Roslyn internal key. -->
        <Otherwise>
          <PropertyGroup>
            <AssemblyOriginatorKeyFile>$(VSLToolsPath)\Strong Name Keys\RoslynInternalKey.Private.snk</AssemblyOriginatorKeyFile>
            <DelaySign>false</DelaySign>
            <PublicKey>$(RoslynInternalKey)</PublicKey>
            <PublicKeyToken>fc793a00266884fb</PublicKeyToken>
          </PropertyGroup>
        </Otherwise>
      </Choose>
    </When>
  </Choose>

  <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" Condition="'$(ProjectLanguage)' == 'VB'" />
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" Condition="'$(ProjectLanguage)' == 'CSharp'" />
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" Condition="'$(ProjectLanguage)' == 'C++'" />

  <PropertyGroup>
    <BuildDependsOn>
      $(BuildDependsOn);
      CopyCppOutputBackToIntDir;
      DeployToPreviewPackageFolders;
    </BuildDependsOn>
  </PropertyGroup>

  <!-- A task for C++ projects to copy their output back under obj\Debug or the like. This is slightly hacky. -->
  <Target
    Name="CopyCppOutputBackToIntDir" Condition="'$(ProjectLanguage)' == 'C++'">

    <Copy SourceFiles="$(TargetPath)" DestinationFolder="$(IntDir)" SkipUnchangedFiles="true" />
    <Copy SourceFiles="$(OutDir)$(TargetName).pdb" DestinationFolder="$(IntDir)" SkipUnchangedFiles="true" Condition="Exists('$(OutDir)$(TargetName).pdb')" />
  </Target>

  <!-- Verify some build flags are correct -->
  <PropertyGroup>
    <PrepareForBuildDependsOn>$(PrepareForBuildDependsOn);VerifyBuildFlags</PrepareForBuildDependsOn>
  </PropertyGroup>

  <Target Name="VerifyBuildFlags">
    <Error Condition="'$(RealSignBuild)' == 'true' AND '$(BuildVersion)' == '42.42.42.42'"
           Text="Must specify a build version in order to real sign a build." />
  </Target>

  <!-- ====================================================================================
  
         Ensure we rebuild if we do a build with a different strong name key

       ==================================================================================== -->
{'fraction_non_alphanumeric': 0.1751508455851109, 'fraction_numerical': 0.08540834537265234, 'mean_word_length': 5.075374290139391, 'pattern_counts': {'":': 0, '<': 182, '<?xml version=': 0, '>': 182, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 6}, 'pii_count': 2, 'substrings_counts': 4, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2655336', 'n_tokens_mistral': 4233, 'n_tokens_neox': 3466, 'n_words': 637}