Spec-Zone.ru › CMake 3.25

cmake-file-api(7)

  • Введение
  • API v1

    • v1 Общие бессостоятельные запросы файлов
    • v1 Бессостоятельные запросы файлов клиента
    • v1 Состоятельные запросы файлов клиента
    • v1 Файл индекса ответов

      • v1 Ссылка на файл ответа
    • v1 Файлы ответов
  • Типы объектов

    • Тип объекта "codemodel"

      • Версия "codemodel" 2
      • Объект "codemodel" версии 2 "каталог"
      • Объект "codemodel" версии 2 "цель"
      • Граф "обратных следов" версии "codemodel" 2
    • Тип объекта "cache"

      • Версия "cache" 2
    • Тип объекта "cmakeFiles"

      • Версия "cmakeFiles" 1
    • Тип объекта "toolchains"

      • Версия "toolchains" 1

Введение

CMake предоставляет API на основе файлов, которое клиенты могут использовать для получения семантической информации о системах сборки, сгенерированных CMake. Клиенты могут использовать API, записывая файлы запросов в определенное место в дереве сборки, чтобы запросить один или несколько типов объектов. Когда CMake генерирует систему сборки в этом дереве, он читает файлы запросов и записывает файлы ответов, которые клиент может прочитать.

API на основе файлов использует директорию <build>/.cmake/api/ в верхней части дерева сборки. API имеет версионирование, чтобы поддерживать изменения в структуре файлов в директории API. Версионирование структуры файлов API независимо от версионирования типов объектов, используемых в ответах. Эта версия CMake поддерживает только одну версию API, API v1.

API v1

API v1 находится в директории <build>/.cmake/api/v1/. Она имеет следующие поддиректории:

query/

Содержит файлы запросов, записанные клиентами. Это могут быть v1 Общие бессостоятельные запросы файлов, v1 Бессостоятельные запросы файлов клиента или v1 Состоятельные запросы файлов клиента.

reply/

Содержит файлы ответов, записываемые CMake при запуске для генерации системы сборки. Они индексируются файлом v1 Файл индекса ответов, который может ссылаться на дополнительные v1 Файлы ответов. Все файлы ответов принадлежат CMake. Клиенты никогда не должны их удалять.

Клиенты могут в любое время искать и читать файл индекса ответов. Клиенты могут по желанию создать директорию reply/ в любое время и отслеживать её на появление нового файла индекса ответов.

v1 Общие бессостоятельные запросы файлов

Общие бессостоятельные запросы файлов позволяют клиентам совместно запрашивать основные версии типов объектов и получить все распознанные версии CMake, который выполняется.

Клиенты могут создать общие запросы, создав пустые файлы в директории v1/query/. Формат:

<build>/.cmake/api/v1/query/<kind>-v<major>

где <kind> — один из типов объектов, -v — литерал, а <major> — номер основной версии.

Файлы такого формата являются бессостоятельными общими запросами, не принадлежащими какому-либо конкретному клиенту. После создания их не следует удалять без внешней координации клиента или вмешательства человека.

v1 Бессостоятельные запросы файлов клиента

Бессостоятельные запросы файлов клиента позволяют клиентам создавать собственные запросы на основные версии типов объектов и получать все распознанные версии CMake, который выполняется.

Клиенты могут создать запросы, создав пустые файлы в поддиректориях запросов, специфичных для клиента. Формат:

<build>/.cmake/api/v1/query/client-<client>/<kind>-v<major>

где client- — литерал, <client> — строка, уникально идентифицирующая клиента, <kind> — один из типов объектов, -v — литерал, а <major> — номер основной версии. Каждый клиент должен выбрать уникальный идентификатор <client> самостоятельно.

Файлы такого формата являются бессостоятельными запросами, принадлежащими клиенту <client>. Владеющий клиентом может удалить их в любое время.

v1 Состоятельные запросы файлов клиента

Состоятельные запросы файлов позволяют клиентам запрашивать список версий каждого типа объектов и получать только самую последнюю версию, распознаваемую запущенным CMake.

Клиенты могут создать собственные состоятельные запросы, создав файлы query.json в поддиректориях запросов, специфичных для клиента. Формат:

<build>/.cmake/api/v1/query/client-<client>/query.json

где client- — литерал, <client> — строка, уникально идентифицирующая клиента, а query.json — литерал. Каждый клиент должен выбрать уникальный идентификатор <client> самостоятельно.

Файлы query.json являются состоятельными запросами, принадлежащими клиенту <client>. Владеющий клиентом может обновлять или удалять их в любое время. При обновлении данной клиентской установки, он может обновить состоятельный запрос, который он записывает в деревьях сборки, чтобы запросить новые версии объектов. Это может быть использовано для того, чтобы избежать ненужной генерации CMake нескольких версий объектов.

Файл query.json должен содержать JSON-объект:

{
  "requests": [
    { "kind": "<kind>" , "version": 1 },
    { "kind": "<kind>" , "version": { "major": 1, "minor": 2 } },
    { "kind": "<kind>" , "version": [2, 1] },
    { "kind": "<kind>" , "version": [2, { "major": 1, "minor": 2 }] },
    { "kind": "<kind>" , "version": 1, "client": {} },
    { "kind": "..." }
  ],
  "client": {}
}

Члены:

requests

JSON массив, содержащий ноль или более запросов. Каждый запрос — JSON объект с членами:

kind

Указывает один из типов объектов, которые должны быть включены в ответ.

version

Указывает версию(и) типа объекта, которую понимает клиент. Версии имеют основные и второстепенные компоненты, следуя соглашениям о семантической версии. Значение должно быть

  • JSON целым числом, указывающим номер основной версии (неотрицательное), или
  • JSON объектом, содержащим major и (необязательно) minor члены, указывающие компоненты версий целых чисел, или
  • JSON массив, элементы которого — каждый из вышеперечисленных.
client

Необязательный член, зарезервированный для использования клиентом. Это значение сохраняется в ответе, написанном для клиента в файле v1 Файл индекса ответов, но в противном случае игнорируется. Клиенты могут использовать это для передачи дополнительной информации с запросом в ответ.

Для каждого запрошенного типа объекта CMake выберет первую версию, которую он распознает для этого типа среди тех, что указаны в запросе. Ответ будет использовать выбранную основную версию с самой высокой второстепенной версией, известной работающему CMake для этой основной версии. Поэтому клиенты должны указывать все поддерживаемые основные версии в предпочтительном порядке вместе с минимальной второстепенной версией, необходимой для каждой основной версии.

client

