[llvm] aed44d2 - Remove the Visual Studio/MSBuild integration (llvm/tools/msbuild/)

Hans Wennborg via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 27 08:32:00 PDT 2022


Author: Hans Wennborg
Date: 2022-04-27T17:28:43+02:00
New Revision: aed44d282249e1d61245d61194f6a8ce3c6f4bb7

URL: https://github.com/llvm/llvm-project/commit/aed44d282249e1d61245d61194f6a8ce3c6f4bb7
DIFF: https://github.com/llvm/llvm-project/commit/aed44d282249e1d61245d61194f6a8ce3c6f4bb7.diff

LOG: Remove the Visual Studio/MSBuild integration (llvm/tools/msbuild/)

This has been obsolete and abandoned since MS started including an
integration themselves in Visual Studio 2019.

See discussion at
https://discourse.llvm.org/t/building-the-llvm-with-msbuild/62053/

Differential revision: https://reviews.llvm.org/D124521

Added: 
    

Modified: 
    llvm/docs/ReleaseNotes.rst

Removed: 
    llvm/tools/msbuild/.gitignore
    llvm/tools/msbuild/LLVM.Cpp.Common.props
    llvm/tools/msbuild/LLVM.Cpp.Common.targets
    llvm/tools/msbuild/Platformx64/Toolset.props
    llvm/tools/msbuild/Platformx64/Toolset.targets
    llvm/tools/msbuild/Platformx86/Toolset.props
    llvm/tools/msbuild/Platformx86/Toolset.targets
    llvm/tools/msbuild/install.bat
    llvm/tools/msbuild/license.txt
    llvm/tools/msbuild/llvm-general.xml
    llvm/tools/msbuild/llvm.csproj
    llvm/tools/msbuild/llvm.sln
    llvm/tools/msbuild/source.extension.vsixmanifest
    llvm/tools/msbuild/uninstall.bat


################################################################################
diff  --git a/llvm/docs/ReleaseNotes.rst b/llvm/docs/ReleaseNotes.rst
index cf68d429c0405..092b08a1bb6c0 100644
--- a/llvm/docs/ReleaseNotes.rst
+++ b/llvm/docs/ReleaseNotes.rst
@@ -161,6 +161,14 @@ Changes to LLDB
 Changes to Sanitizers
 ---------------------
 
+
+Other Changes
+-------------
+* The code for the `LLVM Visual Studio integration
+  <https://marketplace.visualstudio.com/items?itemName=LLVMExtensions.llvm-toolchain>`_
+  has been removed. This had been obsolete and abandoned since Visual Studio
+  started including an integration by default in 2019.
+
 External Open Source Projects Using LLVM 15
 ===========================================
 

diff  --git a/llvm/tools/msbuild/.gitignore b/llvm/tools/msbuild/.gitignore
deleted file mode 100644
index 692d171a21a0a..0000000000000
--- a/llvm/tools/msbuild/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-obj/
-bin/
-.vs/
-Key.snk
-packages/
-*.csproj.user

