CSharpUtilities¶
在 3.8 版本中添加。
更容易配置 CSharp/.NET 目标的函数。
一个从 2010 版本和更新的 Visual Studio 生成器中处理 CSharp 目标的 CMake 实用程序函数的集合。
此模块提供以下函数
主要函数
辅助函数
模块提供的函数¶
- csharp_set_windows_forms_properties¶
设置源文件属性以使用 Windows Forms。如果你的 CSharp 目标使用 Windows Forms,请使用此属性
csharp_set_windows_forms_properties([<file1> [<file2> [...]]])
<fileN>
所有相关设置
VS_CSHARP_<tagname>
属性(包括.cs
、.resx
和.Designer.cs
扩展名)的源文件列表。
在所有给定文件的列表中搜索以
.Designer.cs
和.resx
结尾的所有文件。对于每一个设计器或资源文件,都会搜索具有相同的基准名称但只有.cs
作为扩展名的文件。如果找到此文件,则VS_CSHARP_<tagname>
属性将按以下方式设置- 对于 .cs 文件
VS_CSHARP_SubType “Form”
- 对于 .Designer.cs 文件(如果存在)
VS_CSHARP_DependentUpon <cs-filename>
VS_CSHARP_DesignTime ""(如果之前已定义,则删除标签)
VS_CSHARP_AutoGen ""(如果之前已定义,则删除标签)
- 对于 .resx 文件(如果存在)
VS_RESOURCE_GENERATOR ""(如果之前已定义,则删除标签)
VS_CSHARP_DependentUpon <cs-filename>
VS_CSHARP_SubType “Designer”
- csharp_set_designer_cs_properties¶
根据同级文件名称设置
.Designer.cs
文件的源文件属性。如果您的 CSharp 目标不使用 Windows 窗体,请使用此命令(对于 Windows 窗体,请改用csharp_set_windows_forms_properties()
)csharp_set_designer_cs_properties([<file1> [<file2> [...]]])
<fileN>
与设置
VS_CSHARP_<tagname>
属性相关的(包括.cs
、.resx
、.settings
和.Designer.cs
扩展名)的所有源文件的列表。
在所有给定文件列表中,搜索以
.Designer.cs
结尾的所有文件。对于每个设计器文件,会搜索具有相同基本名称但扩展名不同的所有文件。如果找到了匹配项,则根据匹配文件的扩展名设置设计器文件的源文件属性- 如果匹配项是 .resx 文件
VS_CSHARP_AutoGen “True”
VS_CSHARP_DesignTime “True”
VS_CSHARP_DependentUpon <resx-filename>
- 如果匹配项是 .cs 文件
VS_CSHARP_DependentUpon <cs-filename>
- 如果匹配是 .settings 文件
VS_CSHARP_AutoGen “True”
VS_CSHARP_DesignTimeSharedInput “True”
VS_CSHARP_DependentUpon <settings-filename>
注意
由于 .Designer.cs
文件的源文件属性根据找到的匹配项进行设置,并且每个匹配项都会设置 VS_CSHARP_DependentUpon 属性,因此对于每个 Designer.cs
文件,应仅有一个匹配项。
- csharp_set_xaml_cs_properties¶
设置用于 Windows Presentation Foundation (WPF) 和 XAML 的源文件属性。如果您的 CSharp 目标使用 WPF/XAML,请使用此命令
csharp_set_xaml_cs_properties([<file1> [<file2> [...]]])
<fileN>
与设置
VS_CSHARP_<tagname>
属性相关的(包括.cs
、.xaml
和.xaml.cs
扩展名)的所有源文件的列表。
在所有给定文件列表中,搜索以
.xaml.cs
结尾的所有文件。对于每个xaml-cs 文件,将搜索具有相同基本名称但扩展名为.xaml
的文件。如果找到了匹配项,则将设置.xaml.cs
文件的源文件属性VS_CSHARP_DependentUpon <xaml-filename>
上述的工具使用的辅助函数¶
- csharp_get_filename_keys¶
辅助函数,计算键值列表以识别源文件,而无需使用 cmake 中提供的相对/绝对路径,并消除大小写敏感性
csharp_get_filename_keys(OUT [<file1> [<file2> [...]]])
OUT
存储键值列表的变量名称
<fileN>
使用
add_library()
或add_executable()
传递给 CSharp 目标的文件名
此函数以某种方式对源代码名称应用规范化。如果已将文件与不同的目录前缀添加到目标,则找到文件匹配项时,必须进行此操作
add_library(lib myfile.cs ${CMAKE_CURRENT_SOURCE_DIR}/myfile.Designer.cs) set_source_files_properties(myfile.Designer.cs PROPERTIES VS_CSHARP_DependentUpon myfile.cs) # this will fail, because in cmake # - ${CMAKE_CURRENT_SOURCE_DIR}/myfile.Designer.cs # - myfile.Designer.cs # are not the same source file. The source file property is not set.
- csharp_get_filename_key_base¶
返回键的完整文件路径和名称不含扩展名。期望 KEY 为 csharp_get_filename_keys 中的键。在 BASE 中返回不含文件扩展名的 KEY 值
csharp_get_filename_key_base(BASE KEY)
BASE
保存计算出的
KEY
“基本值”的变量名称。KEY
要计算基本值的键。期望为包含全部内容大写文件名的文件名。
- csharp_get_dependentupon_name¶
计算一个可作为源文件属性值使用的字符串,该属性值为
VS_CSHARP_<tagname>
,同时 target 为DependentUpon
csharp_get_dependentupon_name(NAME FILE)
NAME
包含结果值的变量名称
FILE
要转换为
<DependentUpon>
值的文件名
实际上,此时这只包含文件名,不包含任何路径。