2018-07-21 00:30:02 +08:00
<?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 >
Update the Visual Studio Integration from user feedback.
This patch removes the MSBuild warnings about options that
clang-cl ignores. It also adds several additional fields to
the LLVM Configuration options page. The first is that it
adds support for LLD! To give the user flexibility though,
we don't want to force LLD to always-on, and if we're not
forcing LLD then we might as well not force clang-cl either.
So we add options that can enable or disable lld, clang-cl,
or any combination of the two. Whenever one is disabled,
it falls back to the Microsoft equivalent.
Additionally, for each of clang-cl and lld-link, we add a new
configuration setting that allows Additional Options to be
passed for that specific tool only. This is similar to the
C/C++ > Command Line > Additional Options entry box, but
it serves the use case where a user switches back and forth
between the toolsets in their vcxproj, but where cl.exe
won't accept some options that clang-cl will. In this case
you can pass those options in the clang-cl additional options
and whenever clang-cl is disabled (or the other toolset is
selected entirely), those options won't get passed at all.
llvm-svn: 340780
2018-08-28 05:53:36 +08:00
<DataSource Persistence= "ProjectFile" Label= "LLVM" />
2018-07-21 00:30:02 +08:00
</Rule.DataSource>
Update the Visual Studio Integration from user feedback.
This patch removes the MSBuild warnings about options that
clang-cl ignores. It also adds several additional fields to
the LLVM Configuration options page. The first is that it
adds support for LLD! To give the user flexibility though,
we don't want to force LLD to always-on, and if we're not
forcing LLD then we might as well not force clang-cl either.
So we add options that can enable or disable lld, clang-cl,
or any combination of the two. Whenever one is disabled,
it falls back to the Microsoft equivalent.
Additionally, for each of clang-cl and lld-link, we add a new
configuration setting that allows Additional Options to be
passed for that specific tool only. This is similar to the
C/C++ > Command Line > Additional Options entry box, but
it serves the use case where a user switches back and forth
between the toolsets in their vcxproj, but where cl.exe
won't accept some options that clang-cl will. In this case
you can pass those options in the clang-cl additional options
and whenever clang-cl is disabled (or the other toolset is
selected entirely), those options won't get passed at all.
llvm-svn: 340780
2018-08-28 05:53:36 +08:00
<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>
2018-07-21 00:30:02 +08:00
<StringProperty Name= "ClangClExecutable"
Update the Visual Studio Integration from user feedback.
This patch removes the MSBuild warnings about options that
clang-cl ignores. It also adds several additional fields to
the LLVM Configuration options page. The first is that it
adds support for LLD! To give the user flexibility though,
we don't want to force LLD to always-on, and if we're not
forcing LLD then we might as well not force clang-cl either.
So we add options that can enable or disable lld, clang-cl,
or any combination of the two. Whenever one is disabled,
it falls back to the Microsoft equivalent.
Additionally, for each of clang-cl and lld-link, we add a new
configuration setting that allows Additional Options to be
passed for that specific tool only. This is similar to the
C/C++ > Command Line > Additional Options entry box, but
it serves the use case where a user switches back and forth
between the toolsets in their vcxproj, but where cl.exe
won't accept some options that clang-cl will. In this case
you can pass those options in the clang-cl additional options
and whenever clang-cl is disabled (or the other toolset is
selected entirely), those options won't get passed at all.
llvm-svn: 340780
2018-08-28 05:53:36 +08:00
DisplayName="clang-cl Executable"
2018-07-21 00:30:02 +08:00
Description="Specifies the path to clang-cl.exe."
Category="General"
Default="$(LLVMInstallDir)bin\clang-cl.exe"
Subtype="file">
</StringProperty>
Update the Visual Studio Integration from user feedback.
This patch removes the MSBuild warnings about options that
clang-cl ignores. It also adds several additional fields to
the LLVM Configuration options page. The first is that it
adds support for LLD! To give the user flexibility though,
we don't want to force LLD to always-on, and if we're not
forcing LLD then we might as well not force clang-cl either.
So we add options that can enable or disable lld, clang-cl,
or any combination of the two. Whenever one is disabled,
it falls back to the Microsoft equivalent.
Additionally, for each of clang-cl and lld-link, we add a new
configuration setting that allows Additional Options to be
passed for that specific tool only. This is similar to the
C/C++ > Command Line > Additional Options entry box, but
it serves the use case where a user switches back and forth
between the toolsets in their vcxproj, but where cl.exe
won't accept some options that clang-cl will. In this case
you can pass those options in the clang-cl additional options
and whenever clang-cl is disabled (or the other toolset is
selected entirely), those options won't get passed at all.
llvm-svn: 340780
2018-08-28 05:53:36 +08:00
<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>
2019-04-29 18:10:17 +08:00
<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>
2018-07-21 00:30:02 +08:00
</Rule>