Partilhar via


Projetos CMake no Visual Studio

CMake é uma ferramenta multiplataforma e de código aberto para definir processos de construção que são executados em várias plataformas. Este artigo pressupõe que você esteja familiarizado com o CMake. Para obter mais informações sobre o CMake, consulte a documentação do CMake. O tutorial do CMake é um bom ponto de partida para aprender mais.

Observação

O CMake tornou-se cada vez mais integrado ao Visual Studio nas últimas versões. Para ver a documentação da sua versão preferida do Visual Studio, use o controlador de seleção Versão . Encontra-se na parte superior do índice desta página.

O suporte nativo do Visual Studio para CMake permite editar, compilar e depurar projetos CMake no Windows, no Subsistema Windows para Linux (WSL) e em sistemas remotos da mesma instância do Visual Studio. Os arquivos de projeto CMake (como CMakeLists.txt) são consumidos diretamente pelo Visual Studio para fins de IntelliSense e navegação. cmake.exe é invocado diretamente pelo Visual Studio para configuração e compilação do CMake.

Instalação

C++ CMake tools for Windows é instalado como parte das cargas de trabalho de desenvolvimento Desktop com C++ e Linux Development com C++. As ferramentas C++ CMake para Windows e Linux Development with C++ são necessárias para o desenvolvimento CMake multiplataforma.

Captura de tela do instalador do Visual Studio.

No instalador, o menu suspenso Desenvolvimento de desktop com C mais mais é selecionado e as ferramentas CMake para Windows são selecionadas.

Para obter mais informações, consulte Instalar a carga de trabalho do Linux C++ no Visual Studio.

Integração IDE

Quando você abrir uma pasta contendo um arquivo CMakeLists.txt, as seguintes coisas acontecem.

Captura de tela da primeira caixa de diálogo que é aberta quando o Visual Studio é iniciado.

A caixa de diálogo oferece estas opções: clonar um repositório, abrir um projeto ou solução, abrir uma pasta local ou criar um novo projeto. Abrir uma pasta local é chamado na captura de tela.

  • O Visual Studio adiciona itens do CMake ao menu do Project, com comandos para exibir e editar scripts CMake.

  • O Gerenciador de Soluções exibe a estrutura de pastas e os arquivos.

  • O Visual Studio executa o CMake e gera o arquivo de cache do CMake (CMakeCache.txt) para a configuração padrão. A linha de comando do CMake é exibida na janela de saída , juntamente com outros resultados do CMake.

  • Em segundo plano, o Visual Studio começa a indexar os arquivos de origem para habilitar o IntelliSense, informações de navegação, refatoração e assim por diante. À medida que você trabalha, o Visual Studio monitora as alterações no editor e também no disco para manter seu índice sincronizado com as fontes.

Observação

A partir do Visual Studio 2022 versão 17.1 Preview 2, se sua CMakeLists.txt de nível superior existir em uma subpasta e não na raiz do espaço de trabalho, você será perguntado se deseja habilitar a integração do CMake ou não. Para obter mais informações, consulte ativação parcial do CMake.

Depois que a geração de cache do CMake for bem-sucedida, você também poderá visualizar seus projetos organizados logicamente por destinos. Escolha o botão Selecionar Exibição na barra de ferramentas Gerenciador de Soluções. Na lista no Explorador de Soluções - Vistas, selecione Vista de Alvos CMake e pressione Enter para abrir a vista de alvos:

Captura de ecrã da janela Vistas do Solution Explorer. A vista de pasta está aberta. A opção C Make Targets View está realçada.

Escolha o botão Mostrar Todos os Arquivos na parte superior do Gerenciador de Soluções para ver toda a saída gerada pelo CMake nas pastas out/build/<config>.

Use o arquivo CMakeLists.txt em cada pasta do projeto como faria em qualquer projeto CMake. Você pode especificar arquivos de origem, localizar bibliotecas, definir opções de compilador e vinculador e especificar outras informações relacionadas ao sistema de compilação. Para obter mais informações sobre os serviços de linguagem CMake fornecidos pelo Visual Studio, consulte Editando arquivos CMakeLists.txt.

O Visual Studio usa um arquivo de configuração do CMake para gerar e compilar o cache do CMake. Para obter mais informações, consulte Configurando projetos CMake e Construindo projetos CMake.

Para passar argumentos para um executável no momento da depuração, você pode usar outro arquivo chamado launch.vs.json. Para obter mais informações sobre como depurar projetos CMake multiplataforma no Visual Studio, consulte Depurar projetos CMake.

A maioria dos recursos de linguagem Visual Studio e C++ são suportados por projetos CMake no Visual Studio. Os exemplos incluem:

Observação