Необязательный член, зарезервированный для использования клиентом. Это значение сохраняется в ответе, написанном для клиента в файле v1 Файл индекса ответов, но в противном случае игнорируется. Клиенты могут использовать это для передачи дополнительной информации с запросом в ответ.

Другие query.json члены верхнего уровня зарезервированы для будущего использования. Если они присутствуют, они игнорируются для обеспечения обратной совместимости.

v1 Файл индекса ответов

CMake записывает файл index-*.json в директорию v1/reply/ всякий раз, когда он выполняется для генерации системы сборки. Клиенты должны сначала прочитать файл индекса ответов и могут прочитать другие v1 Файлы ответов только путем следования ссылкам. Формат имени файла индекса ответов:

<build>/.cmake/api/v1/reply/index-<unspecified>.json

где index- — литерал, а <unspecified> — неопределённое имя, выбранное CMake. При каждом создании нового файла индекса ему присваивается новое имя, а старое удаляется. В короткий промежуток времени между этими шагами может быть несколько файлов индекса; файл с наибольшим именем в лексикографическом порядке является текущим файлом индекса.

Файл индекса ответов содержит JSON-объект:

{
  "cmake": {
    "version": {
      "major": 3, "minor": 14, "patch": 0, "suffix": "",
      "string": "3.14.0", "isDirty": false
    },
    "paths": {
      "cmake": "/prefix/bin/cmake",
      "ctest": "/prefix/bin/ctest",
      "cpack": "/prefix/bin/cpack",
      "root": "/prefix/share/cmake-3.14"
    },
    "generator": {
      "multiConfig": false,
      "name": "Unix Makefiles"
    }
  },
  "objects": [
    { "kind": "<kind>",
      "version": { "major": 1, "minor": 0 },
      "jsonFile": "<file>" },
    { "...": "..." }
  ],
  "reply": {
    "<kind>-v<major>": { "kind": "<kind>",
                         "version": { "major": 1, "minor": 0 },
                         "jsonFile": "<file>" },
    "<unknown>": { "error": "unknown query file" },
    "...": {},
    "client-<client>": {
      "<kind>-v<major>": { "kind": "<kind>",
                           "version": { "major": 1, "minor": 0 },
                           "jsonFile": "<file>" },
      "<unknown>": { "error": "unknown query file" },
      "...": {},
      "query.json": {
        "requests": [ {}, {}, {} ],
        "responses": [
          { "kind": "<kind>",
            "version": { "major": 1, "minor": 0 },
            "jsonFile": "<file>" },
          { "error": "unknown query file" },
          { "...": {} }
        ],
        "client": {}
      }
    }
  }
}

Члены:

cmake

Объект JSON, содержащий информацию об экземпляре CMake, сгенерировавшем ответ. Он содержит члены:

version

Объект JSON, определяющий версию CMake с членами:

major, minor, patch

Целочисленные значения, определяющие основные, второстепенные и исправительные компоненты версии.

suffix

Строка, определяющая суффикс версии, если таковой имеется, например g0abc3.

string

Строка, определяющая полную версию в формате <major>.<minor>.<patch>[-<suffix>].

isDirty

Булево значение, указывающее, была ли версия построена из дерева исходного кода с системой контроля версий с локальными изменениями.

paths

Объект JSON, определяющий пути к компонентам CMake. Он имеет члены для cmake, ctest, и cpack, значения которых являются строками JSON, определяющими абсолютный путь к каждому инструменту, представленному с помощью обратных слешей. Он также имеет член root для абсолютного пути к каталогу, содержащему ресурсы CMake, такие как каталог Modules/ (см. CMAKE_ROOT).

generator

Объект JSON, описывающий используемый для сборки генератор CMake. Он имеет члены:

multiConfig

Булево значение, определяющее, поддерживает ли генератор несколько конфигураций выходных данных.

name

Строка, определяющая имя генератора.

platform

Если генератор поддерживает CMAKE_GENERATOR_PLATFORM, это строка, определяющая имя платформы генератора.

objects

Массив JSON, перечисляющий все версии всех видов объектов, сгенерированных в рамках ответа. Каждый элемент массива — ссылка на файл ответа v1.

reply

Объект JSON, отражающий содержимое каталога query/, который CMake загрузил для получения ответа. Члены имеют вид

<kind>-v<major>

Элемент этого вида появляется для каждого из файлов запросов v1 общего состояния, которые CMake распознал как запрос на вид объекта <kind> с основной версией <major> . Значение — ссылка на файл ответа v1 на соответствующий файл ответа для этого вида объекта и версии.

<unknown>

Элемент этого вида появляется для каждого из файлов запросов v1 общего состояния, которые CMake не распознал. Значение — объект JSON с единственным членом error , содержащим строку с сообщением об ошибке, указывающей, что файл запроса неизвестен.

client-<client>

Элемент этого вида появляется для каждого каталога, принадлежащего клиенту и содержащего файлы запросов v1 частного состояния. Значение — объект JSON, отражающий содержимое каталога query/client-<client>/. Члены имеют вид:

<kind>-v<major>

Элемент этого вида появляется для каждого из файлов запросов v1 частного состояния, которые CMake распознал как запрос на вид объекта <kind> с основной версией <major> . Значение — ссылка на файл ответа v1 на соответствующий файл ответа для этого вида объекта и версии.

<unknown>

Элемент этого вида появляется для каждого из файлов запросов v1 частного состояния, которые CMake не распознал. Значение — объект JSON с единственным членом error , содержащим строку с сообщением об ошибке, указывающей, что файл запроса неизвестен.

query.json

Этот член появляется для клиентов, использующих файлы запросов v1 клиентского состояния. Если файл query.json не удалось прочитать или разобрать как объект JSON, этот член является объектом JSON с единственным членом error , содержащим строку с сообщением об ошибке. В противном случае этот член является объектом JSON, отражающим содержимое файла query.json. Члены:

client

Копия файла query.json член client , если он существует.

requests

Копия файла query.json член requests , если он существует.

responses

Если член query.json файла requests отсутствует или недействителен, этот член — объект JSON с единственным членом error , содержащим строку с сообщением об ошибке. В противном случае этот член содержит массив JSON с ответом для каждого элемента массива requests в том же порядке. Каждый ответ:

  • объект JSON с единственным членом error , содержащим строку с сообщением об ошибке, или
  • ссылка на файл ответа v1 на соответствующий файл ответа для запрошенного вида объекта и выбранной версии.

После прочтения файла индекса ответа клиенты могут прочитать другие файлы ответов v1, на которые он ссылается.

Ссылка на файл ответа v1

Файл индекса ответа представляет каждую ссылку на другой файл ответа с помощью объекта JSON с членами:

