Partilhar via


Personalizar as configurações de compilação do CMake

O Visual Studio usa um arquivo de configuração do CMake para gerar e compilar o CMake. CMakePresets.json é suportado pelo Visual Studio 2019 versão 16.10 ou posterior e é o arquivo de configuração CMake recomendado. CMakePresets.json é suportado diretamente pelo CMake e pode ser usado para impulsionar a geração e compilação do CMake a partir do Visual Studio, do VS Code, em um pipeline de Integração Contínua e da linha de comando no Windows, Linux e Mac. Para obter mais informações sobre CMakePresets.json, consulte Configurar e construir com predefinições do CMake.

Se você mantiver projetos que usam um arquivo para configuração de CMakeSettings.json compilação do CMake, o Visual Studio 2019 e versões posteriores fornecerão um editor de configurações do CMake. O editor permite que você adicione configurações CMake e personalizar suas configurações facilmente. Pretende-se que seja uma alternativa mais simples à edição manual do CMakeSettings.json ficheiro. No entanto, se preferir editar o arquivo diretamente, você pode selecionar o link Editar JSON no canto superior direito do editor.

Para abrir o editor de configurações do CMake, selecione a lista suspensa Configuração na barra de ferramentas principal e escolha Gerenciar configurações.

Captura de tela da lista suspensa de configuração do CMake. Gerenciar configurações é realçado.

Agora você vê o Editor de configurações com as configurações instaladas à esquerda.

Captura de tela do editor de configurações do CMake.

O painel esquerdo mostra as configurações instaladas (x86-Debug). O painel direito mostra as configurações para a configuração selecionada. As definições incluem o nome da configuração, o tipo de configuração (definido como Debug), o conjunto de ferramentas (definido como msvc_x86), o arquivo da cadeia de ferramentas CMake (vazio), a raiz da compilação (contém ${env:USERPROFILE}\CMakeBuilds\${workspaceHash}\build\${name}), os argumentos do comando CMake (vazio) e os argumentos do comando build (-v).

Visual Studio fornece uma x64-Debug configuração por padrão. Você pode adicionar mais configurações escolhendo o sinal de adição verde. As configurações que você vê no editor podem variar dependendo da configuração selecionada.

As opções escolhidas no editor são gravadas em um arquivo chamado CMakeSettings.json. Esse arquivo fornece argumentos de linha de comando e variáveis de ambiente que são passados para o CMake quando você cria os projetos. O Visual Studio nunca se modifica CMakeLists.txt automaticamente, usando CMakeSettings.json você pode personalizar a compilação através do Visual Studio enquanto deixa os arquivos de projeto CMake intocados para que outros em sua equipe possam consumi-los com quaisquer ferramentas que estejam usando.

Configurações gerais do CMake

As seguintes configurações estão disponíveis no título Geral :

Nome da configuração

Corresponde à configuração de nome . Esse nome aparece na lista suspensa de configuração C++. Você pode usar a ${name} macro para compor outros valores de propriedade, como caminhos.

Tipo de configuração

Corresponde à configuração configurationType . Define o tipo de configuração de compilação para o gerador selecionado. Atualmente, os valores suportados são Debug, MinSizeRel, Release e RelWithDebInfo. Ele mapeia para CMAKE_BUILD_TYPE.

Conjunto de ferramentas

Corresponde à configuração inheritedEnvironments . Define o ambiente do compilador que é usado para criar a configuração selecionada. Os valores suportados dependem do tipo de configuração. Para criar um ambiente personalizado, escolha o link Editar JSON no canto superior direito do editor de Configurações e edite o CMakeSettings.json arquivo diretamente.

Arquivo da cadeia de ferramentas CMake

Caminho para o arquivo da cadeia de ferramentas CMake. Este caminho é passado para CMake como "-DCMAKE_TOOLCHAIN_FILE = <filepath>. Os arquivos da cadeia de ferramentas especificam locais de compiladores e utilitários da cadeia de ferramentas, além de outras informações relacionadas à plataforma de destino e ao compilador. Por padrão, o Visual Studio usa o arquivo da cadeia de ferramentas vcpkg se essa configuração não for especificada.

Construir raiz

Corresponde a buildRoot. Mapeia para CMAKE_BINARY_DIRe especifica onde criar o cache CMake. A pasta especificada é criada se não existir.

Argumentos de comando

As seguintes configurações estão disponíveis no título Argumentos de comando :

Argumentos do comando CMake

Corresponde a cmakeCommandArgs. Especifica mais opções de linha de comando passadas para o CMake.

Criar argumentos de comando

Corresponde a buildCommandArgs. Especifica mais opções a serem passadas para o sistema de compilação subjacente. Por exemplo, passar -v ao usar o gerador Ninja força o Ninja a emitir linhas de comando.

Argumentos do comando CTest

Corresponde a ctestCommandArgs. Especifica mais opções de linha de comando para passar para CTest ao executar testes.

Configurações gerais para compilações remotas

Para configurações como Linux que usam compilações remotas, as seguintes configurações também estão disponíveis:

rsync argumentos de comando

Opções de linha de comando extras passadas para rsync, uma ferramenta de cópia de arquivos rápida e versátil.

Variáveis CMake e cache

Essas configurações permitem que você defina variáveis CMake e salve-as no CMakeSettings.json. Eles são passados para o CMake no momento da compilação e substituem CMakeLists.txt quaisquer valores que estejam no arquivo. Você pode usar esta seção da mesma forma que você pode usar o CMakeGUI para exibir uma lista de todas as variáveis CMake disponíveis para edição. Escolha o botão Salvar e gerar cache para visualizar uma lista de todas as variáveis CMake disponíveis para edição, incluindo variáveis avançadas (de acordo com o CMakeGUI). Você pode filtrar a lista por nome de variável.

