Tutorial CMake
O CMake é uma ferramenta de construção multiplataforma, independente de linguagem, quem vem se tornando padrão, emm grandes projeto, o qual é usando para construir, testar e implantar suas bases de código. Neste tutorial você vai aprender:
Escrever um sistema de compilação CMake para projetos C, C++ e Fortran produzindo bibliotecas e/ou executáveis.
Executar testes para seu código com CTest.
Certificar-se de que seu sistema de compilação funciona em diferentes plataformas.
Detectar e usar dependências externas em seu projeto.
Construir com segurança e eficácia projetos que usam linguagens mistas (Python+C/C++, Python+Fortran, Fortran+C/C++)
Prerequisites
Antes de iniciar esse tutorial, recomenda-se ter acesso a um computador com compilador para sua linguagem de programação favorita e uma versão recente do CMake.
Caso não tenha ainda esse ambiente instalado, recomendamos que você configure
um ambiente de software isolado usando conda
. Para computadores com sistemas
Windows, recomendamos usar o Subsistema para Linux (WSL).
Instruções detalhadas podem ser encontradas na página Configurando seu sistema.
30 min |
|
30 min |
|
30 min |
|
30 min |
|
30 min |
|
40 min |
|
40 min |
|
40 min |
A08 - Manipulação de dependência automatizada com FetchContent |
30 min |
Para quem este tutorial é voltado?
Este curso é voltado para estudantes que ouviram falar do CMake e querem aprender como usá-lo efetivamente em projetos que estão trabalhando.
Este curso não pressupõe experiência anterior com CMake. Você terá que estar familiarizado com algumas ferramentas comumente usadas para construir software na sua linguagem de escolha: C++, C, Fortran. Especificamente, este tutorial pressupõe que os participantes tenham alguma experiência anterior ou ou algum conhecimento dos seguintes tópicos:
Compilação e vinculação de executáveis e bibliotecas.
Diferenças entre bibliotecas compartilhadas e estáticas.
Testes automatizados
Convenções textuais e gráficas
Adotamos algumas convenções que ajudam a organizar o material.
- Assinaturas de função
Eles são mostrados em um bloco de texto marcado com um emoji de chave inglesa:
cmake_minimum_required(VERSION <min>[...<max>] [FATAL_ERROR])
- Parâmetros de comando
A descrição dos parâmetros de comando aparecerá em uma caixa de texto separada. Ele será marcado com um emoji de laptop:
Parameters
VERSION
Minimum and, optionally, maximum version of CMake to use.
FATAL_ERROR
Raise a fatal error if the version constraint is not satisfied. This option is ignored by CMake >=2.6
- Type-along
O texto e o código dessas atividades estão em uma caixa de texto separada, marcada com um emoji de teclado:
Vejamos um exemplo
cmake_minimum_required(VERSION 3.16) project(Hello LANGUAGES CXX)
- Exercícios
Cada exercício é apresentado em uma caixa de texto separada, marcada com um emoji de mão. Cada caixa apresenta o exercício e descreve os objetivos:
Exercício 10
Usaremos o CMake para construir uma biblioteca Fortran.
Veja Também
Existem muitas fontes gratuitas on-line sobre o CMake:
Curso de Treinamento do HEP Software Foundation.
Você também pode consultar os seguintes livros:
Créditos
Este tutorial é baseado no material desenvolvido por EuroCC National Competence Center Sweden (ENCCS) e é licenciado sob a Creative Commons Attribution license (CC-BY-4.0).
Este é um resumo (e não um substituto para) a licença Creative Commons Attribution 4.0 International (CC-BY-4.0).
Você tem o direito de:
Compartilhar — copiar e redistribuir o material em qualquer suporte ou formato
Adaptar — remixar, transformar, e criar a partir do material para qualquer fim, mesmo que comercial.
Esta licença é aceitável para Trabalhos Culturais Livres.
O licenciante não pode revogar estes direitos desde que você respeite os termos da licença.
De acordo com os termos seguintes:
Atribuição — Você deve dar o crédito apropriado, prover um link para a licença e indicar se mudanças foram feitas. Você deve fazê-lo em qualquer circunstância razoável, mas de nenhuma maneira que sugira que o licenciante apoia você ou o seu uso.
Sem restrições adicionais — Você não pode aplicar termos jurídicos ou medidas de caráter tecnológico que restrinjam legalmente outros de fazerem algo que a licença permita.
Software
Os exemplos de código e exercícios nesta lição foram adaptados do GitHub CMake Cookbook.