Merge topic 'csproj-improvements'

4bfb1249 VS: removed usage of relative paths for C# targets in in-source builds
90cb4083 VS: improve handling of source files with special extensions in .csproj
This commit is contained in:
Brad King
2017-01-24 14:45:15 -05:00
committed by CMake Topic Stage
7 changed files with 229 additions and 26 deletions

View File

@@ -363,8 +363,11 @@ Properties on Source Files
/prop_sf/SKIP_AUTORCC
/prop_sf/SKIP_AUTOUIC
/prop_sf/SYMBOLIC
/prop_sf/VS_COPY_TO_OUT_DIR
/prop_sf/VS_DEPLOYMENT_CONTENT
/prop_sf/VS_DEPLOYMENT_LOCATION
/prop_sf/VS_INCLUDE_IN_VSIX
/prop_sf/VS_RESOURCE_GENERATOR
/prop_sf/VS_SHADER_ENTRYPOINT
/prop_sf/VS_SHADER_FLAGS
/prop_sf/VS_SHADER_MODEL

View File

@@ -0,0 +1,6 @@
VS_COPY_TO_OUT_DIR
------------------
Sets the ``<CopyToOutputDirectory>`` tag for a source file in a
Visual Studio project file. Valid values are ``Never``, ``Always``
and ``PreserveNewest``.

View File

@@ -0,0 +1,6 @@
VS_INCLUDE_IN_VSIX
------------------
Boolean property to specify if the file should be included within a VSIX
extension package. This is needed for development of Visual Studio
extensions.

View File

@@ -0,0 +1,8 @@
VS_RESOURCE_GENERATOR
---------------------
This property allows to specify the resource generator to be used
on this file. It defaults to ``PublicResXFileCodeGenerator`` if
not set.
This property only applies to C# projects.

View File

@@ -0,0 +1,12 @@
vs-advanced-source-properties
-----------------------------
* The :ref:`Visual Studio Generators` for VS 2010 and above
learned some more source file properties:
- :prop_sf:`VS_RESOURCE_GENERATOR` (C# only): allows setting the resource
generator
- :prop_sf:`VS_COPY_TO_OUT_DIR`: parameter to set if file should be copied
to output directory (values: ``Never``, ``Always``, ``PreserveNewest``)
- :prop_sf:`VS_INCLUDE_IN_VSIX`: boolean property to include file include
Visual Studio extension package

View File

@@ -19,7 +19,16 @@ vs-native-csharp-support
that specifically targets C# contains ``CSharp`` as a part of
their names.
* More finetuning of C# targets can be done using target
properties. Specifically the Visual Studio related target
* More finetuning of C# targets can be done using target and source
file properties. Specifically the Visual Studio related target
properties (``VS_*``) are worth a look (for setting toolset
versions, root namespaces, assembly icons, ...).
* **Auto-"linking"** in .csproj files: In C#/.NET development with
Visual Studio there is a number of visual editors used which
generate code. Both the generated files and the ones edited
with the UI are connected in the ``.csproj`` file using
``<DependentUpon>`` tags. If CMake finds within a C# project
any source file with extension ``.Designer.cs`` or ``.xaml.cs``,
it checks sibling files with extension ``.xaml``, ``.settings``,
``.resx`` or ``.cs`` and establishes the dependency connection.