Exemplo mínimo de projeto C/C++ usando CMake para configurar versão via configure_file e compilar um executável simples.
- Executável gerado:
hello - Versão do app definida em
CMakeLists.txte injetada emSampleConfig.hviaconfigure_file. - Código-fonte principal em
main.cppimprime a versão e uma mensagem de boas‑vindas.
- CMake >= 2.8 (qualquer versão mais recente também funciona)
- Compilador C++ (GCC, Clang ou MSVC)
Unix/macOS:
mkdir -p build
cd build
cmake ..
cmake --build .
./helloWindows (PowerShell):
mkdir build
cd build
cmake .. -G "Visual Studio 17 2022" # opcional: escolha do gerador
cmake --build . --config Release
./Release/hello.exeCMakeLists.txt: configura o projeto, define a versão e gera o executávelhello.main.cpp: fonte principal; imprime versão (SAMPLE_VERSION_*) e mensagem.SampleConfig.h.in: template usado porconfigure_filepara gerarSampleConfig.hem tempo de configuração.README.md: este arquivo.
- Em
CMakeLists.txt, as variáveisSample_VERSION_MAJOR,MINORePATCHdefinem a versão. - O
configure_filecriaSampleConfig.hno diretório de build com macrosSAMPLE_VERSION_*. - O
main.cppincluiSampleConfig.hpara imprimir a versão.
Para mudar a versão, ajuste os valores no CMakeLists.txt e reconfigure/reconstrua.
Para remover artefatos de build gerados fora da árvore de fontes, basta apagar a pasta build/:
rm -rf build- Se tiver múltiplos toolchains/compiladores, especifique o gerador:
cmake .. -G "Ninja"ou o da sua IDE. - Em Windows com MSVC, execute no terminal “x64 Native Tools Command Prompt” para garantir ambiente configurado.
- Se mudar variáveis de versão, rode
cmake ..novamente para regenerarSampleConfig.h.
- Definir o padrão C++: adicione
set(CMAKE_CXX_STANDARD 17)aoCMakeLists.txt. - Separar código em pastas
src/einclude/e atualizar oCMakeLists.txtconforme crescer o projeto.