Para outros tipos de projetos Open Folder, um arquivo JSON adicional CppProperties.json é usado. Este arquivo não é relevante para projetos CMake.

Configurando projetos CMake

A etapa de configuração do CMake gera o sistema de compilação do projeto. É equivalente a invocar cmake.exe da linha de comando. Para obter mais informações sobre a etapa de configuração do CMake, consulte a documentaçã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. CMakeSettings.json está disponível para clientes que usam uma versão anterior do Visual Studio. Para obter mais informações sobre CMakeSettings.json, consulte Personalizar configurações de compilação do CMake.

Quando você faz alterações significativas no arquivo de configuração do CMake ou em um arquivo CMakeLists.txt, o Visual Studio executará automaticamente a etapa de configuração do CMake. Você pode invocar a etapa de configuração manualmente: Selecione Projeto > Configurar Cache na barra de ferramentas. Você também pode alterar suas preferências de configuração no Ferramentas>Opções>CMake>General.

Captura de tela das opções de configuração do CMake na janela de configurações do Visual Studio.

As configurações do CMake são chamadas. Mostrar C Criar notificações de cache está selecionado. Em 'Quando o cache está desatualizado:', a opção 'Nunca executar a etapa de configuração automaticamente' está selecionada.

Se a etapa de configuração for concluída sem erros, as informações disponíveis direcionarão o C++ IntelliSense e os serviços de linguagem. Ele também é usado em operações de compilação e depuração.

Você também pode abrir um cache CMake existente no Visual Studio. Para obter mais informações, consulte Abrir um cache existente.

Personalizar comentários e notificações de configuração

Por padrão, a maioria das mensagens de configuração são suprimidas, a menos que haja um erro. Para ver todas as mensagens, selecione Ferramentas>Opções>CMake>Ativar saída detalhada de diagnóstico do CMake.

Você também pode desativar todas as notificações de cache CMake (barras douradas) desmarcando Mostrar notificação de cache CMake.

Personalizar destinos Exibir grupos de origem

Por padrão, o CMake Targets View ignora os seguintes grupos de origem: "Source Files", "Header Files", "Resources", "Object Files". Isso ocorre porque eles são incluídos por padrão na maioria dos projetos CMake e aumentaria desnecessariamente o número de cliques necessários para navegar na Visualização de destinos.

Habilite o uso desses grupos de origem habilitando Ferramentas>Opções>CMake>Habilite o uso de grupos de código-fonte ignorados no CMake Targets View.

Solução de problemas de erros de cache do CMake

Se você precisar de mais informações sobre o estado do cache do CMake para diagnosticar um problema, abra o menu principal do Project ou o menu de contexto CMakeLists.txt no Gerenciador de Soluções executar um destes comandos:

  • Exibir CMakeCache.txt abre o arquivo de CMakeCache.txt do diretório de compilação no editor. Todas as edições que você fizer aqui para CMakeCache.txt serão eliminadas se você limpar o cache. Para fazer alterações que persistem depois de limpar o cache, consulte Personalizar configurações do CMake ou Configurar e compilar com predefinições do CMake.

  • Excluir cache e reconfigurar exclui o diretório de compilação e reconfigura a partir de um cache limpo.

  • Configurar Cache força a etapa de geração a executar-se mesmo que o Visual Studio considere que o ambiente está atualizado.

Construindo projetos CMake

A etapa de construção do CMake cria uma árvore binária de projeto já gerada. É equivalente a invocar cmake --build da linha de comando. Para obter mais informações sobre a etapa de construção do CMake, consulte a documentação do CMake.

Para criar um projeto CMake, você tem estas opções:

  1. Na barra de ferramentas, localize o menu suspenso Item de Inicialização. Selecione o destino preferido e pressione F5ou escolha o botão Executar na barra de ferramentas. O projeto compila automaticamente primeiro, tal como uma solução do Visual Studio.

  2. Clique com o botão direito do mouse no alvo CMake com o CMake Targets View ativo no Gerenciador de Soluções e selecione Compilar no menu de contexto.

  3. No menu principal, selecione Build > Build All. Verifique se um alvo CMake já está selecionado na lista suspensa Item de Inicialização na barra de ferramentas.

Como seria de esperar, os resultados da compilação são mostrados no da Janela de Saída do e Lista de Erros.

Captura de ecrã da janela Lista de Erros do Visual Studio estão visíveis os avisos de build do CMake sobre conversões que podem resultar em perda de dados, como a conversão de um float para um inteiro. :::imagem-fim:::

Editar configurações de compilação