kind

Строка, определяющая один из видов объектов.

version

Объект JSON с членами major и minor , определяющими целочисленные компоненты версии вида объекта.

jsonFile

Строка JSON, определяющая путь, относительный к файлу индекса ответа, к другому файлу JSON, содержащему объект.

Файлы ответов v1

Файлы ответов, содержащие определённые виды объектов, пишутся CMake. Имена этих файлов не заданы и не должны интерпретироваться клиентами. Клиенты должны сначала прочитать файл индекса ответов v1 и следовать ссылкам на имена желаемых объектов ответа.

Файлы ответов (включая файл индекса) никогда не будут заменены файлами с тем же именем, но с другим содержимым. Это позволяет клиенту читать файлы одновременно с выполняемым CMake, который может сгенерировать новый ответ. Однако после генерации нового ответа CMake попытается удалить файлы ответов из предыдущих запусков, которые он не только что записал. Если клиент пытается прочитать файл ответа, на который ссылается индекс, но находит файл отсутствующим, это означает, что одновременный CMake сгенерировал новый ответ. Клиент может просто начать заново, прочитав новый файл индекса ответа.

Виды объектов

API CMake на основе файлов сообщает семантическую информацию о системе сборки, используя следующие виды объектов JSON. Каждый вид объекта независимо версионируется с помощью семантического версионирования с основными и второстепенными компонентами. Каждый вид объекта имеет вид:

{
  "kind": "<kind>",
  "version": { "major": 1, "minor": 0 },
  "...": {}
}

Член kind — строка, определяющая имя вида объекта. Член version — объект JSON с членами major и minor , определяющими целочисленные компоненты версии вида объекта. Дополнительные члены верхнего уровня специфичны для каждого вида объекта.

Вид объекта "codemodel"

Вид объекта codemodel описывает структуру системы сборки, как она моделируется CMake.

Существует только одна основная версия объекта codemodel, версия 2. Версия 1 не существует, чтобы избежать путаницы с версией из режима cmake-server(7).

"codemodel" версия 2

Объект версии 2 codemodel — это объект JSON:

{
  "kind": "codemodel",
  "version": { "major": 2, "minor": 4 },
  "paths": {
    "source": "/path/to/top-level-source-dir",
    "build": "/path/to/top-level-build-dir"
  },
  "configurations": [
    {
      "name": "Debug",
      "directories": [
        {
          "source": ".",
          "build": ".",
          "childIndexes": [ 1 ],
          "projectIndex": 0,
          "targetIndexes": [ 0 ],
          "hasInstallRule": true,
          "minimumCMakeVersion": {
            "string": "3.14"
          },
          "jsonFile": "<file>"
        },
        {
          "source": "sub",
          "build": "sub",
          "parentIndex": 0,
          "projectIndex": 0,
          "targetIndexes": [ 1 ],
          "minimumCMakeVersion": {
            "string": "3.14"
          },
          "jsonFile": "<file>"
        }
      ],
      "projects": [
        {
          "name": "MyProject",
          "directoryIndexes": [ 0, 1 ],
          "targetIndexes": [ 0, 1 ]
        }
      ],
      "targets": [
        {
          "name": "MyExecutable",
          "directoryIndex": 0,
          "projectIndex": 0,
          "jsonFile": "<file>"
        },
        {
          "name": "MyLibrary",
          "directoryIndex": 1,
          "projectIndex": 0,
          "jsonFile": "<file>"
        }
      ]
    }
  ]
}

Члены, специфичные для объектов codemodel :

paths

Объект JSON, содержащий члены:

source

Строка, определяющая абсолютный путь к исходному каталогу верхнего уровня, представленный с помощью слешей.

build

Строка, определяющая абсолютный путь к каталогу построения верхнего уровня, представленный с помощью слешей.

configurations

Массив JSON записей, соответствующих доступным конфигурациям построения. В генераторах с одной конфигурацией одна запись для значения переменной CMAKE_BUILD_TYPE. В генераторах с несколькими конфигурациями есть запись для каждой конфигурации, перечисленных в переменной CMAKE_CONFIGURATION_TYPES. Каждая запись — это объект JSON, содержащий члены:

name

Строка, определяющая имя конфигурации, например Debug.

directories

Массив JSON записей, каждая из которых соответствует каталогу системы построения, исходный каталог которого содержит файл CMakeLists.txt. Первая запись соответствует каталогу верхнего уровня. Каждая запись — это объект JSON, содержащий члены:

source

Строка, определяющая путь к каталогу исходных кодов, представленный с помощью слешей. Если каталог находится внутри каталога исходных кодов верхнего уровня, то путь задаётся относительно этого каталога (с . для самого каталога исходных кодов верхнего уровня). В противном случае путь является абсолютным.

build

Строка, определяющая путь к каталогу построения, представленный с помощью слешей. Если каталог находится внутри каталога построения верхнего уровня, то путь задаётся относительно этого каталога (с . для самого каталога построения верхнего уровня). В противном случае путь является абсолютным.

parentIndex

Необязательный член, присутствующий, когда каталог не является каталогом верхнего уровня. Значение — это целое число без знака, индекс с нуля другой записи в основном массиве directories , который соответствует родительскому каталогу, добавившему этот каталог как подкаталог.

childIndexes

Необязательный член, присутствующий, когда у каталога есть подкаталоги. Значение — массив JSON записей, соответствующих подкаталогам, созданным командой add_subdirectory() или subdirs(). Каждая запись — это целое число без знака, индекс с нуля другой записи в основном массиве directories.

projectIndex

Целое число без знака, индекс с нуля в основном массиве projects , указывающий на проект системы построения, к которому относится этот каталог.

targetIndexes

Необязательный член, присутствующий, когда у каталога есть цели, за исключением тех, которые принадлежат подкаталогам. Значение — массив JSON записей, соответствующих целям. Каждая запись — это целое число без знака, индекс с нуля в основном массиве targets.

minimumCMakeVersion

Необязательный член, присутствующий, когда известна минимальная требуемая версия CMake для каталога. Это версия <min> , заданная в самом локальном вызове команды cmake_minimum_required(VERSION) в каталоге или в одном из его предков. Значение — объект JSON с одним членом:

string

Строка, определяющая минимальную требуемую версию в формате:

<major>.<minor>[.<patch>[.<tweak>]][<suffix>]

Каждый компонент — целое число без знака, а суффикс может быть произвольной строкой.

hasInstallRule

Необязательный член, присутствующий с булевым значением true , если каталог или один из его подкаталогов содержит какие-либо правила install(), т. е. доступно ли правило make install или эквивалентное ему.

