Help: Improve VS_SETTINGS and VS_TOOL_OVERRIDE documentation

Reorder paragraphs, adjust version notes, add cross-references,
note the ability to exclude files from the build.

Fixes: #11902
This commit is contained in:
Nikita Nemkin 2025-02-09 23:14:09 +05:00
parent 628423fbc1
commit 8fa9858e20
2 changed files with 31 additions and 13 deletions

View File

@ -3,15 +3,11 @@ VS_SETTINGS
.. versionadded:: 3.18
Set any item metadata on a file.
Add arbitrary MSBuild item metadata to a file.
.. versionadded:: 3.22
This property is honored for all source file types.
Previously it worked only for non-built files.
Takes a list of ``Key=Value`` pairs. Tells the Visual Studio generator to set
``Key`` to ``Value`` as item metadata on the file.
This property accepts a list of ``Key=Value`` pairs. The Visual Studio
generator will add these key-value pairs as item metadata to the file.
:manual:`Generator expressions <cmake-generator-expressions(7)>` are supported.
For example:
@ -19,7 +15,21 @@ For example:
set_property(SOURCE file.hlsl PROPERTY VS_SETTINGS "Key=Value" "Key2=Value2")
will set ``Key`` to ``Value`` and ``Key2`` to ``Value2`` on the
``file.hlsl`` item as metadata.
will set the ``file.hlsl`` item metadata as follows:
:manual:`Generator expressions <cmake-generator-expressions(7)>` are supported.
.. code-block:: xml
<FXCompile Include="source_path\file.hlsl">
<Key>Value</Key>
<Key2>Value2</Key2>
</FXCompile>
Together with :prop_sf:`VS_TOOL_OVERRIDE`, this property can be used to
configure items for custom MSBuild tasks.
Adding the metadata ``ExcludedFromBuild=true`` will exclude the file from
the build.
.. versionchanged:: 3.22
This property is honored for all source file types.
Previously, it only worked for source types unknown to CMake.

View File

@ -3,5 +3,13 @@ VS_TOOL_OVERRIDE
.. versionadded:: 3.7
Override the default Visual Studio tool that will be applied to the source file
with a new tool not based on the extension of the file.
Override the MSBuild item type of a source file in a Visual Studio project.
Together with :prop_sf:`VS_SETTINGS`, this property can be used to configure
items for custom MSBuild tasks.
Setting the item type to ``None`` will exclude the file from the build.
.. versionchanged:: 3.31
This property is honored for all source file types.
Previously, it only worked for source types unknown to CMake.