diff  --git a/llvm/tools/msbuild/LLVM.Cpp.Common.props b/llvm/tools/msbuild/LLVM.Cpp.Common.props
deleted file mode 100644
index bc021b3b9e1f8..0000000000000
--- a/llvm/tools/msbuild/LLVM.Cpp.Common.props
+++ /dev/null
@@ -1,79 +0,0 @@
-<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <!-- The general order of executing an MSBuild file is roughly:
-       1) vcxproj file
-       2) ├─ Import Microsoft.Cpp.props
-       3) │  └─ Import Toolset specific props (e.g. $(VCTargets)Platforms\Win32\PlatformToolsets\llvm\Toolset.props)
-       4) │     └─ Import This File (LLVM.Cpp.Common.props)
-       5) │─ Core logic of vcxproj (define files, override properties, etc)
-       6) └─ Import Microsoft.Cpp.targets
-       7)    │─ Import Toolset specific targets file (e.g. $(VCTargets)Platforms\Win32\PlatformToolsets\llvm\Toolset.targets)
-       8)    └─ Run the compiler.
-       The important thing is that we have hooks at 3, 4, and 7.  3 and 4 give
-       us the ability to provide initial values for toolchain settings (where
-       is the compiler, what values are considered "default" for a given
-       setting, etc), 7 gives us the ability to act on anything that the user
-       has overridden (such as warning or erroring on incompatible settings,
-       mapping settings to other settings, etc).
-       -->
-
-  <PropertyGroup>
-    <!-- This initializes the values in Properties > General > Output Directory.
-       Builds will fail without this. -->
-    <OutDirWasSpecified Condition=" '$(OutDir)'!='' AND '$(OutDirWasSpecified)'=='' ">true</OutDirWasSpecified>
-    <OutDirWasSpecified Condition=" '$(OutDir)'=='' AND '$(OutDirWasSpecified)'=='' ">false</OutDirWasSpecified>
-
-    <IntDir Condition="'$(IntDir)'=='' AND '$(IntermediateOutputPath)'!=''">$(IntermediateOutputPath)</IntDir>
-    <IntDir Condition="'$(IntDir)'=='' AND '$(IntermediateOutputPath)'==''">$(Configuration)\</IntDir>
-    <OutDir Condition="'$(OutDir)'=='' AND '$(SolutionDir)' != ''">$(SolutionDir)$(Configuration)\</OutDir>
-    <OutDir Condition="'$(OutDir)'=='' AND '$(SolutionDir)' == ''">$(IntDir)</OutDir>
-    <DebuggerFlavor Condition="'$(DebuggerFlavor)'==''">WindowsLocalDebugger</DebuggerFlavor>
-  </PropertyGroup>
-
-  <PropertyGroup>
-    <!-- Short names for platform toolsets (added to project name in Solution Explorer) -->
-    <_PlatformToolsetShortNameFor_llvm>LLVM</_PlatformToolsetShortNameFor_llvm>
-    <_PlatformToolsetFriendlyNameFor_llvm>LLVM</_PlatformToolsetFriendlyNameFor_llvm>
-  </PropertyGroup>
-
-  <!-- Find an installed LLVM and set up our paths. -->
-  <PropertyGroup>
-    <LLVMInstallDir>$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\LLVM\LLVM)</LLVMInstallDir>
-    <LLVMInstallDir Condition="'$(LLVMInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\LLVM\LLVM)</LLVMInstallDir>
-    <LLVMInstallDir Condition="'$(LLVMInstallDir)' != ''">$(LLVMInstallDir)\</LLVMInstallDir>
-    <ClangClExecutable>$(LLVMInstallDir)bin\clang-cl.exe</ClangClExecutable>
-    <LldLinkExecutable>$(LLVMInstallDir)bin\lld-link.exe</LldLinkExecutable>
-    <LlvmLibExecutable>$(LLVMInstallDir)bin\llvm-lib.exe</LlvmLibExecutable>
-    <UseClangCl>true</UseClangCl>
-    <UseLldLink>true</UseLldLink>
-    <UseLlvmLib>true</UseLlvmLib>
-  </PropertyGroup>
-
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.WindowsSDK.props" Condition="Exists('$(VCTargetsPath)\Microsoft.Cpp.WindowsSDK.props')"/>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Common.props" />
-
-  <PropertyGroup>
-    <!-- Set some paths (such as include paths) that are common to all platforms.  This is the same as what
-         the default paths for cl will use.
-         -->
-    <IncludePath Condition="'$(IncludePath)' == ''">$(IncludePath);$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
-    <LibraryWPath Condition="'$(LibraryWPath)' == ''">$(WindowsSDK_MetadataPath);</LibraryWPath>
-    <SourcePath Condition="'$(SourcePath)' == ''">$(VC_SourcePath);</SourcePath>
-  </PropertyGroup>
-
-
-  <!-- Set values which are reflected in the property UI by default.  The user can override these
-       by editing the vcxproj file (or making changes via the UI, which has the same effect).
-       -->
-  <ItemDefinitionGroup>
-    <ClCompile>
-      <!-- Set this to "Default" (which means not passing any /RTC option) so that any other value will
-           be treated as having been overridden by the user.  This Serves as a hint to the user that
-           Default is the value we support, and other values will generate a warning.  It also means
-           that if the user simply creates a new project in MSVC (which uses /RTCu by default), then
-           switches the toolset to Clang, we will still treat the value as default (which for us is to
-           not pass the option).  Only if the user explicitly overrode this setting in a project to use
-           /RTCu would we see the warning. -->
-      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
-    </ClCompile>
-  </ItemDefinitionGroup>
-</Project>