jsonFile

Строка JSON, определяющая путь, относящийся к файлу модели кода, к другому файлу JSON, содержащему объект «каталога» «codemodel» версии 2.

Этот поле был добавлен в версии codemodel 2.3.

projects

Массив JSON записей, соответствующих проекту верхнего уровня и подпроектам, определённым в системе построения. Каждый (под-)проект соответствует каталогу исходных кодов, в файле которого CMakeLists.txt вызывается команда project() с именем проекта, отличным от имени родительского каталога. Первая запись соответствует проекту верхнего уровня.

Каждая запись — это объект JSON, содержащий члены:

name

Строка, определяющая имя, заданное команде project().

parentIndex

Необязательный член, присутствующий, когда проект не является проектом верхнего уровня. Значение — целое число без знака, индекс с нуля другой записи в основном массиве projects , который соответствует родительскому проекту, добавившему этот проект как подпроект.

childIndexes

Необязательный член, присутствующий, когда у проекта есть подпроекты. Значение — массив JSON записей, соответствующих подпроектам. Каждая запись — это целое число без знака, индекс с нуля другой записи в основном массиве projects.

directoryIndexes

Массив JSON записей, соответствующих каталогам системы построения, которые являются частью проекта. Первая запись соответствует каталогу верхнего уровня проекта. Каждая запись — целое число без знака, индекс с нуля в основном массиве directories.

targetIndexes

Необязательный член, присутствующий, когда у проекта есть цели, за исключением тех, которые принадлежат подпроектам. Значение — массив JSON записей, соответствующих целям. Каждая запись — это целое число без знака, индекс с нуля в основном массиве targets.

targets

Массив JSON записей, соответствующих целям системы построения. Такие цели создаются вызовами add_executable(), add_library() и add_custom_target(), за исключением импортированных целей и интерфейсных библиотек (которые не генерируют никаких правил построения). Каждая запись — это объект JSON, содержащий члены:

name

Строка, определяющая имя цели.

id

Строка, уникально идентифицирующая цель. Это соответствует полю id в файле, на который ссылается jsonFile.

directoryIndex

Целое число без знака, индекс с нуля в основном массиве directories , указывающий на каталог системы построения, в котором определена цель.

projectIndex

Целое число без знака, индекс с нуля в основном массиве projects , указывающий на проект системы построения, в котором определена цель.

jsonFile

Строка JSON, определяющая путь, относящийся к файлу модели кода, к другому файлу JSON, содержащему объект «цели» «codemodel» версии 2.

Объект "каталога" "codemodel" версии 2

Объект «каталога» codemodel ссылается на массив directories объекта «codemodel» версии 2. Каждый объект «каталога» — это объект JSON с членами:

paths

Объект JSON, содержащий члены:

source

Строка, определяющая путь к каталогу исходных кодов, представленный с помощью слешей. Если каталог находится внутри каталога исходных кодов верхнего уровня, то путь задаётся относительно этого каталога (с . для самого каталога исходных кодов верхнего уровня). В противном случае путь является абсолютным.

build

Строка, определяющая путь к каталогу построения, представленный с помощью слешей. Если каталог находится внутри каталога построения верхнего уровня, то путь задаётся относительно этого каталога (с . для самого каталога построения верхнего уровня). В противном случае путь является абсолютным.

installers

Массив JSON записей, соответствующих правилам install(). Каждая запись — это объект JSON, содержащий члены:

component

Строка, определяющая компонент, выбранный вызовом соответствующей команды install().

destination

Необязательный член, присутствующий для определённых значений type ниже. Значение — это строка, определяющая путь назначения установки. Путь может быть абсолютным или относительным к префиксу установки.

paths

Необязательный член, присутствующий для определённых значений type ниже. Значение — массив JSON, содержащий записи, соответствующие путям (файлам или каталогам) для установки. Каждая запись — одна из следующих:

  • Строка, определяющая путь, откуда следует установить файл или каталог. Часть пути, не предваряемая символом /, также определяет путь (имя), по которому файл или каталог будут установлены в рамках назначения.
  • Объект JSON с членами:

    from

    Строка, определяющая путь, откуда следует установить файл или каталог.

    to

    Строка, определяющая путь, по которому следует установить файл или каталог в рамках назначения.

В обоих случаях пути представлены с использованием прямых слэшей. Если путь "откуда" находится внутри верхнего уровня каталога, документированного соответствующим значением type, то путь указан относительно этого каталога. В противном случае путь является абсолютным.

type

Строка, определяющая тип правила установки. Значение — одно из следующих, при этом некоторые варианты предоставляют дополнительные члены:

file

Вызов install(FILES) или install(PROGRAMS). Члены destination и paths заполнены, а пути под верхним каталогом source выражены относительно него. Член isOptional может существовать. Этот тип не имеет дополнительных членов.

directory

Вызов install(DIRECTORY). Члены destination и paths заполнены, а пути под верхним каталогом source выражены относительно него. Член isOptional может существовать. Этот тип не имеет дополнительных членов.

target

Вызов install(TARGETS). Члены destination и paths заполнены, а пути под верхним каталогом build выражены относительно него. Член isOptional может существовать. Этот тип имеет дополнительные члены targetId, targetIndex, targetIsImportLibrary, и targetInstallNamelink.

export

Вызов install(EXPORT). Члены destination и paths заполнены, а пути под верхним каталогом build выражены относительно него. Записи paths относятся к автоматически сгенерированным CMake файлам для установки, и их фактические значения считаются частными деталями реализации. Этот тип имеет дополнительные члены exportName и exportTargets.

script

Вызов install(SCRIPT). Этот тип имеет дополнительный член scriptFile.

code

Вызов install(CODE). Этот тип не имеет дополнительных членов.

importedRuntimeArtifacts

Вызов install(IMPORTED_RUNTIME_ARTIFACTS). Член destination заполнен. Член isOptional может существовать. Этот тип не имеет дополнительных членов.

runtimeDependencySet

Вызов install(RUNTIME_DEPENDENCY_SET) или install(TARGETS) с RUNTIME_DEPENDENCIES. Член destination заполнен. Этот тип имеет дополнительные члены runtimeDependencySetName и runtimeDependencySetType.

fileSet

Вызов install(TARGETS) с FILE_SET. Члены destination и paths заполнены. Член isOptional может существовать. Этот тип имеет дополнительные члены fileSetName, fileSetType, fileSetDirectories, и fileSetTarget.

Этот тип был добавлен в версии codemodel 2.4.

isExcludeFromAll

Необязательный член, присутствующий с булевым значением true при вызове install() с опцией EXCLUDE_FROM_ALL.

