[PATCH] D42762: Rewrite the VS Integration Scripts

Zachary Turner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 5 12:49:27 PST 2018


zturner added inline comments.


================
Comment at: llvm/tools/msbuild/Clang.Cpp.Common.props:49
+    <CLToolExe>clang-cl.exe</CLToolExe>
+    <CLToolPath>$(LLVMInstallDir)bin</CLToolPath>
+
----------------
olgaark wrote:
> hans wrote:
> > It's embarrassing that we didn't figure this out before :-)
> > 
> > With this, we can remove
> > 
> > ```
> >  if (MSVC)
> >     list(APPEND CLANG_LINKS_TO_CREATE ../msbuild-bin/cl)
> >   endif()
> > ```
> > 
> > from Clang's tools/driver/CMakeLists.txt
> Yes, you can redefine CLToolExe/Path if you want to use 'cl' task, but have you looked at using 'ClangCompile' task instead (see Microsoft.Cpp.Clang.props & targets, as well as clang c2 toolset)?  Would it work better for you? If not, we'll interested to know why.
My understanding of the `ClangCompile` task is that it invokes `clang.exe` or `clang++.exe` and that it passes gcc style command line options (for example, `clang.xml` looks like it passes all gcc style options such as `-fno-exceptions`, etc. 

The clang cl driver (`clang-cl.exe`) is designed to be a drop in replacement for `cl.exe`, and accepts MSVC style command line arguments.  It's also the only supported way to produce native Windows exes (that's not to say you can't construct a `clang++.exe` command line that will do it, just that we only support it via the cl driver).




https://reviews.llvm.org/D42762





More information about the llvm-commits mailing list