Skip to content

A sanctuary for those who build in C++ — with power, precision, and no memory leaks.

License

Notifications You must be signed in to change notification settings

GabrielEValenzuela/cpp-sanctum

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏛️ cpp-sanctum

Un santuario para quienes programan en C++ — con poder, precisión, y sin memory leaks.

cpp-sanctum es un entorno de desarrollo profesional basado en DevContainers de VSCode, diseñado para trabajar en C++17 (Por defecto, pudiendo cambiarse de forma sencilla) con todas las herramientas modernas: compilador, pruebas, cobertura, análisis estático y más.


⚙️ Características

  • 🧠 Toolchain moderna: clang, gcc, cmake, ninja, gdb
  • 🧪 Soporte para CTest, lcov, valgrind, clang-tidy y cppcheck
  • 🔍 Integración total con clangd, hints en tiempo real, clang-format
  • 📦 Manejo de dependencias con vcpkg
  • 🐳 Funciona igual en Linux como en Windows (con WSL2 o Docker Desktop)

🚀 Instalación rápida

🪟 En Windows 10/11 (con Docker Desktop)

Abrí PowerShell como Administrador y copiá el script manualmente (ver más abajo ⬇️)


🐧 En Linux/macOS

Requisitos: Docker + VSCode + extensión Remote Containers

git clone https://github.com/GabrielEValenzuela/cpp-sanctum.git
cd cpp-sanctum
code .
# Luego: “Reopen in Container” desde la paleta de comandos de VSCode

📜 Script PowerShell (init-devcontainer.ps1)

# Script de bootstrap para cpp-sanctum (Windows)
Set-ExecutionPolicy Bypass -Scope Process -Force

# --- Instalar Chocolatey ---
if (-not (Get-Command choco -ErrorAction SilentlyContinue)) {
    Write-Host "Instalando Chocolatey..."
    Set-ExecutionPolicy Bypass -Scope Process -Force
    [System.Net.ServicePointManager]::SecurityProtocol = 3072
    Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
}

# --- Instalar herramientas necesarias ---
$packages = @("git", "vscode", "cmake", "ninja", "docker-desktop", "mingw", "curl")
foreach ($pkg in $packages) {
    choco install $pkg -y --ignore-checksums
}

# --- Clonar el repositorio ---
$targetDir = "$env:USERPROFILE\cpp-sanctum"
if (-not (Test-Path $targetDir)) {
    git clone https://github.com/GabrielEValenzuela/cpp-sanctum.git $targetDir
}

# --- Abrir en VSCode ---
Start-Process "code" -ArgumentList "-n", "$targetDir"

Perfecto. Aquí tenés la sección del README.md actualizada con un tono profesional y accesible, explicando cómo usar las tareas integradas de VSCode dentro del contenedor:


🧪 Compilación y pruebas

Dentro del contenedor:

Existen tareas preconfiguradas que permiten ejecutar fácilmente las operaciones esenciales del ciclo de desarrollo en C++: compilar, probar, depurar y generar cobertura de código. Simplemente abrí la paleta de comandos con Ctrl+Shift+P y seleccioná:

  • Tareas: Ejecutar tareaCMake: Configure
  • Tareas: Ejecutar tareaCMake: Build
  • Tareas: Ejecutar tareaCTest: Run tests
  • Tareas: Ejecutar tareaCMake: Configure with coverage and testing

O desde el menú Terminal → Ejecutar tarea....

También podés trabajar desde terminal con los siguientes comandos:

🔧 Compilación básica

cmake -S . -B build
cmake --build build

🧪 Compilación con pruebas y cobertura

cmake -DENABLE_TESTING=ON -DENABLE_COVERAGE=ON -DCMAKE_BUILD_TYPE=Debug -S . -B build
cmake --build build --target test
ctest --test-dir build --output-on-failure

📂 Estructura del proyecto

cpp-sanctum/
├── .devcontainer/      # Entorno completo de desarrollo
├── .vscode/            # Tareas, configuración de debugging, ajustes de editor
├── src/                # Código fuente principal
├── tests/              # Tests unitarios (CTest)
├── scripts/            # Scripts de instalación y setup
├── CMakeLists.txt
└── README.md

🧙‍♂️ ¿Por qué “sanctum”?

Porque desarrollar en C++ debería hacerse en un lugar sagrado — donde valgrind no detecta pérdidas, clang-tidy te guía con sabiduría, y ctest pasa todo en verde.


📜 Licencia

MIT. Usalo para crear software épico y mantenible. Compartí, mejorá, enseñá.

About

A sanctuary for those who build in C++ — with power, precision, and no memory leaks.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published