Rewrite the VS integration scripts.
authorZachary Turner <zturner@google.com>
Fri, 20 Jul 2018 16:30:02 +0000 (16:30 +0000)
committerZachary Turner <zturner@google.com>
Fri, 20 Jul 2018 16:30:02 +0000 (16:30 +0000)
commit83226b913db55b2a4efa6057e38d3aabc36e5424
tree6497123c217f82faf4e2111a4b29324ea8b63ee6
parent5ff3abbc3151f28b990f14cff844b8724acdb12b
Rewrite the VS integration scripts.

This is a new modernized VS integration installer.  It adds a
Visual Studio .sln file which, when built, outputs a VSIX that can
be used to install ourselves as a "real" Visual Studio Extension.
We can even upload this extension to the visual studio marketplace.

This fixes a longstanding problem where we didn't support installing
into VS 2017 and higher.  In addition to supporting VS 2017, due
to the way this is written we now longer need to do anything special
to support future versions of VS as well.  Everything should
"just work".  This also fixes several bugs with our old integration,
such as MSBuild triggering full rebuilds when /Zi was used.

Finally, we add a new UI page called "LLVM" which becomes visible
when the LLVM toolchain is selected.  For now this only contains
one option which is the path to clang-cl.exe, but in the future
we can add more things here.

Differential Revision: https://reviews.llvm.org/D42762

llvm-svn: 337572
25 files changed:
clang/tools/driver/CMakeLists.txt
llvm/CMakeLists.txt
llvm/tools/msbuild/.gitignore [new file with mode: 0644]
llvm/tools/msbuild/CMakeLists.txt [deleted file]
llvm/tools/msbuild/LLVM.Cpp.Common.props [new file with mode: 0644]
llvm/tools/msbuild/LLVM.Cpp.Common.targets [new file with mode: 0644]
llvm/tools/msbuild/Microsoft.Cpp.Win32.LLVM-vs2010.targets [deleted file]
llvm/tools/msbuild/Microsoft.Cpp.Win32.LLVM-vs2012.targets [deleted file]
llvm/tools/msbuild/Microsoft.Cpp.Win32.LLVM-vs2012_xp.targets [deleted file]
llvm/tools/msbuild/Microsoft.Cpp.Win32.llvm.props.in [deleted file]
llvm/tools/msbuild/Platformx64/Toolset.props [new file with mode: 0644]
llvm/tools/msbuild/Platformx64/Toolset.targets [new file with mode: 0644]
llvm/tools/msbuild/Platformx86/Toolset.props [new file with mode: 0644]
llvm/tools/msbuild/Platformx86/Toolset.targets [new file with mode: 0644]
llvm/tools/msbuild/install.bat
llvm/tools/msbuild/license.txt [new file with mode: 0644]
llvm/tools/msbuild/llvm-general.xml [new file with mode: 0644]
llvm/tools/msbuild/llvm.csproj [new file with mode: 0644]
llvm/tools/msbuild/llvm.sln [new file with mode: 0644]
llvm/tools/msbuild/source.extension.vsixmanifest [new file with mode: 0644]
llvm/tools/msbuild/toolset-vs2013.targets [deleted file]
llvm/tools/msbuild/toolset-vs2013_xp.targets [deleted file]
llvm/tools/msbuild/toolset-vs2014.targets [deleted file]
llvm/tools/msbuild/toolset-vs2014_xp.targets [deleted file]
llvm/tools/msbuild/uninstall.bat