CSharpUtilities
Новое в версии 3.8.
Функции для упрощения настройки CSharp/.NET целей.
Коллекция функций утилиты CMake, полезных для работы с CSharp-целями для генераторов Visual Studio с версии 2010 и новее.
Данный модуль предоставляет следующие функции:
Основные функции
csharp_set_windows_forms_properties()csharp_set_designer_cs_properties()csharp_set_xaml_cs_properties()
Вспомогательные функции
Основные функции, предоставляемые модулем
-
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, выполняется поиск. Для каждого файла designer или resource выполняется поиск файла с тем же базовым именем, но только с расширением.cs. Если такой файл найден, свойстваVS_CSHARP_<tagname>устанавливаются следующим образом:- для файла .cs:
-
- VS_CSHARP_SubType "Форма"
- для файла .Designer.cs (если он существует):
-
- VS_CSHARP_DependentUpon <cs-имя_файла>
- VS_CSHARP_DesignTime "" (удалить тег, если он был определён ранее)
- VS_CSHARP_AutoGen ""(удалить тег, если он был определён ранее)
- для файла .resx (если он существует):
-
- VS_RESOURCE_GENERATOR "" (удалить тег, если он был определён ранее)
- VS_CSHARP_DependentUpon <cs-имя_файла>
- VS_CSHARP_SubType "Конструктор"
-
-
csharp_set_designer_cs_properties -
Устанавливает свойства файлов исходного кода для файлов
.Designer.csв зависимости от имён файлов-сестёр. Используйте эту функцию, если ваша CSharp-цель не использует Windows Forms (для Windows Forms используйтеcsharp_set_designer_cs_properties()вместо этого):csharp_set_designer_cs_properties([<file1> [<file2> [...]]])
-
<fileN> -
Список всех файлов исходного кода, относящихся к установке свойств
VS_CSHARP_<tagname>(включая.cs,.resx,.settingsи.Designer.csрасширения).
В списке всех заданных файлов для всех файлов, заканчивающихся на
.Designer.cs, выполняется поиск. Для каждого файла designer выполняется поиск всех файлов с тем же базовым именем, но разными расширениями. Если совпадение найдено, свойства файла исходного кода файла designer устанавливаются в зависимости от расширения совпавшего файла:- если совпадение — файл .resx:
-
- VS_CSHARP_AutoGen "True"
- VS_CSHARP_DesignTime "True"
- VS_CSHARP_DependentUpon <resx-имя_файла>
- если совпадение — файл .cs:
-
- VS_CSHARP_DependentUpon <cs-имя_файла>
- если совпадение — файл .settings:
-
- VS_CSHARP_AutoGen "True"
- VS_CSHARP_DesignTimeSharedInput "True"
- VS_CSHARP_DependentUpon <имя_файла_settings>
-
Примечание
Поскольку свойства файла исходного кода файла .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-имя_файла>
-
Вспомогательные функции, используемые вышеперечисленными
-
csharp_get_filename_keys -
Вспомогательная функция, которая вычисляет список значений ключей для идентификации файлов исходного кода независимо от относительных/абсолютных путей, заданных в cmake, и устраняет зависимость от регистра:
csharp_get_filename_keys(OUT [<file1> [<file2> [...]]])
-
OUT -
Имя переменной, в которой хранится список ключей
-
<fileN> -
имя(я) файла(ов), как указано для CSharp-цели с использованием
add_library()илиadd_executable()
Функция каким-то образом применяет канонизацию к именам файлов. Это необходимо для поиска совпадений файлов, если файлы были добавлены в цель с разными префиксами каталогов:
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>с целью, являющейсяDependentUpon:csharp_get_dependentupon_name(NAME FILE)
-
NAME -
Имя переменной с результатом.
-
FILE -
Имя файла для преобразования в значение
<DependentUpon>.
На самом деле, на данный момент это только имя файла без какого-либо указанного пути.
-
© 2000–2022 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.23/module/CSharpUtilities.html