Visual Studio usa um arquivo de configuração CMake para conduzir compilações CMake. Os arquivos de configuração do CMake encapsulam opções de compilação, como opções de ferramentas de compilação nativas e variáveis de ambiente. Se CMakePresets.json for o seu ficheiro de configuração ativo, consulte Configurar e construir com presets do CMake. Se CMakeSettings.json for o arquivo de configuração ativo, consulte Personalizar as configurações de compilação do CMake. CMakePresets.json está disponível no Visual Studio 2019 versão 16.10 ou posterior e é o arquivo de configuração CMake recomendado.

Depurando projetos CMake

Todos os destinos executáveis do CMake são mostrados na lista suspensa Item de Inicialização na barra de ferramentas. Para iniciar a depuração, selecione um e pressione o botão Depurar > Iniciar Depuração na barra de ferramentas. Em um projeto CMake, a opção "Documento atual" só é válida para arquivos .cpp.

Captura de tela da lista suspensa de depuração do Visual Studio.

O menu suspenso tem estas opções: Mostrar / Ocultar destinos de depuração, documento atual, exemplos (que está realçado), box2d_tests e samples-noGUI.

Os comandos Debug ou F5 primeiro compilam o projeto se as alterações tiverem sido feitas desde a compilação anterior. Alterações no arquivo de configuração do CMake (CMakePresets.json ou CMakeSettings.json) ou um CMakeLists.txt faz com que o cache do CMake seja regenerado.

Você pode personalizar uma sessão de depuração do CMake definindo propriedades no arquivo launch.vs.json. Para personalizar as configurações de depuração para um destino específico, selecione o destino no menu suspenso Item de Inicialização e pressione Configurações de Depuração e Lançamento > para o <ativo-alvo>. Para obter mais informações sobre sessões de depuração do CMake, consulte Configurar sessões de depuração do CMake.

Just My Code para projetos CMake

Quando se cria para Windows usando o compilador MSVC, os projetos CMake têm suporte para o modo de depuração "Apenas Meu Código". Para alterar a configuração Apenas Meu Código, vá para Ferramentas>Opções>Depuração>Geral. Para obter mais informações sobre a depuração Just My Code, consulte Depure apenas o código do utilizador com Just My Code.

Editar e Continuar para projetos CMake

