diff --git a/src/project/CMakeLists.txt b/src/project/CMakeLists.txt index cb399d7..a5a2969 100644 --- a/src/project/CMakeLists.txt +++ b/src/project/CMakeLists.txt @@ -56,12 +56,13 @@ set(COMMON_SRCS ../cli/script.h) if(COMMAND qt_add_executable) - qt_add_executable(${APP_NAME} WIN32 MACOSX_BUNDLE ${COMMON_SRCS}) + qt_add_executable(${APP_NAME} WIN32 MACOSX_BUNDLE ${COMMON_SRCS} $<$:${app_icon_resource_windows}>) else() add_executable(${APP_NAME} $<$:WIN32> $<$:MACOSX_BUNDLE> ${COMMON_SRCS} + $<$:${app_icon_resource_windows}> ) endif() diff --git a/src/project/build.ps1 b/src/project/build.ps1 index 66fc536..c61453d 100644 --- a/src/project/build.ps1 +++ b/src/project/build.ps1 @@ -4,13 +4,61 @@ param ( ) if ($IsWindows) { - cmake . -DCMAKE_PREFIX_PATH=C:/Qt/6.9.0/msvc2022_64 -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_FLAGS="/Zc:__cplusplus /permissive-" -B build - cmake --build build --config Release --parallel 32 + # Check if Ninja is installed + if (-not (Get-Command ninja -ErrorAction SilentlyContinue)) { + Write-Error "Ninja build system is not installed. Please install Ninja." + Write-Error "Install via: choco install ninja (or download from https://github.com/ninja-build/ninja/releases)" + exit 1 + } + + # Check if Visual Studio is installed (including preview versions) for compiler + $vsPath = & "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -latest -prerelease -property installationPath 2>$null + if (-not $vsPath) { + Write-Error "Visual Studio is not installed. Please install Visual Studio 2022 with C++ development tools." + Write-Error "Download from: https://visualstudio.microsoft.com/downloads/" + exit 1 + } + + Write-Host "Using Visual Studio at: $vsPath" + + # Use Ninja generator + $generator = "Ninja" + Write-Host "Using CMake generator: $generator" + + # Check if Qt is installed + if (-not (Test-Path "C:\Qt\6.9.0\msvc2022_64")) { + Write-Error "Qt 6.9.0 MSVC2022 64-bit is not installed at C:\Qt\6.9.0\msvc2022_64" + Write-Error "Please install Qt 6.9.0 for MSVC 2022 64-bit from: https://www.qt.io/download" + exit 1 + } + + # Find vcvars64.bat to setup Visual Studio environment + $vcvars = "$vsPath\VC\Auxiliary\Build\vcvars64.bat" + if (-not (Test-Path $vcvars)) { + Write-Error "Visual Studio C++ tools not found. Please install C++ development workload." + exit 1 + } + + # Setup Visual Studio environment and run CMake with Ninja generator + & cmd /c "`"$vcvars`" && cmake . -G `"$generator`" -DCMAKE_PREFIX_PATH=C:\Qt\6.9.0\msvc2022_64 -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_FLAGS=`"/Zc:__cplusplus /permissive-`" -DCMAKE_BUILD_TYPE=Release -B build" + if ($LASTEXITCODE -ne 0) { + Write-Error "CMake configuration failed" + exit $LASTEXITCODE + } + + & cmd /c "`"$vcvars`" && cmake --build build --parallel 32" + if ($LASTEXITCODE -ne 0) { + Write-Error "Build failed" + exit $LASTEXITCODE + } + if ($Package) { + mkdir .\build\Release + Copy-Item .\build\SQLiteQueryAnalyzer.exe .\build\Release\SQLiteQueryAnalyzer.exe C:\Qt\6.9.0\msvc2022_64\bin\windeployqt.exe .\build\Release\SQLiteQueryAnalyzer.exe ../../deps/innosetup/ISCC.exe setup.iss } -} +} if ($IsLinux) { cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./linux/ diff --git a/src/resources/icon.ico b/src/resources/icon.ico index 2a3ef2d..e2980e3 100644 Binary files a/src/resources/icon.ico and b/src/resources/icon.ico differ