Skip to content

Instantly share code, notes, and snippets.

@armarti
Created December 12, 2018 12:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save armarti/aa92ddf6abe2cdacdab98f4aa2c67994 to your computer and use it in GitHub Desktop.
Save armarti/aa92ddf6abe2cdacdab98f4aa2c67994 to your computer and use it in GitHub Desktop.
Copy of CMakeSettings_schema.json installed with Visual Studio 2017
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"environments": {
"type": "array",
"description": "A list of “environment” groups that contain key value pairs defining variables that are applied to each configuration in a the CMakeSettings.json.",
"items": {
"type": "object",
"properties": {
"namespace": {
"type": "string",
"description": "A way to categorize a list of “environment” groups. Allows it to be referenced later. Example: ‘env’ which would be referenced later as ‘env.variablename’. Default is ‘env’ if not specified."
},
"environment": {
"type": "string",
"description": "A unique identifier for this group of variables. Allows the group to be inherited later in an 'inheritEnvironments' entry."
},
"groupPriority": {
"type": "integer",
"description": "The priority of these variables when evaluating them. Higher number items are evaluated first."
},
"inheritEnvironments": {
"type": "array",
"description": "_A set of environments that are inherited by this group. \r\nAny custom environment can be used, or these predefined environments:\r\nlinux_arm: Target ARM Linux remotely.\r\nlinux_x64: Target x64 Linux remotely.\r\nlinux_x86: Target x86 Linux remotely.\r\nmsvc_arm: Target ARM Windows with the MSVC compiler.\r\nmsvc_arm_x64: Target ARM Windows with the 64-bit MSVC compiler.\r\nmsvc_arm64: Target ARM64 Windows with the MSVC compiler.\r\nmsvc_arm64_x64: Target ARM64 Windows with the 64-bit MSVC compiler.\r\nmsvc_x64: Target x64 Windows with the MSVC compiler.\r\nmsvc_x64_x64: Target x64 Windows with the 64-bit MSVC compiler.\r\nmsvc_x86: Target x86 Windows with the MSVC compiler.\r\nmsvc_x86_x64: Target x86 Windows with the 64-bit MSVC compiler.",
"items": {
"anyOf": [
{
"type": "string",
"enum": ["linux_arm", "linux_x64", "linux_x86", "msvc_arm", "msvc_arm_x64", "msvc_arm64", "msvc_arm64_x64", "msvc_x64", "msvc_x64_x64", "msvc_x86", "msvc_x86_x64"]
},
{
"type": "string"
}
]
}
}
}
}
},
"configurations": {
"type": "array",
"description": "A list of CMake configurations that apply to the CMakeLists.txt file in the same folder.",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The configuration name."
},
"description": {
"type": "string",
"description": "Description of this configuration"
},
"generator": {
"type": "string",
"description": "The CMake generator name. Example: Visual Studio 15 2017.",
"enum": [
"Visual Studio 15 2017",
"Visual Studio 15 2017 Win64",
"Visual Studio 15 2017 ARM",
"Visual Studio 14 2015",
"Visual Studio 14 2015 Win64",
"Visual Studio 14 2015 ARM",
"Unix Makefiles",
"Ninja"
]
},
"configurationType": {
"type": "string",
"description": "Specifies build type configuration for the selected generator.",
"enum": [
"Debug",
"Release",
"MinSizeRel",
"RelWithDebInfo"
]
},
"inheritEnvironments": {
"type": "array",
"description": "_The environments this configuration depends on. \r\nAny custom environment can be used, or these predefined environments:\r\nlinux_arm: Target ARM Linux remotely.\r\nlinux_x64: Target x64 Linux remotely.\r\nlinux_x86: Target x86 Linux remotely.\r\nmsvc_arm: Target ARM Windows with the MSVC compiler.\r\nmsvc_arm_x64: Target ARM Windows with the 64-bit MSVC compiler.\r\nmsvc_arm64: Target ARM64 Windows with the MSVC compiler.\r\nmsvc_arm64_x64: Target ARM64 Windows with the 64-bit MSVC compiler.\r\nmsvc_x64: Target x64 Windows with the MSVC compiler.\r\nmsvc_x64_x64: Target x64 Windows with the 64-bit MSVC compiler.\r\nmsvc_x86: Target x86 Windows with the MSVC compiler.\r\nmsvc_x86_x64: Target x86 Windows with the 64-bit MSVC compiler.",
"items": {
"anyOf": [
{
"type": "string",
"enum": ["linux_arm", "linux_x64", "linux_x86", "msvc_arm", "msvc_arm_x64", "msvc_arm64", "msvc_arm64_x64", "msvc_x64", "msvc_x64_x64", "msvc_x86", "msvc_x86_x64"]
},
{
"type": "string"
}
]
}
},
"buildRoot": {
"type": "string",
"description": "The directory in which CMake generates build scripts for the chosen generator. Supported macros include ${workspaceRoot}, ${workspaceHash}, ${projectFile}, ${projectDir}, ${thisFile}, ${thisFileDir}, ${name}, ${generator}, ${env.VARIABLE}."
},
"installRoot": {
"type": "string",
"description": "The directory in which CMake generates install targets for the chosen generator. Supported macros include ${workspaceRoot}, ${workspaceHash}, ${projectFile}, ${projectDir}, ${thisFile}, ${thisFileDir}, ${name}, ${generator}, ${env.VARIABLE}."
},
"cmakeCommandArgs": {
"type": "string",
"description": "Additional command line options passed to CMake when invoked to generate the cache."
},
"buildCommandArgs": {
"type": "string",
"description": "Native build switches passed to CMake after --build --."
},
"ctestCommandArgs": {
"type": "string",
"description": "Additional command line options passed to CTest when running the tests."
},
"codeAnalysisRuleset": {
"type": "string",
"description": "Ruleset to use when running code analysis. This can be a full path or the file name of a ruleset file installed by Visual Studio."
},
"intelliSenseMode": {
"type": "string",
"description": "Mode used for computing intellisense information",
"enum": [
"windows-msvc-x86",
"windows-msvc-x64",
"windows-msvc-arm",
"windows-msvc-arm64",
"android-clang-x86",
"android-clang-x64",
"android-clang-arm",
"android-clang-arm64",
"ios-clang-x86",
"ios-clang-x64",
"ios-clang-arm",
"ios-clang-arm64",
"windows-clang-x86",
"windows-clang-x64",
"windows-clang-arm",
"windows-clang-arm64",
"linux-gcc-x86",
"linux-gcc-x64",
"linux-gcc-arm"
]
},
"remoteMachineName": {
"type": "string",
"description": "The remote Linux machine name which hosts CMake, builds and debugging. Please use the Connection Manager for adding new Linux machines. Supported macros include ${defaultRemoteMachineName}."
},
"remoteCopySourcesOutputVerbosity": {
"type": "string",
"description": "The verbosity level of the source copying operation to the remote machine.",
"enum": [
"Normal",
"Verbose",
"Diagnostic"
]
},
"remoteCopySourcesConcurrentCopies": {
"type": "string",
"description": "The number of concurrent copies used during the synchronization of the sources to the remote machine."
},
"remoteCopySourcesMethod": {
"type": "string",
"description": "The method to copy files to the remote machine: rsync, sftp.",
"enum": [
"sftp",
"rsync"
]
},
"remoteCMakeListsRoot": {
"type": "string",
"description": "The directory on the remote machine which contains the CMake project. Supported macros include ${workspaceRoot}, ${workspaceHash}, ${projectFile}, ${projectDir}, ${thisFile}, ${thisFileDir}, ${name}, ${generator}, ${env.VARIABLE}."
},
"remoteBuildRoot": {
"type": "string",
"description": "The directory on the remote machine in which CMake generates build scripts for the chosen generator. Supported macros include ${workspaceRoot}, ${workspaceHash}, ${projectFile}, ${projectDir}, ${thisFile}, ${thisFileDir}, ${name}, ${generator}, ${env.VARIABLE}."
},
"remoteInstallRoot": {
"type": "string",
"description": "Default true, Visual Studio will copy sources to the remote. Set to false if you manage file synchronization yourself."
},
"remoteCopySources": {
"type": "boolean",
"description": "The full path to the CMake program executable, including the file name and extension."
},
"remoteCopyBuildOutput": {
"type": "boolean",
"description": "Specifies whether to copy the build outputs from the remote system."
},
"rsyncCommandArgs": {
"type": "string",
"description": "Set of additional command line options passed to rsync."
},
"remoteCopySourcesExclusionList": {
"type": "array",
"description": "A list of paths to be excluded when copying source files: a path can be the name of a file/directory, or a path relative to root of the copy. Wildcards \\\"*\\\" and \\\"?\\\" can be used for glob pattern matching."
},
"cmakeExecutable": {
"type": "string",
"description": "The directory on the remote machine in which CMake generates install targets for the chosen generator. Supported macros include ${workspaceRoot}, ${workspaceHash}, ${projectFile}, ${projectDir}, ${thisFile}, ${thisFileDir}, ${name}, ${generator}, ${env.VARIABLE}."
},
"remotePreGenerateCommand": {
"type": "string",
"description": "The command to run before running CMake to parse the CMakeLists.txt."
},
"remotePrebuildCommand": {
"type": "string",
"description": "Command to run on remote machine before building."
},
"remotePostbuildCommand": {
"type": "string",
"description": "Command to run on remote machine after building."
},
"variables": {
"type": "array",
"description": "A list of CMake variables. The name value pairs are passed to CMake as -Dname1=value1 -Dname2=value2, etc.",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The variable name."
},
"value": {
"type": "string",
"description": "The variable value."
}
},
"required": [
"name",
"value"
]
}
},
"environments": {
"type": "array",
"description": "A list of “environment” groups that contain key value pairs defining variables that are applied to this configuration in the CMakeSettings.json.",
"items": {
"type": "object",
"properties": {
"namespace": {
"type": "string",
"description": "A unique identifier for the set of variables. Allows it to be referenced later. Example: ‘env’ which would be referenced later as ‘env.variablename’. Default is ‘env’ if not specified."
},
"environment": {
"type": "string",
"description": "A unique identifier for this group of variables. Allows the group to be inherited later in an 'inheritEnvironments' entry."
},
"groupPriority": {
"type": "integer",
"description": "The priority of these variables when evaluating them. Higher number items are evaluated first."
},
"inheritEnvironments": {
"type": "array",
"description": "_A set of environments that are inherited by this group. \r\nAny custom environment can be used, or these predefined environments:\r\nlinux_arm: Target ARM Linux remotely.\r\nlinux_x64: Target x64 Linux remotely.\r\nlinux_x86: Target x86 Linux remotely.\r\nmsvc_arm: Target ARM Windows with the MSVC compiler.\r\nmsvc_arm_x64: Target ARM Windows with the 64-bit MSVC compiler.\r\nmsvc_arm64: Target ARM64 Windows with the MSVC compiler.\r\nmsvc_arm64_x64: Target ARM64 Windows with the 64-bit MSVC compiler.\r\nmsvc_x64: Target x64 Windows with the MSVC compiler.\r\nmsvc_x64_x64: Target x64 Windows with the 64-bit MSVC compiler.\r\nmsvc_x86: Target x86 Windows with the MSVC compiler.\r\nmsvc_x86_x64: Target x86 Windows with the 64-bit MSVC compiler.",
"items": {
"anyOf": [
{
"type": "string",
"enum": ["linux_arm", "linux_x64", "linux_x86", "msvc_arm", "msvc_arm_x64", "msvc_arm64", "msvc_arm64_x64", "msvc_x64", "msvc_x64_x64", "msvc_x86", "msvc_x86_x64"]
},
{
"type": "string"
}
]
}
}
},
"additionalProperties": { "type": "string" },
"minProperties": 1
}
}
},
"additionalProperties": false
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment