<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(VCTargetsPath)\Microsoft.CppCommon.targets" />

  <PropertyGroup>
    <!-- Set the path to clang-cl executable based on the value of the project-
         level setting.  This has to be done in the .targets file since values
         selected via the settings UI appear in the vcxproj (which is imported
         before the targets file but after the props file) and we need the path
         that the user may have overridden in the UI. -->
    <CLToolExe Condition="$(UseClangCl)">$(ClangClExecutable)</CLToolExe>
    <LinkToolExe Condition="$(UseLldLink)">$(LldLinkExecutable)</LinkToolExe>
  </PropertyGroup>

  <ItemGroup>
    <PropertyPageSchema Include="$(VCTargetsPath)$(LangID)\llvm-general.xml">
      <Context>Project</Context>
    </PropertyPageSchema>
  </ItemGroup>

  <!-- Take any clang-specific options that the user wants to pass and stick them onto the
       general purpose list of command line flags. -->
  <ItemDefinitionGroup Condition="$(UseClangCl)">
    <ClCompile>
      <AdditionalOptions>-m$(PlatformArchitecture) $(ClangClAdditionalOptions) %(AdditionalOptions)</AdditionalOptions>
    </ClCompile>
  </ItemDefinitionGroup>

  <ItemDefinitionGroup Condition="$(UseLldLink)">
    <Link>
      <AdditionalOptions>$(LldLinkAdditionalOptions) %(AdditionalOptions)</AdditionalOptions>
    </Link>
  </ItemDefinitionGroup>

  <!-- We hook up a target to run every time ClCompile is about to run, the
       purpose of which is to sanitize the command line before it gets passed to
       the compiler.  Some options we silently discard, other options we warn on
       and then discard, and other options we generate a hard error.

       We try to keep hard errors to a minimum and reserve it for cases where
       the option implies fundamentally different assumptions about the way code
       should be compiled.  This code would probably generate an error anyway,
       but at least this way we give the user a more useful message about what
       the actual problem is, rather than relying on some obscure compilation
       error.

       For any options that clang-cl discards, we would prefer to not even pass
       them in on the command line.  So if a user starts with a cl projects and
       changes the toolset to clang, they could have set options such as /Gm
       (minimal rebuild), /sdl (Security Checks), etc.  The ClCompile task would
       then notice this and pass these through to clang-cl.exe.  Clang would of
       course ignore them, but in some cases (such as /Gm), they would generate
       -Wunused-command-line-argument warnings, so it's better if we can just
       strip them from the command line entirely.  This also has the side
       benefit of making command lines shorter which is always nice when trying
       to look at the tool output.
      -->
  <Target Name="BeforeClCompile" BeforeTargets="ClCompile" Condition="$(UseClangCl)">
    <!-- Error if they're trying to compile this file as managed code. -->
    <Error Condition="('%(ClCompile.CompileAsManaged)' != 'false') AND ('%(ClCompile.CompileAsManaged)' != '')"
           File="@(ClCompile)(0,0)"
           Text="clang-cl does not support compiling managed code (/clr).  This file cannot be compiled."/>

    <!-- Error if WinRT is being used. -->
    <Error Condition="('%(ClCompile.CompileAsWinRT)' == 'true') OR ('%(ClCompile.WinRTNoStdLib)' == 'true')"
           File="@(ClCompile)(0,0)"
           Text="clang-cl does not support Windows Runtime Language Extensions (/ZW, /ZW:nostdlib).  This file cannot be compiled."/>

    <!-- Error if OpenMP language extensions are enabled. -->
    <Error Condition="'%(ClCompile.OpenMPSupport)' == 'true'"
           File="@(ClCompile)(0,0)"
           Text="clang-cl does not support OpenMP (/openmp).  This file cannot be compiled."/>

    <!-- Error if C++ Modules are enabled.  Clang has its own notion of modules that are not compatible. -->
    <Error Condition="'%(ClCompile.EnableModules)' == 'true'"
           File="@(ClCompile)(0,0)"
           Text="clang-cl does not support MSVC Modules (/experimental:module).  This file cannot be compiled."/>

    <ItemGroup>
      <ClCompile>
        <!-- Map /ZI and /Zi to /Z7.  Clang internally does this, so if we were
             to just pass the option through, clang would work.  The problem is
             that MSBuild would not.  MSBuild detects /ZI and /Zi and then
             assumes (rightly) that there will be a compiler-generated PDB (e.g.
             vc141.pdb).  Since clang-cl will not emit this, MSBuild will always
             think that the compiler-generated PDB needs to be re-generated from
             scratch and trigger a full build.  The way to avoid this is to
             always give MSBuild accurate information about how we plan to
             generate debug info (which is to always using /Z7 semantics).
             -->
        <DebugInformationFormat Condition="'%(ClCompile.DebugInformationFormat)' == 'ProgramDatabase'">OldStyle</DebugInformationFormat>
        <DebugInformationFormat Condition="'%(ClCompile.DebugInformationFormat)' == 'EditAndContinue'">OldStyle</DebugInformationFormat>

        <!-- Unset any options that we either silently ignore or warn about due to compatibility.
             Generally when an option is set to no value, that means "Don't pass an option to the
             compiler at all."
             -->
        <WholeProgramOptimization/>
        <EnableFiberSafeOptimizations/>
        <IgnoreStandardIncludePath/>
        <EnableParallelCodeGeneration/>
        <ForceConformanceInForLoopScope/>
        <TreatWChar_tAsBuiltInType/>
        <SDLCheck/>
        <GenerateXMLDocumentationFiles/>
        <BrowseInformation/>
        <EnablePREfast/>
        <MinimalRebuild/>
        <StringPooling/>
        <ExpandAttributedSource/>
        <EnforceTypeConversionRules/>
        <ErrorReporting/>
        <DisableLanguageExtensions/>
        <ProgramDataBaseFileName/>
        <DisableSpecificWarnings/>
        <TreatSpecificWarningsAsErrors/>
        <ForcedUsingFiles/>
        <PREfastLog/>
        <PREfastAdditionalOptions/>
        <PREfastAdditionalPlugins/>
        <MultiProcessorCompilation/>
        <UseFullPaths/>
        <RemoveUnreferencedCodeData/>

        <!-- We can't just unset BasicRuntimeChecks, as that will pass /RTCu to the compiler.
             We have to explicitly set it to 'Default' to avoid passing anything. -->
        <BasicRuntimeChecks>Default</BasicRuntimeChecks>
      </ClCompile>
    </ItemGroup>
  </Target>

</Project>