diff  --git a/llvm/tools/msbuild/LLVM.Cpp.Common.targets b/llvm/tools/msbuild/LLVM.Cpp.Common.targets
deleted file mode 100644
index 74a98d6439b45..0000000000000
--- a/llvm/tools/msbuild/LLVM.Cpp.Common.targets
+++ /dev/null
@@ -1,132 +0,0 @@
-<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>
-    <LIBToolExe Condition="$(UseLlvmLib)">$(LlvmLibExecutable)</LIBToolExe>
-  </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 
diff erent 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>

diff  --git a/llvm/tools/msbuild/Platformx64/Toolset.props b/llvm/tools/msbuild/Platformx64/Toolset.props
deleted file mode 100644
index 4762f4eaa1c8d..0000000000000
--- a/llvm/tools/msbuild/Platformx64/Toolset.props
+++ /dev/null
@@ -1,11 +0,0 @@
-<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(VCTargetsPath)\LLVM.Cpp.Common.props"/>
-
-  <PropertyGroup>
-    <ExecutablePath Condition="'$(ExecutablePath)' == ''">$(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(FxCopDir);$(PATH);</ExecutablePath>
-    <ReferencePath Condition="'$(ReferencePath)' == ''">$(VC_ReferencesPath_x64);</ReferencePath>
-    <LibraryPath Condition="'$(LibraryPath)' == ''">$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
-    <ExcludePath Condition="'$(ExcludePath)' == ''">$(VC_IncludePath);$(WindowsSDK_IncludePath);$(MSBuild_ExecutablePath);$(VC_LibraryPath_x64);</ExcludePath>
-    <DebugCppRuntimeFilesPath Condition="'$(DebugCppRuntimeFilesPath)' == ''">$(VCToolsInstallDir)redist\Debug_NonRedist\x64</DebugCppRuntimeFilesPath>
-  </PropertyGroup>
-</Project>

diff  --git a/llvm/tools/msbuild/Platformx64/Toolset.targets b/llvm/tools/msbuild/Platformx64/Toolset.targets
deleted file mode 100644
index 938e03b51e275..0000000000000
--- a/llvm/tools/msbuild/Platformx64/Toolset.targets
+++ /dev/null
@@ -1,3 +0,0 @@
-<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(VCTargetsPath)\LLVM.Cpp.Common.targets"/>
-</Project>

diff  --git a/llvm/tools/msbuild/Platformx86/Toolset.props b/llvm/tools/msbuild/Platformx86/Toolset.props
deleted file mode 100644
index 5a5cd6c736fd9..0000000000000
--- a/llvm/tools/msbuild/Platformx86/Toolset.props
+++ /dev/null
@@ -1,11 +0,0 @@
-<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(VCTargetsPath)\LLVM.Cpp.Common.props"/>
-
-  <PropertyGroup>
-    <ExecutablePath Condition="'$(ExecutablePath)' == ''">$(VC_ExecutablePath_x86);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH);</ExecutablePath>
-    <ReferencePath Condition="'$(ReferencePath)' == ''">$(VC_ReferencesPath_x86);</ReferencePath>
-    <LibraryPath Condition="'$(LibraryPath)' == ''">$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);$(NETFXKitsDir)Lib\um\x86</LibraryPath>
-    <ExcludePath Condition="'$(ExcludePath)' == ''">$(VC_IncludePath);$(WindowsSDK_IncludePath);$(MSBuild_ExecutablePath);$(VC_LibraryPath_x86);</ExcludePath>
-    <DebugCppRuntimeFilesPath Condition="'$(DebugCppRuntimeFilesPath)' == ''">$(VCToolsInstallDir)redist\Debug_NonRedist\x86</DebugCppRuntimeFilesPath>
-  </PropertyGroup>
-</Project>