isForAllComponents

Необязательный член, присутствующий с булевым значением true при вызове install(SCRIPT|CODE) с опцией ALL_COMPONENTS.

isOptional

Необязательный член, присутствующий с булевым значением true при вызове install() с опцией OPTIONAL . Это разрешено, когда type равно file, directory, или target.

targetId

Необязательный член, присутствующий, когда type равно target. Значение — строка, уникально идентифицирующая целевой объект для установки. Это соответствует члену id целевого объекта в массиве targets основного объекта "codemodel".

targetIndex

Необязательный член, присутствующий, когда type равно target. Значение — беззнаковое целое число, индекс с нуля в массиве targets основного объекта "codemodel" для целевого объекта для установки.

targetIsImportLibrary

Необязательный член, присутствующий, когда type равно target и установщик предназначен для файла библиотеки импорта Windows DLL или файла импорта AIX линковщика. Если присутствует, он имеет булевое значение true.

targetInstallNamelink

Необязательный член, присутствующий, когда type равно target и установщик соответствует целевому объекту, который может использовать символические ссылки для реализации свойств целевого объекта VERSION и SOVERSION. Значение — строка, указывающая, как установщик должен обрабатывать символические ссылки: skip означает, что установщик должен пропустить символические ссылки и установить только реальный файл, а only означает, что установщик должен установить только символические ссылки и не устанавливать реальный файл. Во всех случаях член paths перечисляет, что фактически устанавливается.

exportName

Необязательный член, присутствующий, когда type равно export. Значение — строка, определяющая имя экспорта.

exportTargets

Необязательный член, присутствующий, когда type равно export. Значение — массив JSON, содержащий записи, соответствующие целевым объектам, включённым в экспорт. Каждая запись — объект JSON с членами:

id

Строка, уникально идентифицирующая целевой объект. Это соответствует члену id целевого объекта в массиве targets основного объекта "codemodel".

index

Беззнаковое целое число, индекс с нуля в массиве targets основного объекта "codemodel" для целевого объекта.

runtimeDependencySetName

Необязательный член, присутствующий, когда type равно runtimeDependencySet и установщик был создан вызовом install(RUNTIME_DEPENDENCY_SET). Значение — строка, определяющая имя набора зависимостей времени выполнения, которое было установлено.

runtimeDependencySetType

Необязательный член, присутствующий, когда type равно runtimeDependencySet. Значение — строка с одним из следующих значений:

library

Указывает, что этот установщик устанавливает зависимости, которые не являются фреймворками macOS.

framework

Указывает, что этот установщик устанавливает зависимости, которые являются фреймворками macOS.

fileSetName

Необязательный член, присутствующий, когда type равно fileSet. Значение — строка с именем набора файлов.

Это поле было добавлено в версии codemodel 2.4.

fileSetType

Необязательный член, присутствующий, когда type равно fileSet. Значение — строка с типом набора файлов.

Это поле было добавлено в версии codemodel 2.4.

fileSetDirectories

Необязательный член, присутствующий, когда type равно fileSet. Значение — список строк с базовыми каталогами набора файлов (определяются с помощью genex-оценки HEADER_DIRS или HEADER_DIRS_<NAME>).

Это поле было добавлено в версии codemodel 2.4.

fileSetTarget

Необязательный член, присутствующий, когда type равно fileSet. Значение — JSON-объект с членами:

id

Строка, уникально идентифицирующая целевой объект. Соответствует члену id целевого объекта в массиве targets основного объекта "codemodel".

index

Беззнаковое целое число, 0-индексированный индекс в массиве targets основного объекта "codemodel" для целевого объекта.

Это поле было добавлено в версии codemodel 2.4.

scriptFile

Необязательный член, присутствующий, когда type равно script. Значение — строка, указывающая путь к файлу скрипта на диске, представленный с использованием слешей. Если файл находится в корневой директории исходных данных, путь указывается относительно этой директории. В противном случае путь является абсолютным.

backtrace

Необязательный член, присутствующий, когда доступен трассировка CMake языка до install() или вызова другого командного интерпретатора, который добавил этот установщик. Значение — беззнаковое целое число, 0-индексированный индекс в массиве nodes члена backtraceGraph.

backtraceGraph

Граф обратной трассировки "codemodel" версии 2, узлы которого ссылаются на члены backtrace в других частях объекта "directory".

Объект "codemodel" версии 2 "target"

Объект "codemodel" "target" ссылается на массив targets объекта "codemodel" версии 2. Каждый объект "target" — это JSON-объект с членами:

name

Строка, определяющая логическое имя целевого объекта.

id

Строка, уникально идентифицирующая целевой объект. Формат не определён и не должен интерпретироваться клиентами.

type

Строка, определяющая тип целевого объекта. Значение должно быть одним из EXECUTABLE, STATIC_LIBRARY, SHARED_LIBRARY, MODULE_LIBRARY, OBJECT_LIBRARY, INTERFACE_LIBRARY, или UTILITY.

backtrace

Необязательный член, присутствующий, когда доступна обратная трассировка языка CMake к команде в исходном коде, которая создала целевой объект. Значение является 0-индексированным беззнаковым целым числом в массиве nodes члена backtraceGraph.

folder

Необязательный член, присутствующий, когда свойство целевого объекта FOLDER установлено. Значение — JSON-объект с одним членом:

name

Строка, определяющая имя папки целевого объекта.

paths

JSON-объект, содержащий члены:

source

Строка, определяющая путь к каталогу исходных файлов целевого объекта, представленный с помощью слешей. Если каталог находится внутри каталога исходных файлов верхнего уровня, путь указывается относительно этого каталога (с . для самого каталога исходных файлов верхнего уровня). В противном случае путь является абсолютным.

build

Строка, определяющая путь к каталогу сборки целевого объекта, представленный с помощью слешей. Если каталог находится внутри каталога сборки верхнего уровня, путь указывается относительно этого каталога (с . для самого каталога сборки верхнего уровня). В противном случае путь является абсолютным.

nameOnDisk

Необязательный член, присутствующий для целевых объектов исполняемых файлов и библиотек, связанных или архивированных в один основной артефакт. Значение — строка, определяющая имя файла этого артефакта на диске.

artifacts

Необязательный член, присутствующий для целевых объектов исполняемых файлов и библиотек, производящих артефакты на диске для использования зависимыми объектами. Значение — JSON-массив записей, соответствующих артефактам. Каждая запись — JSON-объект, содержащий один член:

path

Строка, определяющая путь к файлу на диске, представленный с помощью слешей. Если файл находится внутри каталога сборки верхнего уровня, путь указывается относительно этого каталога. В противном случае путь является абсолютным.

