AudioLab Build System Guide¶
🎯 Overview¶
AudioLab usa un sistema de build moderno con CMake que organiza TODOS los artifacts temporales en _ARTIFACTS/.
📂 Estructura de Directorios¶
audio-lab/
├── CMakeLists.txt # ← Root build configuration
├── build.bat # ← Windows build script
├── 04_CORE/ # ← Core library source
│ ├── CMakeLists.txt # ← CORE build config
│ ├── 04_00_type_system/
│ ├── 04_01_core_interfaces/
│ ├── ... (16 subsystems)
│ └── 04_15_core_config/
├── 05_MODULES/ # ← Audio processing modules
│ └── 05_99_EXAMPLES/
│ ├── simple_test/ # ← Simple build test (working)
│ └── delay_example/ # ← Delay plugin (needs API fixes)
└── _ARTIFACTS/ # ← ALL build outputs HERE
├── build/ # ← CMake build files
│ └── Release/ # ← Build configuration
├── binaries/ # ← Final executables & libraries
│ └── Release/
│ ├── audiolab_core.lib (2.5 MB)
│ └── simple_test.exe (14 KB)
├── logs/ # ← Build logs
└── temp/ # ← Temporary files
🚀 Cómo Compilar¶
Opción 1: Script automático (Windows)¶
Opción 2: Manual¶
# Paso 1: Configurar CMake
cmake -B _ARTIFACTS/build/Release -S . -G "Visual Studio 17 2022" -A x64 -DCMAKE_BUILD_TYPE=Release
# Paso 2: Compilar
cmake --build _ARTIFACTS/build/Release --config Release
# Paso 3: Ejecutar
_ARTIFACTS/binaries/Release/simple_test.exe
📦 Qué se Genera¶
_ARTIFACTS/build/Release/¶
- Archivos de CMake Cache
- Project files (.sln, .vcxproj)
- Archivos objeto (.obj)
- Archivos temporales de compilación
_ARTIFACTS/binaries/Release/¶
- audiolab_core.lib (2.5 MB) - Librería estática del CORE
- simple_test.exe (14 KB) - Ejemplo funcional
- Futuros plugins y aplicaciones
_ARTIFACTS/logs/¶
- Logs de compilación
- Reportes de errores
- Timestamps de build
🏗️ Arquitectura del Build¶
04_CORE Library¶
La librería audiolab_core compila 18 archivos .cpp de los 16 subsistemas:
04_CORE → audiolab_core.lib (STATIC library)
├── 160 header files (.hpp)
└── 18 source files (.cpp)
├── error_handler.cpp
├── platform_paths.cpp
├── system_info.cpp
├── directory_operations.cpp
├── file_operations.cpp
└── ... (13 more files)
Excluidos del build: - Benchmarks (requieren Google Benchmark) - Tests (requieren Catch2) - Persistence optimization (requiere LZ4)
Linking con CORE¶
Cualquier executable/plugin puede usar CORE así:
# En tu CMakeLists.txt
add_executable(my_plugin main.cpp)
target_link_libraries(my_plugin PRIVATE audiolab_core)
target_include_directories(my_plugin PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../../)
✅ Estado Actual¶
✓ Funcionando¶
- CMake configuration
- 04_CORE library compila correctamente
- simple_test enlaza con CORE y ejecuta
- Outputs van a
_ARTIFACTS/binaries/ - Build files van a
_ARTIFACTS/build/ - Sistema multi-configuración (Debug/Release)
⚠️ Pendiente¶
- delay_example (necesita arreglar API de Parameter)
- Unit tests (integrar Catch2)
- Benchmarks (integrar Google Benchmark)
- Persistence optimization (añadir LZ4)
- 05_MODULES completos
- 08_PLUGINS
🧹 Limpiar Build¶
Para empezar desde cero:
# Eliminar TODO el build
rm -rf _ARTIFACTS/build/
# O limpiar completamente _ARTIFACTS
rm -rf _ARTIFACTS/
El próximo cmake recreará todo.
📝 Notas Técnicas¶
Compiler Warnings¶
Los warnings de CMakeCXXCompilerId.cpp son normales y no afectan:
Estos son archivos internos de CMake para detectar el compilador.
Configuraciones de Build¶
- Release: Optimizado, sin debug symbols
- Debug: Con debug symbols, sin optimizaciones
Cambiar configuración:
cmake -B _ARTIFACTS/build/Debug -DCMAKE_BUILD_TYPE=Debug
cmake --build _ARTIFACTS/build/Debug --config Debug
Toolchain¶
- Compiler: MSVC 19.44.35215.0 (Visual Studio 2022)
- Generator: Visual Studio 17 2022
- Architecture: x64
- C++ Standard: C++20
🎯 Próximos Pasos¶
- Arreglar delay_example: Actualizar para usar API real de Parameter
- Añadir más ejemplos: Reverb, Compressor, EQ, etc.
- Integrar tests: Añadir Catch2 y ejecutar unit tests
- CI/CD: Automatizar builds en GitHub Actions
- Cross-platform: Añadir soporte para macOS y Linux
🔗 Referencias¶
- CMakeLists root:
CMakeLists.txt - CORE build config:
04_CORE/CMakeLists.txt - Artifacts info:
_ARTIFACTS/README.md - Build script:
build.bat
Última actualización: 2025-10-17 Autor: AudioLab Build System Versión: 1.0.0