Skip to content

📦 Package Manifests

Este directorio contiene los archivos de configuración que vcpkg lee para gestionar las dependencias de AudioLab.


📄 Archivos

vcpkg.json

Propósito: Manifiesto principal de dependencias

{
  "name": "audiolab",
  "dependencies": [
    "juce",
    "fmt",
    "spdlog",
    ...
  ]
}

¿Qué hace? - ✅ Declara QUÉ librerías necesita el proyecto - ✅ Especifica versiones mínimas - ✅ Define features opcionales (IPP, FFTW) - ✅ vcpkg lo lee y descarga automáticamente todo

Comando:

vcpkg install


vcpkg-configuration.json

Propósito: Configuración avanzada de vcpkg

{
  "default-registry": {
    "baseline": "abc123..."
  },
  "overlay-ports": [...]
}

¿Qué hace? - ⚡ Binary caching: No recompilar si ya existe - 🎯 Registries personalizados: Para paquetes propios - 📦 Overlay ports: Modificar paquetes upstream - 🔒 Baseline lock: Versiones reproducibles

Resultado: Builds 10x más rápidos


.vcpkg-root

Propósito: Marcador de raíz del proyecto (archivo vacío)

¿Qué hace? - 📍 Indica: "Esta es la raíz del proyecto AudioLab" - 🔍 vcpkg busca vcpkg.json relativo a este archivo - 🎯 Permite ejecutar vcpkg install desde cualquier subdirectorio

Sin este archivo: vcpkg no sabría dónde está el proyecto


🚀 Workflow

1. Instalación inicial

# Clonar vcpkg (si no está instalado)
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh  # macOS/Linux
.\bootstrap-vcpkg.bat # Windows

# Instalar dependencias de AudioLab
cd /path/to/audiolab
vcpkg install

2. Añadir nueva dependencia

# Editar vcpkg.json
{
  "dependencies": [
    ...,
    {
      "name": "libsndfile",
      "version>=": "1.2.0"
    }
  ]
}

# Instalar
vcpkg install

3. Habilitar feature opcional

# Con IPP
vcpkg install --x-feature=ipp

# Con FFTW
vcpkg install --x-feature=fftw

# Todas las features
vcpkg install --x-feature=all

4. Actualizar baseline

# Obtener último commit de vcpkg
cd vcpkg
git pull
git rev-parse HEAD  # Copiar hash

# Actualizar vcpkg.json y vcpkg-configuration.json
"builtin-baseline": "NUEVO_HASH_AQUI"

🎯 Features Disponibles

Feature Descripción Plataformas
ipp Intel IPP (FFT, filters optimizados) Windows, Linux
fftw FFTW (FFT de alta performance) Todas
tests Catch2 para unit testing Todas
benchmarks Google Benchmark para profiling Todas
all Habilitar todas las features Todas

🔧 Troubleshooting

Error: "vcpkg.json not found"

Solución: Asegurarse de que .vcpkg-root existe en el directorio raíz

Error: "baseline not found"

Solución: Actualizar el hash del baseline en vcpkg.json y vcpkg-configuration.json

Error: "package not available for triplet"

Solución: Algunos paquetes no están disponibles en todas las plataformas. Revisar el feature y añadir "platform": "..."


📚 Referencias


Última actualización: 2025-10-03