diff  --git a/llvm/tools/msbuild/Platformx86/Toolset.targets b/llvm/tools/msbuild/Platformx86/Toolset.targets
deleted file mode 100644
index 938e03b51e275..0000000000000
--- a/llvm/tools/msbuild/Platformx86/Toolset.targets
+++ /dev/null
@@ -1,3 +0,0 @@
-<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(VCTargetsPath)\LLVM.Cpp.Common.targets"/>
-</Project>

diff  --git a/llvm/tools/msbuild/install.bat b/llvm/tools/msbuild/install.bat
deleted file mode 100644
index bbc8a7461513a..0000000000000
--- a/llvm/tools/msbuild/install.bat
+++ /dev/null
@@ -1,57 +0,0 @@
- at echo off
-
-echo Installing MSVC integration...
-set SUCCESS=0
-
-REM In general this script should not be used except for development and testing
-REM purposes.  The proper way to install is via the VSIX, and the proper way to
-REM uninstall is through the Visual Studio extension manager.
-
-REM Change to the directory of this batch file.
-cd /d %~dp0
-
-REM Older versions of VS would look for these files in the Program Files\MSBuild directory
-REM but with VS2017 it seems to look for these directly in the Visual Studio instance.
-REM This means we'll need to do a little extra work to properly detect all the various
-REM instances, but in reality we can probably sidestep all of this by just wrapping this
-REM in a vsix and calling it a day, as that should handle everything for us.
-SET VCTargets=%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets
-
-ECHO Installing Common Files
-copy LLVM.Cpp.Common.props "%VCTargets%"
-IF NOT %ERRORLEVEL% == 0 GOTO FAILED
-copy LLVM.Cpp.Common.targets "%VCTargets%"
-IF NOT %ERRORLEVEL% == 0 GOTO FAILED
-
-ECHO Installing x64 Platform Toolset
-SET PlatformToolsets=%VCTargets%\Platforms\x64\PlatformToolsets
-IF NOT EXIST "%PlatformToolsets%\llvm" mkdir "%PlatformToolsets%\llvm"
-IF NOT %ERRORLEVEL% == 0 GOTO FAILED
-copy PlatformX64\Toolset.props "%PlatformToolsets%\llvm"
-IF NOT %ERRORLEVEL% == 0 GOTO FAILED
-copy PlatformX64\Toolset.targets "%PlatformToolsets%\llvm"
-IF NOT %ERRORLEVEL% == 0 GOTO FAILED
-
-ECHO Installing Win32 Platform Toolset
-SET PlatformToolsets=%VCTargets%\Platforms\Win32\PlatformToolsets
-IF NOT EXIST "%PlatformToolsets%\llvm" mkdir "%PlatformToolsets%\llvm"
-IF NOT %ERRORLEVEL% == 0 GOTO FAILED
-copy PlatformX86\Toolset.props "%PlatformToolsets%\llvm"
-IF NOT %ERRORLEVEL% == 0 GOTO FAILED
-copy PlatformX86\Toolset.targets "%PlatformToolsets%\llvm"
-IF NOT %ERRORLEVEL% == 0 GOTO FAILED
-
-ECHO Installing C++ Settings UI
-copy llvm-general.xml "%VCTargets%\1033"
-IF NOT %ERRORLEVEL% == 0 GOTO FAILED
-
-:DONE
-echo Done!
-goto END
-
-:FAILED
-echo MSVC integration install failed.
-pause
-goto END
-
-:END