Corresponde a variáveis. Contém um par nome-valor de variáveis CMake passadas como -D name=value para CMake. Se as instruções de construção do seu projeto CMake especificarem a adição de quaisquer variáveis diretamente ao arquivo de cache do CMake, recomendamos que você as adicione aqui.

Configurações avançadas

Gerador CMake

Corresponde ao gerador. Mapeia para o switch CMake -G e especifica o gerador CMake a ser usado. Esta propriedade também pode ser usada como uma macro, ${generator}, ao compor outros valores de propriedade. Visual Studio atualmente suporta os seguintes geradores CMake:

  • "Ninja"
  • Unix Makefiles
  • "Visual Studio 16 2019"
  • "Visual Studio 16 2019 Win64"
  • "Visual Studio 16 2019 ARM"
  • "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"

Como o Ninja foi projetado para velocidades de construção rápidas em vez de flexibilidade e função, ele é definido como padrão. No entanto, alguns projetos CMake podem ser incapazes de construir corretamente usando Ninja. Se isso ocorrer, você pode instruir CMake para gerar um projeto do Visual Studio em vez disso.

Modo IntelliSense

O modo IntelliSense usado pelo mecanismo IntelliSense. Se nenhum modo for selecionado, o Visual Studio herdará o modo do conjunto de ferramentas especificado.

Diretório de instalação

O diretório no qual o CMake instala destinos. Mapeia para CMAKE_INSTALL_PREFIX.

CMake executável

O caminho completo para o executável do programa CMake, incluindo o nome do arquivo e a extensão. Ele permite que você use uma versão personalizada do CMake com o Visual Studio. Para compilações remotas, especifique o local do CMake na máquina remota.

Para configurações como Linux que usam compilações remotas, as seguintes configurações também estão disponíveis:

Raiz CMakeLists.txt remota

O diretório na máquina remota que contém o arquivo raiz CMakeLists.txt .

Raiz de instalação remota

O diretório na máquina remota na qual o CMake instala destinos. Mapeia para CMAKE_INSTALL_PREFIX.

Fontes de cópia remotas

Especifica se os arquivos de origem devem ser copiados para a máquina remota e permite especificar se deseja usar rsync ou sftp.

Editar diretamente CMakeSettings.json

Você também pode editar CMakeSettings.json diretamente para criar configurações personalizadas. O Editor de configurações tem um botão Editar JSON no canto superior direito que abre o arquivo para edição.

O exemplo a seguir mostra uma configuração de exemplo, que você pode usar como ponto de partida:

    {
      "name": "x86-Debug",
      "generator": "Ninja",
      "configurationType": "Debug",
      "inheritEnvironments": [ "msvc_x86" ],
      "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
      "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
      "cmakeCommandArgs": "",
      "buildCommandArgs": "-v",
      "ctestCommandArgs": ""
    },

JSON IntelliSense ajuda você a editar o CMakeSettings.json arquivo:

Captura de tela do pop-up CMake JSON IntelliSense no editor.

O editor JSON também informa quando você escolhe configurações incompatíveis.

Para obter mais informações sobre cada uma das propriedades no arquivo, consulte CMakeSettings.json referência de esquema.

O Visual Studio 2017 fornece várias configurações do CMake que definem como o CMake é invocado para criar o cache do CMake para um determinado projeto. Para adicionar uma nova configuração, selecione a lista suspensa de configuração na barra de ferramentas e escolha Gerenciar configurações:

Captura de ecrã de Gerir configurações selecionada no menu pendente.

Você pode escolher na lista de configurações predefinidas:

Adicionar configuração à lista de diálogo Configurações do CMake de configurações predefinidas.

Na primeira vez que você seleciona uma configuração, o Visual Studio cria um CMakeSettings.json arquivo na pasta raiz do projeto. Esse arquivo é usado para recriar o arquivo de cache CMake, por exemplo, após uma operação Limpar .

Para adicionar outra configuração, clique com o CMakeSettings.json botão direito do mouse e escolha Adicionar configuração.

Captura de ecrã do menu de atalho com Adicionar configuração selecionada.

Você também pode editar o arquivo usando o CMake Settings Editor. Clique com o botão direito do CMakeSettings.json mouse no Gerenciador de Soluções e escolha Editar Configurações do CMake. Ou selecione Gerenciar configurações na lista suspensa de configuração na parte superior da janela do editor.

Você também pode editar CMakeSettings.json diretamente para criar configurações personalizadas. O exemplo a seguir mostra uma configuração de exemplo, que você pode usar como ponto de partida:

    {
      "name": "x86-Debug",
      "generator": "Ninja",
      "configurationType": "Debug",
      "inheritEnvironments": [ "msvc_x86" ],
      "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
      "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
      "cmakeCommandArgs": "",
      "buildCommandArgs": "-v",
      "ctestCommandArgs": ""
    },

JSON IntelliSense ajuda você a editar o CMakeSettings.json arquivo:

Captura de tela do pop-up CMake JSON IntelliSense no editor.

O pop-up JSON IntelliSense para "configurações" mostra buildCommandArgs, buildRoot, cmakeCommandArgs, configurationType, entre vários outros.

Para obter mais informações sobre cada uma das propriedades no arquivo, consulte CMakeSettings.json Referência de esquema.

Ver também

Projetos CMake no Visual Studio
Configurar um projeto CMake Linux
Conecte-se ao seu computador Linux remoto
Configurar sessões de depuração do CMake
Implante, execute e depure seu projeto Linux
Referência de configuração predefinida do CMake