isGeneratorProvided

Необязательный член, присутствующий со значением булевой переменной true, если целевой объект предоставляется генератором системы сборки CMake, а не командой в исходном коде.

install

Необязательный член, присутствующий, когда целевой объект имеет правило install(). Значение — JSON-объект с членами:

prefix

JSON-объект, определяющий префикс установки. Он имеет один член:

path

Строка, определяющая значение CMAKE_INSTALL_PREFIX.

destinations

JSON-массив записей, определяющих путь установки. Каждая запись — JSON-объект с членами:

path

Строка, определяющая путь установки. Путь может быть абсолютным или относительным к префиксу установки.

backtrace

Необязательный член, присутствующий, когда доступна обратная трассировка языка CMake к вызову команды install(), которая указала этот путь. Значение — 0-индексированное беззнаковое целое число в массиве backtraceGraph члена nodes.

link

Необязательный член, присутствующий для целевых объектов исполняемых файлов и динамических библиотек, которые подключаются к исполняемому файлу времени выполнения. Значение — JSON-объект с членами, описывающими этап подключения:

language

Строка, определяющая язык (например, C, CXX, Fortran) используемой цепочки инструментов для вызова компоновщика.

commandFragments

Необязательный член, присутствующий, когда доступны фрагменты вызова командной строки компоновщика. Значение — JSON-массив записей, определяющих упорядоченные фрагменты. Каждая запись — JSON-объект с членами:

fragment

Строка, определяющая фрагмент вызова командной строки компоновщика. Значение закодировано в формате оболочки системы сборки.

role

Строка, определяющая роль содержимого фрагмента:

  • flags: флаги компоновки.
  • libraries: пути к файлам или флаги библиотек компоновки.
  • libraryPath: флаги поиска каталогов библиотек.
  • frameworkPath: флаги поиска каталогов фреймворков macOS.
lto

Необязательный член, присутствующий со значением булевой переменной true, когда включена оптимизация на этапе компоновки (также известная как межпроцедурная оптимизация или генерация кода на этапе компоновки).

sysroot

Необязательный член, присутствующий, когда определена переменная CMAKE_SYSROOT_LINK или CMAKE_SYSROOT. Значение — JSON-объект с одним членом:

path

Строка, определяющая абсолютный путь к sysroot, представленный с помощью слешей.

archive

Необязательный член, присутствующий для статических библиотек. Значение — JSON-объект с членами, описывающими этап архивирования:

commandFragments

Необязательный член, присутствующий, когда доступны фрагменты вызова командной строки архиватора. Значение — JSON-массив записей, определяющих фрагменты. Каждая запись — JSON-объект с членами:

fragment

Строка, определяющая фрагмент вызова командной строки архиватора. Значение закодировано в формате оболочки системы сборки.

role

Строка, определяющая роль содержимого фрагмента:

  • flags: флаги архиватора.
lto

Необязательный член, присутствующий со значением булевой переменной true, когда включена оптимизация на этапе компоновки (также известная как межпроцедурная оптимизация или генерация кода на этапе компоновки).

dependencies

Необязательный член, присутствующий, если целевой объект зависит от других целевых объектов. Значение — JSON-массив записей, соответствующих зависимостям. Каждая запись — JSON-объект с членами:

id

Строка, уникально идентифицирующая целевой объект, от которого зависит данный целевой объект. Соответствует члену id другого целевого объекта.

backtrace

Необязательный член, присутствующий, когда доступна обратная трассировка языка CMake к вызову команды add_dependencies(), target_link_libraries() или другой команде, создавшей эту зависимость. Значение — 0-индексированное беззнаковое целое число в массиве backtraceGraph члена nodes.

sources

JSON-массив записей, соответствующих исходным файлам целевого объекта. Каждая запись — JSON-объект с членами:

path

Строка, определяющая путь к исходному файлу на диске, представленный с помощью слешей. Если файл находится внутри каталога исходных файлов верхнего уровня, путь указывается относительно этого каталога. В противном случае путь является абсолютным.

compileGroupIndex

Необязательный член, присутствующий, когда исходный файл компилируется. Значение — 0-индексированное беззнаковое целое число в массиве compileGroups.

sourceGroupIndex

Необязательный член, присутствующий, когда исходный файл является частью группы исходных файлов, либо через команду source_group(), либо по умолчанию. Значение — 0-индексированное беззнаковое целое число в массиве sourceGroups.

isGenerated

Необязательный член, присутствующий со значением булевой переменной true, если исходный файл является GENERATED.

backtrace

Необязательный член, присутствующий, когда доступна обратная трассировка языка CMake к команде target_sources(), add_executable(), add_library(), add_custom_target() или другой команде, добавившей этот исходный файл в целевой объект. Значение — 0-индексированное беззнаковое целое число в массиве backtraceGraph члена nodes.

sourceGroups

Дополнительный член, присутствующий, когда источники сгруппированы командой source_group() или по умолчанию. Значение — JSON-массив записей, соответствующих группам. Каждая запись — JSON-объект с членами:

name

Строка, определяющая имя группы источников.

sourceIndexes

JSON-массив, перечисляющий источники, принадлежащие группе. Каждая запись — целое беззнаковое число, 0-индексированное, в основном массиве sources для целевого объекта.

compileGroups

Дополнительный член, присутствующий, когда у целевого объекта есть компилируемые источники. Значение — JSON-массив записей, соответствующих группам источников, которые все компилируются с одинаковыми настройками. Каждая запись — JSON-объект с членами:

sourceIndexes

JSON-массив, перечисляющий источники, принадлежащие группе. Каждая запись — целое беззнаковое число, 0-индексированное, в основном массиве sources для целевого объекта.

language

Строка, определяющая язык (например, C, CXX, Fortran), используемый компилятором для компиляции исходного файла.

languageStandard

Дополнительный член, присутствующий, когда стандарт языка задан явно (например, через CXX_STANDARD) или неявно функциями компиляции. Каждая запись — JSON-объект с двумя членами:

backtraces

Дополнительный член, присутствующий, когда доступен обратный след CMake языка к настройке <LANG>_STANDARD. Если стандарт языка был задан неявно функциями компиляции, эти значения используются как обратные следы. Возможна ситуация, когда несколько функций компиляции требуют одного и того же стандарт языка, поэтому может быть несколько обратных следов. Значение — JSON-массив, где каждая запись — целое беззнаковое число, 0-индексированное, в массиве backtraceGraph члена nodes.

standard

Строка, представляющая стандарт языка.

Этот член был добавлен в версии codemodel 2.2.

compileCommandFragments