diff  --git a/llvm/tools/msbuild/license.txt b/llvm/tools/msbuild/license.txt
deleted file mode 100644
index 63c17f148e7a9..0000000000000
--- a/llvm/tools/msbuild/license.txt
+++ /dev/null
@@ -1,261 +0,0 @@
-==============================================================================
-The LLVM Project is under the Apache License v2.0 with LLVM Exceptions:
-==============================================================================
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-    TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-    1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-    2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-    3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-    4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or 
diff erent license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-    5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-    6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-    7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-    8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-    9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-    END OF TERMS AND CONDITIONS
-
-    APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-    Copyright [yyyy] [name of copyright owner]
-
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file except in compliance with the License.
-    You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
-
----- LLVM Exceptions to the Apache 2.0 License ----
-
-As an exception, if, as a result of your compiling your source code, portions
-of this Software are embedded into an Object form of such source code, you
-may redistribute such embedded portions in such Object form without complying
-with the conditions of Sections 4(a), 4(b) and 4(d) of the License.
-
-In addition, if you combine or link compiled forms of this Software with
-software that is licensed under the GPLv2 ("Combined Software") and if a
-court of competent jurisdiction determines that the patent provision (Section
-3), the indemnity provision (Section 9) or other Section of the License
-conflicts with the conditions of the GPLv2, you may retroactively and
-prospectively choose to deem waived or otherwise exclude such Section(s) of
-the License, but only in their entirety and only with respect to the Combined
-Software.
-
-==============================================================================
-Software from third parties included in the LLVM Project:
-==============================================================================
-The LLVM Project contains third party software which is under 
diff erent license
-terms. All such code will be identified clearly using at least one of two
-mechanisms:
-1) It will be in a separate directory tree with its own `LICENSE.txt` or
-   `LICENSE` file at the top containing the specific license and restrictions
-   which apply to that software, or
-2) It will contain specific license and restriction terms at the top of every
-   file.
-
-==============================================================================
-Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy):
-==============================================================================
-University of Illinois/NCSA
-Open Source License
-
-Copyright (c) 2007-2018 University of Illinois at Urbana-Champaign.
-All rights reserved.
-
-Developed by:
-
-    LLVM Team
-
-    University of Illinois at Urbana-Champaign
-
-    http://llvm.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal with the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-    * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimers.
-
-    * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimers in the documentation and/or other materials provided with the distribution.
-
-    * Neither the names of the LLVM Team, University of Illinois at Urbana-Champaign, nor the names of its contributors may be used to endorse or promote products derived from this Software without specific prior written permission.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE.

