Spec-Zone.ru › CMake 3.31

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_get_filename_keys()
  • csharp_get_filename_key_base()
  • csharp_get_dependentupon_name()

Основные функции, предоставляемые модулем

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 «Форма»
для файла .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_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-имя_файла>
если совпадение — файл .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–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.31/module/CSharpUtilities.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API