Complete Windows build support for SecondVoice: Build System: - Added CMakePresets.json with Windows and Linux presets - Created build.bat script for easy Windows builds - Support for Visual Studio 2019+ with Ninja generator - Automatic vcpkg integration and dependency installation Scripts: - build.bat with Debug/Release modes and clean builds - Auto-detection of Visual Studio and compiler tools - User-friendly error messages and setup instructions Documentation: - Comprehensive docs/build_windows.md guide - Step-by-step Windows build instructions - Troubleshooting section for common issues - Distribution guide for portable .exe Updates: - Updated README.md with cross-platform instructions - Enhanced .gitignore for Windows build artifacts - Separate build directories for Windows/Linux Platform Support: - Windows 10/11 with Visual Studio 2019+ - Linux with GCC/Clang (existing) - Shared vcpkg dependencies across platforms Output: - Windows: build/windows-release/Release/SecondVoice.exe - Linux: build/SecondVoice Next Steps: - Build on Windows with: build.bat --release - Executable ready for distribution - Same config.json and .env work cross-platform 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
156 lines
3.7 KiB
Batchfile
156 lines
3.7 KiB
Batchfile
@echo off
|
|
REM Build script for SecondVoice on Windows
|
|
|
|
echo ========================================
|
|
echo SecondVoice - Windows Build Script
|
|
echo ========================================
|
|
echo.
|
|
|
|
REM Check if vcpkg is installed
|
|
if not defined VCPKG_ROOT (
|
|
echo [ERROR] VCPKG_ROOT environment variable not set
|
|
echo.
|
|
echo Please install vcpkg and set VCPKG_ROOT:
|
|
echo 1. git clone https://github.com/microsoft/vcpkg.git C:\vcpkg
|
|
echo 2. cd C:\vcpkg
|
|
echo 3. .\bootstrap-vcpkg.bat
|
|
echo 4. setx VCPKG_ROOT "C:\vcpkg"
|
|
echo 5. Restart your terminal
|
|
echo.
|
|
exit /b 1
|
|
)
|
|
|
|
echo [INFO] vcpkg found at: %VCPKG_ROOT%
|
|
echo.
|
|
|
|
REM Check if .env exists
|
|
if not exist ".env" (
|
|
echo [WARNING] .env file not found
|
|
echo Please create .env from .env.example and add your API keys:
|
|
echo copy .env.example .env
|
|
echo notepad .env
|
|
echo.
|
|
)
|
|
|
|
REM Check for Visual Studio or build tools
|
|
where cl >nul 2>&1
|
|
if %errorlevel% neq 0 (
|
|
echo [WARNING] Visual Studio compiler not found in PATH
|
|
echo.
|
|
echo Trying to find Visual Studio...
|
|
|
|
REM Try to find vcvarsall.bat
|
|
set "VSWHERE=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"
|
|
|
|
if exist "%VSWHERE%" (
|
|
for /f "usebackq tokens=*" %%i in (`"%VSWHERE%" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do (
|
|
set "VS_PATH=%%i"
|
|
)
|
|
|
|
if defined VS_PATH (
|
|
echo [INFO] Found Visual Studio at: %VS_PATH%
|
|
call "%VS_PATH%\VC\Auxiliary\Build\vcvars64.bat"
|
|
) else (
|
|
echo [ERROR] Could not find Visual Studio
|
|
echo.
|
|
echo Please install Visual Studio 2019 or later with C++ tools:
|
|
echo https://visualstudio.microsoft.com/downloads/
|
|
echo.
|
|
exit /b 1
|
|
)
|
|
) else (
|
|
echo [ERROR] Could not find vswhere.exe
|
|
echo.
|
|
echo Please install Visual Studio 2019 or later:
|
|
echo https://visualstudio.microsoft.com/downloads/
|
|
echo.
|
|
exit /b 1
|
|
)
|
|
)
|
|
|
|
REM Check for Ninja
|
|
where ninja >nul 2>&1
|
|
if %errorlevel% neq 0 (
|
|
echo [INFO] Ninja not found, installing via vcpkg...
|
|
%VCPKG_ROOT%\vcpkg install ninja
|
|
)
|
|
|
|
REM Parse command line arguments
|
|
set BUILD_TYPE=Release
|
|
set CLEAN_BUILD=0
|
|
|
|
:parse_args
|
|
if "%~1"=="" goto :done_parsing
|
|
if /i "%~1"=="--debug" (
|
|
set BUILD_TYPE=Debug
|
|
shift
|
|
goto :parse_args
|
|
)
|
|
if /i "%~1"=="--release" (
|
|
set BUILD_TYPE=Release
|
|
shift
|
|
goto :parse_args
|
|
)
|
|
if /i "%~1"=="--clean" (
|
|
set CLEAN_BUILD=1
|
|
shift
|
|
goto :parse_args
|
|
)
|
|
echo [WARNING] Unknown argument: %~1
|
|
shift
|
|
goto :parse_args
|
|
|
|
:done_parsing
|
|
|
|
echo [INFO] Build type: %BUILD_TYPE%
|
|
echo.
|
|
|
|
REM Clean build if requested
|
|
if %CLEAN_BUILD%==1 (
|
|
echo [INFO] Cleaning build directory...
|
|
if exist "build\windows-%BUILD_TYPE%" (
|
|
rmdir /s /q "build\windows-%BUILD_TYPE%"
|
|
)
|
|
echo.
|
|
)
|
|
|
|
REM Configure with CMake
|
|
echo [INFO] Configuring CMake...
|
|
cmake --preset windows-%BUILD_TYPE%
|
|
|
|
if %errorlevel% neq 0 (
|
|
echo.
|
|
echo [ERROR] CMake configuration failed
|
|
exit /b 1
|
|
)
|
|
|
|
echo.
|
|
echo [INFO] Building...
|
|
cmake --build build/windows-%BUILD_TYPE% --config %BUILD_TYPE%
|
|
|
|
if %errorlevel% neq 0 (
|
|
echo.
|
|
echo [ERROR] Build failed
|
|
exit /b 1
|
|
)
|
|
|
|
echo.
|
|
echo ========================================
|
|
echo [SUCCESS] Build completed!
|
|
echo ========================================
|
|
echo.
|
|
echo Executable location:
|
|
echo build\windows-%BUILD_TYPE%\%BUILD_TYPE%\SecondVoice.exe
|
|
echo.
|
|
echo To run the application:
|
|
echo cd build\windows-%BUILD_TYPE%\%BUILD_TYPE%
|
|
echo SecondVoice.exe
|
|
echo.
|
|
echo Make sure you have:
|
|
echo 1. Created .env with your API keys
|
|
echo 2. config.json is present (copied automatically)
|
|
echo 3. A microphone connected
|
|
echo.
|
|
|
|
exit /b 0
|