diff  --git a/llvm/tools/msbuild/llvm-general.xml b/llvm/tools/msbuild/llvm-general.xml
deleted file mode 100644
index 66a2cfec0b4cb..0000000000000
--- a/llvm/tools/msbuild/llvm-general.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Rule
-      Name="LLVMGeneral"
-      DisplayName="LLVM"
-      PageTemplate="generic"
-      Description="LLVM"
-      xmlns="http://schemas.microsoft.com/build/2009/properties">
-  <Rule.Categories>
-    <Category Name="General" DisplayName="General" Description="General" />
-  </Rule.Categories>
-  <Rule.DataSource>
-    <DataSource Persistence="ProjectFile" Label="LLVM" />
-  </Rule.DataSource>
-
-  <BoolProperty Name="UseClangCl" 
-                DisplayName="Use clang-cl" 
-                Description="Use clang-cl for compiling.  If this option is disabled, the Microsoft compiler (cl.exe) will be used instead." 
-                Category="General" 
-                Default="true">
-  </BoolProperty>
-  <StringProperty Name="ClangClExecutable"
-                  DisplayName="clang-cl Executable"
-                  Description="Specifies the path to clang-cl.exe."
-                  Category="General"
-                  Default="$(LLVMInstallDir)bin\clang-cl.exe"
-                  Subtype="file">
-  </StringProperty>
-
-  <StringProperty Name="ClangClAdditionalOptions"
-                  DisplayName="Additional Compiler Options"
-                  Description="Additional options to pass to clang.  This is essentially the same as C/C++ > Command Line > Additional Options, except that it is safe to put options here that will be rejected by cl.exe in case you switch toolchains back and forth."
-                  Category="General">
-  </StringProperty>
-
-  <BoolProperty Name="UseLldLink"
-                DisplayName="Use lld-link"
-                Description="Use lld-link for linking.  If this option is disabled, the Microsoft linker (link.exe) will be used instead."
-                Category="General"
-                Default="true">
-  </BoolProperty>
-  <StringProperty Name="LldLinkExecutable"
-                  DisplayName="lld-link Executable"
-                  Description="Specifies the path to lld-link.exe."
-                  Category="General"
-                  Default="$(LLVMInstallDir)bin\lld-link.exe"
-                  Subtype="file">
-  </StringProperty>
-
-  <StringProperty Name="LldLinkAdditionalOptions"
-                  DisplayName="Additional Linker Options"
-                  Description="Additional options to pass to lld-link.  This is essentially the same as General > Linker > Command Line > Additional Options, except that it is safe to put options here that will be rejected by link.exe in case you switch toolchains back and forth."
-                  Category="General">
-  </StringProperty>
-
-
-  <BoolProperty Name="UseLlvmLib"
-                DisplayName="Use llvm-lib"
-                Description="Use llvm-lib for managing libraries.  If this option is disabled, the Microsoft librarian (lib.exe) will be used instead."
-                Category="General"
-                Default="true">
-  </BoolProperty>
-  <StringProperty Name="LlvmLibExecutable"
-                  DisplayName="llvm-lib Executable"
-                  Description="Specifies the path to llvm-lib.exe."
-                  Category="General"
-                  Default="$(LLVMInstallDir)bin\llvm-lib.exe"
-                  Subtype="file">
-  </StringProperty>
-
-  <StringProperty Name="LlvmLibAdditionalOptions"
-                  DisplayName="Additional Librarian Options"
-                  Description="Additional options to pass to llvm-lib.  This is essentially the same as General > Librarian > Command Line > Additional Options, except that it is safe to put options here that will be rejected by lib.exe in case you switch toolchains back and forth."
-                  Category="General">
-  </StringProperty>
-
-</Rule>

