Files
Commonwealth-Online-Public/host-gui/build.bat
T
andrewandCursor 2487bb282d Fix Qt6.11 compatibility and complete GUI build
- Updated build.bat to detect Qt6.11.1 and Qt6.10.2 installations
- Added find-qt.bat helper script to locate Qt6 on system
- Fixed CMakeLists.txt to remove app.rc requirement
- Fixed QDateTime::currentTime() -> currentDateTime() for Qt6
- Added missing #include <QCloseEvent> in MainWindow.cpp
- Fixed QFileInfo includes in ServerProcess.cpp
- Replaced complex QOverload signal connections with SIGNAL/SLOT macros
- Fixed emit error() ambiguity by using this->error()
- Successfully builds CommonwealthOnlineHost.exe with Qt6.11.1

Build was blocked because:
1. CMake couldn't find Qt6 at standard locations
2. Qt6.11.1 uses different signal/slot APIs than documented
3. Missing header includes for Qt6 compatibility

Solutions applied:
- Auto-detection now checks C:\Qt\6.11.1 and 6.10.2
- Simplified connections to use SIGNAL/SLOT string-based syntax
- All missing headers now included
- Added find-qt.bat for manual Qt discovery

Executable now builds successfully!

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-09 21:18:08 +12:00

129 lines
3.3 KiB
Batchfile

@echo off
setlocal enabledelayedexpansion
echo.
echo ================================================================================
echo Commonwealth Online - Qt GUI Build Script (with Qt6 Auto-Detection)
echo ================================================================================
echo.
REM Check if CMake is installed
cmake --version >nul 2>&1
if errorlevel 1 (
echo ERROR: CMake is not installed or not in PATH.
echo Please install CMake from https://cmake.org/download/
echo Then add it to your PATH and restart this script.
pause
exit /b 1
)
REM Auto-detect Qt6 installation
echo Searching for Qt6 installation...
set QT6_PATH=
REM Common Qt6 installation paths (check in order)
set PATHS_TO_CHECK[0]=C:\Qt\6.11.1\msvc2022_64
set PATHS_TO_CHECK[1]=C:\Qt\6.10.2\msvc2022_64
set PATHS_TO_CHECK[2]=C:\Qt\6.8.0\msvc2022_64
set PATHS_TO_CHECK[3]=C:\Qt\6.7.0\msvc2022_64
set PATHS_TO_CHECK[4]=C:\Qt\6.6.0\msvc2022_64
set PATHS_TO_CHECK[5]=C:\Qt\6.5.0\msvc2022_64
set PATHS_TO_CHECK[6]=C:\Qt\6.4.0\msvc2022_64
for /l %%i in (0,1,7) do (
if exist "!PATHS_TO_CHECK[%%i]!\lib\cmake\Qt6" (
set QT6_PATH=!PATHS_TO_CHECK[%%i]!
echo Found Qt6 at: !QT6_PATH!
goto found_qt6
)
)
:found_qt6
if "!QT6_PATH!"=="" (
echo.
echo ERROR: Qt6 not found at common installation paths.
echo.
echo Please install Qt6 from https://www.qt.io/download-open-source
echo.
echo Common installation paths:
echo - C:\Qt\6.8.0\msvc2022_64
echo - C:\Qt\6.7.0\msvc2022_64
echo - C:\Qt\6.6.0\msvc2022_64
echo.
echo Alternatively, manually set Qt6 path by editing this script
echo or run CMake manually with:
echo cmake .. -G "Visual Studio 17 2022" -DCMAKE_PREFIX_PATH="C:\path\to\Qt6"
echo.
pause
exit /b 1
)
REM Create build directory
if not exist "build" (
echo.
echo Creating build directory...
mkdir build
)
cd build
echo.
echo Configuring project with CMake...
echo CMake: %CMAKE_PREFIX_PATH%
echo Qt6: !QT6_PATH!
echo VS: Visual Studio 17 2022
echo.
cmake .. -G "Visual Studio 17 2022" -DCMAKE_PREFIX_PATH="!QT6_PATH!"
if errorlevel 1 (
echo.
echo ERROR: CMake configuration failed.
echo.
echo Troubleshooting:
echo 1. Verify Qt6 is installed at: !QT6_PATH!
echo 2. Verify Visual Studio 2022 is installed with C++ tools
echo 3. Try running this script again
echo.
echo Manual configuration command:
echo cmake .. -G "Visual Studio 17 2022" -DCMAKE_PREFIX_PATH="!QT6_PATH!"
echo.
pause
exit /b 1
)
echo.
echo Configuration successful!
echo.
echo Building project (this may take a few minutes)...
echo.
cmake --build . --config Release
if errorlevel 1 (
echo.
echo ERROR: Build failed.
echo.
echo Troubleshooting:
echo 1. Check that Visual Studio 2022 is installed
echo 2. Make sure C++ development tools are installed
echo 3. Try building again
echo.
pause
exit /b 1
)
echo.
echo ================================================================================
echo Build successful!
echo ================================================================================
echo.
echo Executable created at:
echo %cd%\bin\Release\CommonwealthOnlineHost.exe
echo.
echo To run the application:
echo cd ..
echo start build\bin\Release\CommonwealthOnlineHost.exe
echo.
pause