Дополнительный член, присутствующий, когда доступны фрагменты вызова компилятора. Значение — JSON-массив, содержащий упорядоченные фрагменты. Каждая запись — JSON-объект с одним членом:

fragment

Строка, определяющая фрагмент вызова компилятора. Значение закодировано в формате командной строки среды разработки.

includes

Дополнительный член, присутствующий, когда есть каталоги заголовочных файлов. Значение — JSON-массив с записью для каждого каталога. Каждая запись — JSON-объект с членами:

path

Строка, определяющая путь к каталогу заголовочных файлов, представленный с помощью слешей.

isSystem

Дополнительный член, присутствующий с булевым значением true, если каталог заголовочных файлов помечен как системный каталог заголовочных файлов.

backtrace

Дополнительный член, присутствующий, когда доступен обратный след CMake языка к вызову команды target_include_directories() или другой команде, добавившей этот каталог заголовочных файлов. Значение — целое беззнаковое число, 0-индексированное, в массиве backtraceGraph члена nodes.

precompileHeaders

Дополнительный член, присутствующий, когда target_precompile_headers() или другие вызовы команд установили PRECOMPILE_HEADERS для целевого объекта. Значение — JSON-массив с записью для каждого заголовочного файла. Каждая запись — JSON-объект с членами:

header

Полный путь к предварительно скомпилированному заголовочному файлу.

backtrace

Дополнительный член, присутствующий, когда доступен обратный след CMake языка к вызову команды target_precompile_headers() или другой команде, добавившей этот предварительно скомпилированный заголовочный файл. Значение — целое беззнаковое число, 0-индексированное, в массиве backtraceGraph члена nodes.

Этот член был добавлен в версии codemodel 2.1.

defines

Дополнительный член, присутствующий, когда есть определения препроцессора. Значение — JSON-массив с записью для каждого определения. Каждая запись — JSON-объект с членами:

define

Строка, определяющая определение препроцессора в формате <name>[=<value>], например DEF или DEF=1.

backtrace

Дополнительный член, присутствующий, когда доступен обратный след CMake языка к вызову команды target_compile_definitions() или другой команде, добавившей это определение препроцессора. Значение — целое беззнаковое число, 0-индексированное, в массиве backtraceGraph члена nodes.

sysroot

Дополнительный член, присутствующий, когда определена переменная CMAKE_SYSROOT_COMPILE или CMAKE_SYSROOT. Значение — JSON-объект с одним членом:

path

Строка, определяющая абсолютный путь к sysroot, представленный с помощью слешей.

backtraceGraph

"codemodel" версия 2 "граф обратных следов", узлы которого ссылаются на члены backtrace в других местах объекта "target".

"codemodel" версия 2 "граф обратных следов"

Член backtraceGraph объекта "codemodel" версия 2 "каталог" объекта или "codemodel" версия 2 "целевой объект" — JSON-объект, описывающий граф обратных следов. Его узлы ссылаются на члены backtrace в другом месте содержащего объекта. Члены объекта графа обратных следов:

nodes

JSON-массив, перечисляющий узлы в графе обратных следов. Каждая запись — JSON-объект с членами:

file

Целое беззнаковое число, 0-индексированное, в массиве обратных следов files.

line

Дополнительный член, присутствующий, когда узел представляет строку в файле. Значение — целое беззнаковое число, 1-индексированное, номер строки.

command

Дополнительный член, присутствующий, когда узел представляет вызов команды в файле. Значение — целое беззнаковое число, 0-индексированное, в массиве обратных следов commands.

parent

Дополнительный член, присутствующий, когда узел не является последним в стеке вызовов. Значение — целое беззнаковое число, 0-индексированное, индекс другой записи в массиве обратных следов nodes.

commands

JSON-массив, перечисляющий имена команд, на которые ссылаются узлы обратных следов. Каждая запись — строка, определяющая имя команды.

files

JSON-массив, перечисляющий файлы CMake языка, на которые ссылаются узлы обратных следов. Каждая запись — строка, определяющая путь к файлу, представленный с помощью слешей. Если файл находится в каталоге исходного кода верхнего уровня, путь задается относительно этого каталога. В противном случае путь абсолютный.

Тип объекта "cache"

Объект типа cache содержит список записей кэша. Это переменные, хранящиеся в постоянном кэше (CMakeCache.txt) для дерева сборки.

Существует только одна главная версия объекта cache, версия 2. Версия 1 не существует, чтобы избежать путаницы с версией из режима cmake-server(7).

"cache" версия 2

Объект cache версии 2 — JSON-объект:

{
  "kind": "cache",
  "version": { "major": 2, "minor": 0 },
  "entries": [
    {
      "name": "BUILD_SHARED_LIBS",
      "value": "ON",
      "type": "BOOL",
      "properties": [
        {
          "name": "HELPSTRING",
          "value": "Build shared libraries"
        }
      ]
    },
    {
      "name": "CMAKE_GENERATOR",
      "value": "Unix Makefiles",
      "type": "INTERNAL",
      "properties": [
        {
          "name": "HELPSTRING",
          "value": "Name of generator."
        }
      ]
    }
  ]
}

Члены, специфичные для объектов cache, следующие:

entries

JSON-массив, записи которого являются JSON-объектами, определяющими запись кэша. Члены каждой записи:

name

Строка, определяющая имя записи.

value

Строка, определяющая значение записи.

type

Строка, определяющая тип записи, используемый cmake-gui(1) для выбора виджета редактирования.

properties

JSON-массив, содержащий записи, определяющие связанные свойства записи кэша. Каждая запись — JSON-объект, содержащий члены:

name

Строка, определяющая имя свойства записи кэша.

value

Строка, определяющая значение свойства записи кэша.

Тип объекта "cmakeFiles"

Объект типа cmakeFiles перечисляет файлы, используемые CMake при конфигурации и генерации системы сборки. Они включают файлы CMakeLists.txt и включенные файлы .cmake.

Существует только одна основная версия объекта cmakeFiles, версия 1.

"cmakeFiles" версия 1

Объект cmakeFiles версии 1 представляет собой JSON-объект:

{
  "kind": "cmakeFiles",
  "version": { "major": 1, "minor": 0 },
  "paths": {
    "build": "/path/to/top-level-build-dir",
    "source": "/path/to/top-level-source-dir"
  },
  "inputs": [
    {
      "path": "CMakeLists.txt"
    },
    {
      "isGenerated": true,
      "path": "/path/to/top-level-build-dir/.../CMakeSystem.cmake"
    },
    {
      "isExternal": true,
      "path": "/path/to/external/third-party/module.cmake"
    },
    {
      "isCMake": true,
      "isExternal": true,
      "path": "/path/to/cmake/Modules/CMakeGenericSystem.cmake"
    }
  ]
}