diff  --git a/llvm/tools/msbuild/llvm.csproj b/llvm/tools/msbuild/llvm.csproj
deleted file mode 100644
index 39e898d736827..0000000000000
--- a/llvm/tools/msbuild/llvm.csproj
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <MinimumVisualStudioVersion>15.0</MinimumVisualStudioVersion>
-    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
-  </PropertyGroup>
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectTypeGuids>{82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ProjectGuid>{62530D9E-1B24-4C31-8DC9-AE47E9E5DC53}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>llvm</RootNamespace>
-    <AssemblyName>llvm</AssemblyName>
-    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
-    <GeneratePkgDefFile>false</GeneratePkgDefFile>
-    <IncludeAssemblyInVSIXContainer>false</IncludeAssemblyInVSIXContainer>
-    <IncludeDebugSymbolsInVSIXContainer>false</IncludeDebugSymbolsInVSIXContainer>
-    <IncludeDebugSymbolsInLocalVSIXDeployment>false</IncludeDebugSymbolsInLocalVSIXDeployment>
-    <CopyBuildOutputToOutputDirectory>false</CopyBuildOutputToOutputDirectory>
-    <CopyOutputSymbolsToOutputDirectory>false</CopyOutputSymbolsToOutputDirectory>
-    <StartAction>Program</StartAction>
-    <StartProgram Condition="'$(DevEnvDir)' != ''">$(DevEnvDir)devenv.exe</StartProgram>
-    <StartArguments>/rootsuffix Exp</StartArguments>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Content Include="llvm-general.xml">
-      <IncludeInVSIX>true</IncludeInVSIX>
-      <InstallRoot>VCTargets</InstallRoot>
-      <VSIXSubPath>1033</VSIXSubPath>
-    </Content>
-    <Content Include="LLVM.Cpp.Common.props">
-      <IncludeInVSIX>true</IncludeInVSIX>
-      <InstallRoot>VCTargets</InstallRoot>
-    </Content>
-    <Content Include="license.txt">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-      <IncludeInVSIX>true</IncludeInVSIX>
-    </Content>
-    <Content Include="LLVM.Cpp.Common.targets">
-      <IncludeInVSIX>true</IncludeInVSIX>
-      <InstallRoot>VCTargets</InstallRoot>
-    </Content>
-    <None Include="source.extension.vsixmanifest">
-      <SubType>Designer</SubType>
-    </None>
-    <None Include="Key.snk" />
-    <Content Include="Platformx64\Toolset.props">
-      <IncludeInVSIX>true</IncludeInVSIX>
-      <InstallRoot>VCTargets</InstallRoot>
-      <VSIXSubPath>Platforms\x64\PlatformToolsets\llvm</VSIXSubPath>
-    </Content>
-    <Content Include="Platformx64\Toolset.targets">
-      <IncludeInVSIX>true</IncludeInVSIX>
-      <InstallRoot>VCTargets</InstallRoot>
-      <VSIXSubPath>Platforms\x64\PlatformToolsets\llvm</VSIXSubPath>
-    </Content>
-    <Content Include="Platformx86\Toolset.props">
-      <IncludeInVSIX>true</IncludeInVSIX>
-      <InstallRoot>VCTargets</InstallRoot>
-      <VSIXSubPath>Platforms\Win32\PlatformToolsets\llvm</VSIXSubPath>
-    </Content>
-    <Content Include="Platformx86\Toolset.targets">
-      <IncludeInVSIX>true</IncludeInVSIX>
-      <InstallRoot>VCTargets</InstallRoot>
-      <VSIXSubPath>Platforms\Win32\PlatformToolsets\llvm</VSIXSubPath>
-    </Content>
-  </ItemGroup>
-  <ItemGroup>
-    <Folder Include="Properties\" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(VSToolsPath)\VSSDK\Microsoft.VsSDK.targets" Condition="'$(VSToolsPath)' != ''" />
-  <PropertyGroup>
-    <PreBuildEvent>if not exist $(ProjectDir)Key.snk ("$(TargetFrameworkSDKToolsDirectory)\x64\sn.exe" -k $(ProjectDir)Key.snk)</PreBuildEvent>
-  </PropertyGroup>
-</Project>
\ No newline at end of file

diff  --git a/llvm/tools/msbuild/llvm.sln b/llvm/tools/msbuild/llvm.sln
deleted file mode 100644
index 9fc37441b8b95..0000000000000
--- a/llvm/tools/msbuild/llvm.sln
+++ /dev/null
@@ -1,25 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27004.2006
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "llvm", "llvm.csproj", "{62530D9E-1B24-4C31-8DC9-AE47E9E5DC53}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Any CPU = Debug|Any CPU
-		Release|Any CPU = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{62530D9E-1B24-4C31-8DC9-AE47E9E5DC53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{62530D9E-1B24-4C31-8DC9-AE47E9E5DC53}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{62530D9E-1B24-4C31-8DC9-AE47E9E5DC53}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{62530D9E-1B24-4C31-8DC9-AE47E9E5DC53}.Release|Any CPU.Build.0 = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-	GlobalSection(ExtensibilityGlobals) = postSolution
-		SolutionGuid = {BD0FC803-C28B-4327-A129-CFB35C873897}
-	EndGlobalSection
-EndGlobal

diff  --git a/llvm/tools/msbuild/source.extension.vsixmanifest b/llvm/tools/msbuild/source.extension.vsixmanifest
deleted file mode 100644
index ac2d3c4d49b99..0000000000000
--- a/llvm/tools/msbuild/source.extension.vsixmanifest
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
-    <Metadata>
-        <Identity Id="llvm.d29c51f0-961f-4e20-aad6-356af569907f" Version="1.0.363769" Language="en-US" Publisher="LLVM Extensions" />
-        <DisplayName>LLVM Compiler Toolchain</DisplayName>
-        <Description xml:space="preserve">Allows the LLVM Compiler Toolchain (installed separately) to be used from within Visual Studio to build C/C++ Projects.</Description>
-        <License>license.txt</License>
-    </Metadata>
-    <Installation AllUsers="true">
-        <InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[15.0,16.0)" />
-        <InstallationTarget Version="[15.0,16.0)" Id="Microsoft.VisualStudio.Pro" />
-        <InstallationTarget Version="[15.0,16.0)" Id="Microsoft.VisualStudio.Enterprise" />
-    </Installation>
-    <Dependencies>
-        <Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" d:Source="Manual" Version="[4.5,)" />
-    </Dependencies>
-    <Prerequisites>
-        <Prerequisite Id="Microsoft.VisualStudio.Component.CoreEditor" Version="[15.0,16.0)" DisplayName="Visual Studio core editor" />
-        <Prerequisite Id="Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core" Version="[15.0.26621.2,16.0)" DisplayName="Visual C++ core desktop features" />
-        <Prerequisite Id="Microsoft.VisualStudio.Component.VC.CoreIde" Version="[15.0.26606.0,16.0)" DisplayName="Visual Studio C++ core features" />
-    </Prerequisites>
-</PackageManifest>

diff  --git a/llvm/tools/msbuild/uninstall.bat b/llvm/tools/msbuild/uninstall.bat
deleted file mode 100644
index 0c8852ec46dba..0000000000000
--- a/llvm/tools/msbuild/uninstall.bat
+++ /dev/null
@@ -1,33 +0,0 @@
- at echo off
-
-echo Uninstalling MSVC integration...
-
-REM In general this script should not be used except for development and testing
-REM purposes.  The proper way to install is via the VSIX, and the proper way to
-REM uninstall is through the Visual Studio extension manager.
-
-REM CD to the directory of this batch file.
-cd /d %~dp0
-
-SET VCTargets=%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets
-
-ECHO Uninstalling Common Files
-IF EXIST "%VCTargets%\LLVM.Cpp.Common.props" del "%VCTargets%\LLVM.Cpp.Common.props"
-IF EXIST "%VCTargets%\LLVM.Cpp.Common.targets" del "%VCTargets%\LLVM.Cpp.Common.targets"
-
-ECHO Uninstalling x64 Platform Toolset
-SET PlatformToolsets=%VCTargets%\Platforms\x64\PlatformToolsets
-IF EXIST "%PlatformToolsets%\llvm\Toolset.props" del "%PlatformToolsets%\llvm\Toolset.props"
-IF EXIST "%PlatformToolsets%\llvm\Toolset.targets" del "%PlatformToolsets%\llvm\Toolset.targets"
-IF EXIST "%PlatformToolsets%\llvm" rd "%PlatformToolsets%\llvm"
-
-ECHO Uninstalling Win32 Platform Toolset
-SET PlatformToolsets=%VCTargets%\Platforms\Win32\PlatformToolsets
-IF EXIST "%PlatformToolsets%\llvm\Toolset.props" del "%PlatformToolsets%\llvm\Toolset.props"
-IF EXIST "%PlatformToolsets%\llvm\Toolset.targets" del "%PlatformToolsets%\llvm\Toolset.targets"
-IF EXIST "%PlatformToolsets%\llvm" rd "%PlatformToolsets%\llvm"
-
-ECHO Uninstalling C++ Settings UI
-IF EXIST "%VCTargets%\1033\llvm-general.xml" del "%VCTargets%\1033\llvm-general.xml"
-
-echo Done!


        


More information about the llvm-commits mailing list