Quando você cria para Windows com o compilador MSVC, os projetos CMake têm suporte para Edit e Continue. Adicione o seguinte código ao seu arquivo CMakeLists.txt para habilitar Editar e continuar. Para obter mais informações sobre Editar e Continuar, consulte Configurar Editar e Continuar (C#, VB, C++).

if(MSVC)
  target_compile_options(<target> PUBLIC "/ZI")
  target_link_options(<target> PUBLIC "/INCREMENTAL")
endif()

Anexar a um projeto CMake em execução no Linux

O Visual Studio permite depurar um processo em execução em um sistema Linux remoto ou WSL e depurá-lo com o depurador GDB. Para começar, selecione Depurar>Anexar ao Processo..., defina o tipo de conexão como SSH, e selecione o alvo de conexão da lista de conexões no Gestor de Conexões. Selecione um processo na lista de processos disponíveis e pressione Anexar. GDB deve ser instalado em sua máquina Linux. Para obter mais informações sobre conexões SSH, consulte o Connection Manager

Captura de tela do menu Anexar ao processo no Visual Studio.

As seguintes opções estão disponíveis na caixa de diálogo: Tipo de conexão (definido como SSH), o destino da conexão (definido como demo@ 172. 20. 60. 6) e uma lista de processos disponíveis aos quais pode anexar."

Ativação parcial do CMake

No Visual Studio 2022 versão 17.1 e posterior, a funcionalidade CMake não será habilitada automaticamente se sua pasta raiz não contiver um arquivo CMakeLists.txt. Em vez disso, uma caixa de diálogo perguntará se você deseja habilitar a funcionalidade CMake para seu projeto. Se tu recusares, a geração de cache do CMake não será iniciada e as configurações do CMake (do CMakeSettings.json ou CMakePresets.json) não aparecerão na lista de configuração. Se você aceitar, será levado a um arquivo de configuração no nível do espaço de trabalho, CMakeWorkspaceSettings.json (armazenado no diretório .vs), para especificar as pastas para as quais deseja habilitar o CMake. (Estas pastas de arquivo contêm os seus ficheiros raiz CMakeLists.txt).

As propriedades aceitas são:

Propriedade Descrição
enableCMake Habilite a integração do Visual Studio para este espaço de trabalho.
sourceDirectory Uma cadeia de caracteres ou matriz de cadeias de caracteres especificando o diretório ou diretórios com CMakeLists.txt. Macros (como ${workspaceRoot}) são permitidas. Os caminhos relativos são baseados na raiz do espaço de trabalho. Os diretórios fora do espaço de trabalho atual serão ignorados.

Você pode acessar CMakeWorkspaceSettings.json através do comando de menu Project>CMake Workspace Settings a qualquer momento, mesmo que a funcionalidade CMake esteja desabilitada no momento.

Abrir um cache existente

Quando você abre um arquivo de cache CMake existente (CMakeCache.txt), o Visual Studio não tenta gerenciar seu cache e criar árvore para você. Suas ferramentas personalizadas ou preferidas têm controle total sobre como o CMake configura seu projeto.

Você pode adicionar um cache CMake existente a um projeto aberto. É feito da mesma forma que você adicionaria uma nova configuração. Para obter mais informações, consulte nossa postagem de blog sobre abrir um cache existente no Visual Studio.

Observação

A experiência de cache existente padrão depende do cmake-server, que foi removido do CMake na versão 3.20. Para continuar usando a funcionalidade de cache existente no Visual Studio 2019 versão 16.10 e posterior, execute uma destas etapas:

  • Instale manualmente o CMake versão 3.19 ou inferior. Em seguida, defina a propriedade cmakeExecutable em sua configuração de cache existente para usar essa versão do CMake.
  • Em sua configuração de cache existente, defina a propriedade cacheGenerationCommand para permitir que o Visual Studio solicite os arquivos de API baseados em arquivo CMake necessários. Para obter mais informações sobre essa propriedade, consulte a referência CMakeSettings.json.
  • Use um arquivo de consulta para solicitar os arquivos de API baseados em arquivo CMake ao gerar seu cache antes que ele seja aberto no Visual Studio. Para obter instruções sobre o ficheiro de consulta, veja a próxima secção, Solução avançada de problemas de cache CMake.

Solução de problemas avançados de cache CMake

O Visual Studio usa o CMake API baseada em arquivo (nas versões 3.14 e posteriores) para preencher o editor com informações específicas para a estrutura do projeto. Para mais informações, consulte a postagem no blog da equipa C++ sobre os espaços de trabalho multiraiz e a API baseada em ficheiros.

Antes de gerar o cache do CMake, suas ferramentas personalizadas ou preferidas podem precisar criar um arquivo de consulta chamado .cmake/api/v1/query/client-MicrosoftVS/query.json na pasta de saída da compilação (a pasta que contém CMakeCache.txt). O arquivo de consulta deve conter este conteúdo:

{"requests":[{"kind":"cache","version":2},{"kind":"cmakeFiles","version":1},{"kind":"codemodel","version":2}]}

Quando suas ferramentas personalizadas ou preferidas geram seu cache, o CMake coloca arquivos sob .cmake/api/v1/response que o Visual Studio usa para preencher o editor com informações específicas para sua estrutura de projeto.

Editando arquivos CMakeLists.txt

Para editar um arquivo CMakeLists.txt, clique com o botão direito do mouse no arquivo no Gerenciador de Soluções e escolha Abrir. Se você fizer alterações no arquivo, uma barra de status amarela será exibida informando que o IntelliSense será atualizado. Dá-lhe a oportunidade de cancelar a operação de atualização. Para obter informações sobre CMakeLists.txt, consulte a documentação do CMake.

Captura de tela de um arquivo C Make Lists .txt sendo editado no Visual Studio.

Ele contém as linhas project (hello-cmake), add_subdirectory (tests), add_executable (hello hello.cpp) e install (TARGETS hello DESTINATION hello/bin). Uma mensagem na parte superior da janela diz que c mais as informações do IntelliSense serão atualizadas depois que o C Make terminar de gerar o cache.

Assim que você salvar o arquivo, a etapa de configuração será executada automaticamente novamente e exibirá informações na janela Output. Os erros e avisos são mostrados na Lista de Erros ou na janela de Saída . Clique duas vezes num erro na Lista de Erros para navegar até à linha com erro no CMakeLists.txt.

Captura de tela de um erro C Make na lista de erros do Visual Studio.

Uma mensagem de erro do CMake na linha 3 de CMakeLists.txt é realçada. Os detalhes são que C Make não conseguiu encontrar um arquivo de configuração de pacote fornecido pelo sqlite3. C Make procurou-o em CMAKE_MODULE_PATH mas não conseguiu encontrá-lo. A sugestão é adicionar o prefixo de instalação 'sqlite3' para CMAKE_PREFIX_PATH ou definir sqlite3_DIR para um diretório contendo sqlite3Config.cmake e/ou sqlitet3-config.cmake.

Serviços linguísticos para o CMake

Os serviços de idioma para CMake estão disponíveis no Visual Studio 2019 versão 16.5 ou posterior. Ele suporta recursos de navegação de código como "Go To Definition," "Peek Definition" e "Find All References" para variáveis, funções e destinos CMake em ficheiros de script CMake. Para obter mais informações, consulte Code Navigation for CMake Scripts.

Captura de tela da janela Localizar todas as referências do Visual Studio.

Os resultados de localizações onde SUPERTUX_SOURCES_CXX são encontrados são mostrados. Por exemplo, em list(SORT SSUPERTUX_SOURCES_CXX), file(GLOB SUPERTUX_SOURCES_CXX) e assim por diante.

Manipulação do projeto CMake

A manipulação do projeto CMake está disponível no Visual Studio 2019 versão 16.5 ou posterior. A manipulação de projetos permite que você adicione, remova e renomeie arquivos de origem e destinos em seu projeto CMake sem editar manualmente seus scripts CMake. Quando você adiciona ou remove arquivos do Gerenciador de Soluções, o Visual Studio edita automaticamente seu projeto CMake. Pode haver mais de um lugar onde faça sentido adicionar ou remover uma referência a um script CMake. Em caso afirmativo, o Visual Studio pergunta onde você deseja fazer a alteração e exibe uma visualização das alterações propostas. Para obter instruções passo a passo, consulte Adicionar, remover e renomear arquivos e destinos no CMake Projects.

Captura de ecrã da caixa de diálogo Alterações de visualização do Visual Studio.

Uma vista em árvore mostra CMakeLists.txt, debaixo da qual estão dois itens: add_executable e set. O conjunto está marcado. A janela de visualização mostra onde as alterações serão feitas. A linha configurada (PROJECT_SRC "CmakeProject4.cpp" "CMakeProject4.h") exibe "Demo.cpp" destacado antes do parêntese de fechamento. O botão aplicar aceita a alteração ou você pode pressionar cancelar.

IntelliSense para projetos CMake

Por padrão, o Visual Studio usa o modo IntelliSense que corresponde ao compilador e à arquitetura de destino especificada pela configuração ativa do CMake.

Se CMakePresets.json for seu arquivo de configuração CMake ativo, você poderá especificar as opções do IntelliSense usando intelliSenseMode e intelliSenseOptions no mapa do fornecedor de Configurações do Visual Studio. Para obter mais informações, consulte a referência do mapa de fornecedor das Configurações do Visual Studio .

Se CMakeSettings.json for o arquivo de configuração do CMake ativo, você poderá especificar as opções do IntelliSense usando intelliSenseMode no CMakeSettings.json. Para obter mais informações, consulte a referência CMakeSettings.json.

Configurar o IntelliSense com arquivos da cadeia de ferramentas CMake

No Visual Studio 2019 versão 16.9 e posterior, o Visual Studio configura automaticamente o IntelliSense em projetos CMake com base em variáveis CMake quando você usa um arquivo de cadeia de ferramentas CMake. Para obter mais informações, consulte Configurar o IntelliSense com arquivos da cadeia de ferramentas CMake.

Integração Vcpkg

Os projetos CMake abertos no Visual Studio integram-se ao vcpkg, um gerenciador de dependência C/C++ multiplataforma. Antes de usar vcpkg com Visual Studio, você deve executar vcpkg integrate install. Para obter instruções e mais informações sobre vcpkg, consulte:

Se CMakeSettings.json for seu arquivo de configuração ativo, o Visual Studio passará automaticamente o arquivo da cadeia de ferramentas vcpkg (vcpkg.cmake) para o CMake. Esse comportamento é desativado automaticamente quando você especifica qualquer outra cadeia de ferramentas em sua configuração de configurações do CMake.

Se CMakePresets.json for seu arquivo de configuração ativo, você precisará definir o caminho para vcpkg.cmake no CMakePresets.json. Recomendamos usar a variável de ambiente VCPKG_ROOT em vez de um caminho absoluto para manter o arquivo compartilhável. Para obter mais informações, consulte Habilitar a integração do vcpkg com as predefinições do CMake. CMakePresets.json está disponível no Visual Studio 2019 versão 16.10 ou posterior e é o arquivo de configuração CMake recomendado.

Execute o CMake a partir da linha de comando

Se CMakePresets.json é seu arquivo de configuração CMake ativo, então você pode facilmente reproduzir suas compilações locais fora do Visual Studio. Para obter mais informações, consulte Executar CMake a partir da linha de comando ou de um pipeline de CI. CMakePresets.json é suportado no Visual Studio 2019 versão 16.10 ou posterior e é o arquivo de configuração CMake recomendado.

Se CMakeSettings.json for seu arquivo de configuração CMake ativo, você precisará passar manualmente os argumentos codificados em seu arquivo CMakeSettings.json para o CMake. Se tiver instalado o CMake a partir do instalador do Visual Studio, pode executá-lo a partir da linha de comandos seguindo estes passos:

  1. Execute o arquivo vsdevcmd.bat apropriado (x86/x64). Para obter mais informações, consulte Construindo na linha de comando .

  2. Vá para a pasta de saída.

  3. Execute o CMake para criar ou configurar seu aplicativo.

O Visual Studio 2017 tem suporte avançado para o CMake, incluindo projetos CMake de plataforma cruzada. O componente Visual C++ Tools for CMake usa o recurso Open Folder para permitir que o IDE consuma arquivos de projeto CMake (como CMakeLists.txt) diretamente para fins de IntelliSense e navegação. Ambos os geradores Ninja e Visual Studio são suportados. Se você usar um gerador do Visual Studio, ele gera um arquivo de projeto temporário e o passa para o MSBuild. No entanto, o projeto nunca é carregado para IntelliSense ou para fins de navegação. Você também pode importar um cache CMake existente.

Instalação

Visual C++ Tools for CMake é instalado como parte das cargas de trabalho de desenvolvimento Desktop com C++ e Linux Development com C++.

Captura de tela do instalador do Visual Studio. A guia Componentes individuais é selecionada na qual Visual C plus plus tools for CMake está selecionado.

Para obter mais informações, consulte Instalar a carga de trabalho do Linux C++ no Visual Studio.

Integração IDE

Quando você escolhe Arquivo > Abrir > pasta para abrir uma pasta que contém um arquivo CMakeLists.txt, acontece o seguinte:

  • O Visual Studio adiciona um item de menu CMake ao menu principal, com comandos para exibir e editar scripts CMake.

  • Gerenciador de Soluções exibe a estrutura de pastas e os arquivos.

  • O Visual Studio executa o CMake e, opcionalmente, gera o cache do CMake para a configuração padrão , que é x86 Debug. A linha de comando do CMake é exibida na janela de saída do , juntamente com outras saídas do CMake.

  • Em segundo plano, o Visual Studio começa a indexar os arquivos de origem para habilitar o IntelliSense, informações de navegação, refatoração e assim por diante. À medida que você trabalha, o Visual Studio monitora as alterações no editor e também no disco para manter seu índice sincronizado com as fontes.

Você pode abrir pastas contendo qualquer número de projetos CMake. Visual Studio deteta e configura todos os ficheiros "raiz" CMakeLists.txt no seu espaço de trabalho. As operações CMake (configurar, compilar, depurar), C++ IntelliSense e navegação estão disponíveis para todos os projetos CMake em seu espaço de trabalho.

Captura de tela do Gerenciador de Soluções do Visual Studio.

Os arquivos e pastas de um projeto CMake são visíveis. Há um subdiretório de testes, CMakeLists.txte hello.cpp. Há uma pasta hello-cmake-vcpkg que contém CMakeLists.txt, CMakeSettings.jsone hello.cpp.

Você também pode visualizar seus projetos organizados logicamente por metas. Escolha Vista de Destinos na lista suspensa na barra de ferramentas Gerenciador de Soluções:

Captura de ecrã do botão suspenso no Explorador de Soluções do Visual Studio que oferece a opção de exibição de destinos CMake, que está selecionada.

Visual Studio usa um arquivo chamado CMakeSettings.json para armazenar variáveis de ambiente ou opções de linha de comando para CMake. CMakeSettings.json também permite que você defina e armazene várias configurações de compilação do CMake. Você pode alternar convenientemente entre eles no IDE.

Caso contrário, use o CMakeLists.txt como faria em qualquer projeto CMake para especificar arquivos de origem, localizar bibliotecas, definir opções de compilador e vinculador e especificar outras informações relacionadas ao sistema de compilação.

Se você precisar passar argumentos para um executável no momento da depuração, poderá usar outro arquivo chamado launch.vs.json. Em alguns cenários, o Visual Studio gera automaticamente esses arquivos. Você pode editá-los manualmente ou até mesmo criar o arquivo por conta própria.

Observação

Para outros tipos de projetos Open Folder, dois arquivos JSON adicionais são usados: CppProperties.json e tasks.vs.json. Nenhum destes elementos é relevante para os projetos CMake.

Importar um cache existente

Quando você importa um arquivo CMakeCache.txt existente, o Visual Studio extrai automaticamente variáveis personalizadas e cria um arquivo CMakeSettings.json pré-preenchido com base nelas. O cache original não é modificado de forma alguma. Ele ainda pode ser usado a partir da linha de comando, ou com qualquer ferramenta ou IDE usado para gerá-lo. O novo arquivo CMakeSettings.json é colocado ao lado da raiz do projeto CMakeLists.txt. O Visual Studio gera um novo cache com base no arquivo de configurações. Você pode substituir a geração automática de cache na caixa de diálogo Ferramentas > Opções > CMake > Geral.

Nem tudo no cache é importado. Propriedades como o gerador e o local dos compiladores são substituídas por padrões que são conhecidos por funcionar bem com o IDE.

Para importar um cache existente

  1. No menu principal, escolha Arquivo > Abrir > CMake:

    Captura de tela do menu principal do Visual Studio. Arquivo > Abrir > C Make está selecionado.

    Este comando exibe o assistente Importar CMake do Cache.

  2. Navegue até o arquivo de CMakeCache.txt que deseja importar e escolha OK. O assistente Importar projeto CMake de cache aparece:

    Captura de tela do assistente de importação de projetos CMake a partir do cache. O caminho do diretório do projeto CMake para importar vai no campo de texto 'pasta'.

    Quando o assistente for concluído, você poderá ver o novo arquivo de CMakeCache.txt em Gerenciador de Soluções ao lado do arquivo de CMakeLists.txt raiz em seu projeto.

Construindo projetos CMake

Para criar um projeto CMake, você tem estas opções:

  1. Na barra de ferramentas Geral, localize a lista suspensa Configurações . Provavelmente está mostrando "Linux-Debug" ou "x64-Debug" por padrão. Selecione a configuração preferida e pressione F5ou escolha o botão Executar (triângulo verde) na barra de ferramentas. O projeto compila automaticamente, primeiramente, tal como acontece numa solução do Visual Studio.

  2. Clique com o botão direito do mouse em CMakeLists.txt no Gerenciador de Soluções e selecione de compilação no menu de contexto. Se você tiver vários destinos em sua estrutura de pastas, poderá optar por criar todos ou apenas um destino específico.

  3. No menu principal, selecione Build > Build Solution (F7 ou Ctrl+Shift+B). Verifique se um destino CMake já está selecionado na lista suspensa Item de Inicialização na barra de ferramentas Geral.

Captura de ecrã do Explorador de Soluções do Visual Studio depois de clicar com o botão direito do rato em CMakeLists.txt.

O menu tem opções como Adicionar, Abrir, Configurar tarefas, Compilar, Limpar tudo e assim por diante.

Você pode personalizar configurações de compilação, variáveis de ambiente, argumentos de linha de comando e outras configurações no arquivo CMakeSettings.json. Ele permite que você faça alterações sem modificar o arquivo CMakeLists.txt. Para obter mais informações, consulte Personalizar configurações do CMake.

Como seria de esperar, os resultados da compilação são mostrados no da Janela de Saída do e Lista de Erros.

Captura de tela da janela Lista de Erros do Visual Studio.

Os avisos do CMake sobre conversões que podem resultar em perda de dados, como a conversão de um float para um inteiro, são visíveis.

Em uma pasta com vários destinos de compilação, você pode especificar qual destino CMake compilar: Escolha o item Build no menu CMake ou no menu de contexto CMakeLists.txt para especificar o destino. Se você inserir Ctrl+Shift+B em um projeto CMake, ele criará o documento ativo atual.

Debugging de projetos CMake

Para depurar um projeto CMake, escolha a configuração preferida e pressione F5. Ou pressione o botão Executar na barra de ferramentas. Se o botão Executar disser "Selecionar item de inicialização", selecione a seta suspensa e escolha o item desejado para executar. (Em um projeto CMake, a opção "Documento atual" só é válida para arquivos .cpp.)

Captura de ecrã da lista suspensa Selecionar item de inicialização para um projeto CMake. Pode selecionar o documento atual ou hello-cmake.exe

Os comandos Run ou F5 primeiro compilam o projeto se as alterações tiverem sido feitas desde a compilação anterior.

Você pode personalizar uma sessão de depuração do CMake definindo propriedades no arquivo launch.vs.json. Para obter mais informações, consulte Configurar sessões de depuração do CMake.

Editando arquivos CMakeLists.txt

Para editar um arquivo CMakeLists.txt, clique com o botão direito do mouse no arquivo no Gerenciador de Soluções e escolha Abrir. Se você fizer alterações no arquivo, uma barra de status amarela será exibida informando que o IntelliSense será atualizado. Dá-lhe a oportunidade de cancelar a operação de atualização. Para obter informações sobre CMakeLists.txt, consulte a documentação do CMake.

Captura de tela de um arquivo C Make Lists .txt sendo editado no Visual Studio.

O ficheiro contém: project (hello-cmake), add_subdirectory (tests), add_executable (hello hello.cpp) e install (TARGETS hello DESTINATION hello/bin). Uma mensagem na parte superior da janela diz que c mais as informações do IntelliSense serão atualizadas depois que o C Make terminar de gerar o cache.

Assim que você salvar o arquivo, a etapa de configuração será executada automaticamente novamente e exibirá informações na janela Output. Os erros e avisos são mostrados na janela Lista de Erros ou na janela de Saída. Clique duplo num erro na Lista de Erros para navegar até a linha correspondente no CMakeLists.txt.

Captura de tela de um erro C Make na lista de erros do Visual Studio.

Uma mensagem de erro do CMake na linha 3 de CMakeLists.txt está destacada. Os detalhes são que C Make não consegue encontrar um arquivo de configuração de pacote fornecido pelo sqlite3. C Make procurou-o em CMAKE_MODULE_PATH mas não conseguiu encontrá-lo. A sugestão é adicionar o prefixo de instalação 'sqlite3' para CMAKE_PREFIX_PATH ou definir sqlite3_DIR para um diretório contendo sqlite3Config.cmake e/ou sqlitet3-config.cmake.

Etapa de configuração do CMake

Quando são feitas alterações significativas aos arquivos CMakeSettings.json ou CMakeLists.txt, o Visual Studio executa automaticamente a etapa de configuração do CMake. Se a etapa de configuração for concluída sem erros, as informações coletadas estarão disponíveis em C++ IntelliSense e serviços de linguagem. Ele também é usado em operações de compilação e depuração.

Vários projetos CMake podem usar o mesmo nome de configuração CMake (por exemplo, x86-Debug). Todos eles são configurados e construídos (em sua própria pasta raiz de compilação) quando essa configuração é selecionada. Você pode depurar os destinos de todos os projetos CMake que participam dessa configuração do CMake.

Captura de tela do menu principal do Visual Studio, aberto para CMake > Build Only.

O menu de contexto mostra o que pode ser construído - neste caso, hello-cmake-a \ hello-cmake.exe (Project hello-cmake) and hello-cmake-b\hello-cmake.exe (Project hello-cmake). Este último é destacado.

Você pode limitar compilações e sessões de depuração a um subconjunto dos projetos no espaço de trabalho. Crie uma nova configuração com um nome exclusivo no arquivo CMakeSettings.json. Em seguida, aplique a configuração somente a esses projetos. Quando essa configuração é selecionada, o IntelliSense e os comandos build e debug só se aplicam aos projetos especificados.

Solução de problemas de erros de cache do CMake

Se precisar de mais informações sobre o estado do cache do CMake para diagnosticar um problema, abra o menu principal do CMake ou o menu de contexto CMakeLists.txt no Gerenciador de Soluções executar um destes comandos:

  • View Cache abre o arquivo de CMakeCache.txt da pasta raiz da compilação no editor. (Todas as edições que você fizer aqui para CMakeCache.txt serão eliminadas se você limpar o cache. Para fazer alterações que persistem depois que o cache é limpo, consulte Personalizar configurações do CMake.)

  • Abrir pasta de cache abre uma janela do Explorer para a pasta raiz da compilação.

  • Limpar cache exclui a pasta raiz da compilação para que a próxima etapa de configuração do CMake comece a partir de um cache limpo.

  • Gerar cache força a etapa de geração a ser executada mesmo que o Visual Studio considere o ambiente atualizado.

A geração automática de cache pode ser desativada na caixa de diálogo Ferramentas > Opções > CMake > Geral.

Compilação de arquivo único

Para criar um único arquivo em um projeto CMake, clique com o botão direito do mouse no arquivo em Gerenciador de Soluções. Escolha Compilar no menu de contexto. Você também pode construir o arquivo atualmente aberto no editor usando o menu principal CMake:

Captura de ecrã do menu de contexto CMake > Compile. Ele contém uma entrada: Bullet3Collision.

Execute o CMake a partir da linha de comando

Se tiver instalado o CMake a partir do instalador do Visual Studio, pode executá-lo a partir da linha de comandos seguindo estes passos:

  1. Execute o arquivo vsdevcmd.bat apropriado (x86/x64). Para obter mais informações, consulte Construindo na linha de comando.

  2. Vá para a pasta de saída.

  3. Execute o CMake para criar ou configurar seu aplicativo.

No Visual Studio 2015, os usuários do Visual Studio podem usar um gerador CMake para gerar arquivos de projeto MSBuild, que o IDE consome para IntelliSense, navegação e compilação.

Ver também

Tutorial: Criar projetos C++ multiplataforma no Visual Studio
Configurar um projeto CMake Linux
Conecte-se ao seu computador Linux remoto
Personalizar as configurações de compilação do CMake
CMakeSettings.json referência de esquema
Configurar sessões de depuração do CMake
Implante, execute e depure seu projeto Linux
Referência de configurações predefinidas do CMake
vcpkg em projetos CMake
Instalar e usar pacotes com o CMake no Visual Studio