Члены, специфичные для объектов cmakeFiles, это:

paths

JSON-объект, содержащий члены:

source

Строка, определяющая абсолютный путь к каталогу исходных файлов верхнего уровня, представленный с помощью слешей.

build

Строка, определяющая абсолютный путь к каталогу сборки верхнего уровня, представленный с помощью слешей.

inputs

JSON-массив, чьи элементы — каждый JSON-объект, описывающий входной файл, используемый CMake при конфигурации и генерации системы сборки. Члены каждого элемента:

path

Строка, определяющая путь к входному файлу для CMake, представленный с помощью слешей. Если файл находится внутри каталога исходных файлов верхнего уровня, путь задается относительно этого каталога. В противном случае путь является абсолютным.

isGenerated

Необязательный член, присутствующий со значением булевого типа true, если путь указывает на файл, находящийся в каталоге сборки верхнего уровня, и сборка выполняется вне исходного каталога. Этот член недоступен при сборке в исходном каталоге.

isExternal

Необязательный член, присутствующий со значением булевого типа true, если путь указывает на файл, не находящийся в каталогах исходных файлов или сборки верхнего уровня.

isCMake

Необязательный член, присутствующий со значением булевого типа true, если путь указывает на файл в установке CMake.

Тип объекта "toolchains"

Объект типа toolchains перечисляет свойства используемых при сборке инструментальных цепочек. Они включают язык, путь к компилятору, идентификатор и версию.

Существует только одна основная версия объекта toolchains, версия 1.

"toolchains" версия 1

Объект toolchains версии 1 представляет собой JSON-объект:

{
  "kind": "toolchains",
  "version": { "major": 1, "minor": 0 },
  "toolchains": [
    {
      "language": "C",
      "compiler": {
        "path": "/usr/bin/cc",
        "id": "GNU",
        "version": "9.3.0",
        "implicit": {
          "includeDirectories": [
            "/usr/lib/gcc/x86_64-linux-gnu/9/include",
            "/usr/local/include",
            "/usr/include/x86_64-linux-gnu",
            "/usr/include"
          ],
          "linkDirectories": [
            "/usr/lib/gcc/x86_64-linux-gnu/9",
            "/usr/lib/x86_64-linux-gnu",
            "/usr/lib",
            "/lib/x86_64-linux-gnu",
            "/lib"
          ],
          "linkFrameworkDirectories": [],
          "linkLibraries": [ "gcc", "gcc_s", "c", "gcc", "gcc_s" ]
        }
      },
      "sourceFileExtensions": [ "c", "m" ]
    },
    {
      "language": "CXX",
      "compiler": {
        "path": "/usr/bin/c++",
        "id": "GNU",
        "version": "9.3.0",
        "implicit": {
          "includeDirectories": [
            "/usr/include/c++/9",
            "/usr/include/x86_64-linux-gnu/c++/9",
            "/usr/include/c++/9/backward",
            "/usr/lib/gcc/x86_64-linux-gnu/9/include",
            "/usr/local/include",
            "/usr/include/x86_64-linux-gnu",
            "/usr/include"
          ],
          "linkDirectories": [
            "/usr/lib/gcc/x86_64-linux-gnu/9",
            "/usr/lib/x86_64-linux-gnu",
            "/usr/lib",
            "/lib/x86_64-linux-gnu",
            "/lib"
          ],
          "linkFrameworkDirectories": [],
          "linkLibraries": [
            "stdc++", "m", "gcc_s", "gcc", "c", "gcc_s", "gcc"
          ]
        }
      },
      "sourceFileExtensions": [
        "C", "M", "c++", "cc", "cpp", "cxx", "mm", "CPP"
      ]
    }
  ]
}

Члены, специфичные для объектов toolchains, это:

toolchains

JSON-массив, чьи элементы — каждый JSON-объект, описывающий инструментальную цепочку, связанную с определённым языком. Члены каждого элемента:

language

JSON-строка, определяющая язык инструментальной цепочки, например, C или CXX. Имена языков совпадают с именами языков, которые можно передать команде project(). Поскольку CMake поддерживает только одну инструментальную цепочку на язык, это поле можно использовать в качестве ключа.

compiler

JSON-объект, содержащий члены:

path

Необязательный член, присутствующий, когда переменная CMAKE_<LANG>_COMPILER определена для текущего языка. Его значение — JSON-строка, содержащая путь к компилятору.

id

Необязательный член, присутствующий, когда переменная CMAKE_<LANG>_COMPILER_ID определена для текущего языка. Его значение — JSON-строка, содержащая идентификатор (GNU, MSVC и т. д.) компилятора.

version

Необязательный член, присутствующий, когда переменная CMAKE_<LANG>_COMPILER_VERSION определена для текущего языка. Его значение — JSON-строка, содержащая версию компилятора.

target

Необязательный член, присутствующий, когда переменная CMAKE_<LANG>_COMPILER_TARGET определена для текущего языка. Его значение — JSON-строка, содержащая целевой объект кросс-компиляции компилятора.

implicit

JSON-объект, содержащий члены:

includeDirectories

Необязательный член, присутствующий, когда переменная CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES определена для текущего языка. Его значение — JSON-массив JSON-строк, где каждая строка содержит путь к неявной директории включения для компилятора.

linkDirectories

Необязательный член, присутствующий, когда переменная CMAKE_<LANG>_IMPLICIT_LINK_DIRECTORIES определена для текущего языка. Его значение — JSON-массив JSON-строк, где каждая строка содержит путь к неявной директории линковки для компилятора.

linkFrameworkDirectories

Необязательный член, присутствующий, когда переменная CMAKE_<LANG>_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES определена для текущего языка. Его значение — JSON-массив JSON-строк, где каждая строка содержит путь к неявной директории линковки фреймворков для компилятора.

linkLibraries

Необязательный член, присутствующий, когда переменная CMAKE_<LANG>_IMPLICIT_LINK_LIBRARIES определена для текущего языка. Его значение — JSON-массив JSON-строк, где каждая строка содержит путь к неявной библиотеке линковки для компилятора.

sourceFileExtensions

Необязательный член, присутствующий, когда переменная CMAKE_<LANG>_SOURCE_FILE_EXTENSIONS определена для текущего языка. Его значение — JSON-массив JSON-строк, где каждая строка содержит расширение файла (без ведущей точки) для языка.

© 2000–2022 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.25/manual/cmake-file-api.7.html

Spec-Zone.ru

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