This project is standardized around a single primary build flow on Windows:
- MSVC 2022 toolchain
- Qt 6.x (
msvc2022_64kit) - CMake + Ninja
- vcpkg manifest mode
git clone --recurse-submodules https://github.com/dduongtrandai/LA-Studio.git
cd LA-Studio
.\scripts\bootstrap.batThe repository pins the llama.cpp revision used for the public ABI headers as a
Git submodule under third_party/llama.cpp. If the repository was cloned without
submodules, initialize it before configuring CMake:
git submodule update --init --recursiveLA Studio does not build or link llama.cpp; the headers are used at compile time
while the selected llama.dll and ggml.dll are loaded at runtime.
After a successful build, executable output is:
out/build/windows-msvc-release/LA Studio.exe
Install these before running bootstrap:
- Visual Studio 2022 (or Build Tools) with MSVC x64 toolchain
- Qt 6.5+ with
msvc2022_64kit - CMake 3.21+
- Ninja
- Git
scripts/bootstrap.ps1 performs:
- Tool checks (
git,cmake,ninja) - Qt detection from
-QtRoot,LA_QT, or commonC:\Qt\...paths - vcpkg detection from
-VcpkgRoot,VCPKG_ROOT, common paths, or local clone to.deps/vcpkg - Build execution via
scripts/build.ps1 - Normal deploy builds cache eSpeak NG 1.52.0 in
.deps/espeak-ngand stage it underout/build/<preset>/espeak-ngwithlibespeak-ng.dllandespeak-ng-data.
Default release build:
.\scripts\bootstrap.batFaster development build (skip deployment step):
.\scripts\bootstrap.bat -SkipDeployThe -SkipDeploy form intentionally does not stage eSpeak NG. Run the default command
before launching the packaged application or validating dubbing phoneme counts.
Clean rebuild:
.\scripts\bootstrap.bat -CleanExplicit Qt path:
.\scripts\bootstrap.bat -QtRoot C:\Qt\6.9.3Use MinGW preset (advanced path):
.\scripts\bootstrap.bat -Preset windows-mingw-release -QtRoot C:\Qt\6.9.3Primary presets:
windows-msvc-releasewindows-msvc-debugwindows-mingw-release
Legacy aliases (x64-release, x64-debug, mingw-release) are retained for compatibility only.
Debug builds keep the console attached for developer logging. All non-Debug Windows builds are packaged as GUI apps, so the terminal is hidden when LA Studio.exe opens.
By default, CMake + Ninja already performs incremental builds. If you only change a few source files, only affected targets should rebuild.
If your build feels slow during daily development, the most common reason is deployment work after compile (for example, windeployqt), not full recompilation.
Recommended workflow:
- Use
.\scripts\bootstrap.bat -SkipDeploywhile coding to reduce build time. - Run
.\scripts\bootstrap.bat(without-SkipDeploy) before packaging, sharing binaries, or validating runtime dependencies. - Use
-Cleanonly when you really need a full rebuild (toolchain change, cache corruption, major dependency switch).
CMakeUserPresets.jsonis optional and user-local; it is not required for the official build path.- CI and local development should use
scripts/bootstrap.ps1orscripts/build.ps1with explicit arguments.