Adjust for GTK3 github actions compile testing.

fixed gtk2 compiling.
This commit is contained in:
2026-02-01 15:23:36 -07:00
parent e5673e9a7b
commit 7dd47dbd2e
11 changed files with 212 additions and 18 deletions

View File

@@ -29,11 +29,13 @@ jobs:
build-essential pkg-config meson ninja-build cmake \
gettext \
libcanberra-dev libdbus-glib-1-dev libglib2.0-dev \
libgtk2.0-dev libgtk-3-dev \
libgtk-3-dev \
libgtk-3-bin libglib2.0-bin shared-mime-info gsettings-desktop-schemas \
libluajit-5.1-dev libpci-dev libperl-dev libssl-dev \
python3-dev python3-cffi mono-devel desktop-file-utils \
patchelf file curl
patchelf file curl \
libwayland-client0 libwayland-cursor0 libwayland-egl1 \
libxkbcommon0
- name: Configure
run: |

View File

@@ -22,9 +22,11 @@ jobs:
git ca-certificates \
build-essential pkg-config meson ninja-build cmake \
gettext \
libcanberra-dev libdbus-glib-1-dev libglib2.0-dev libgtk2.0-dev \
libcanberra-dev libdbus-glib-1-dev libglib2.0-dev \
libgtk-3-dev \
libluajit-5.1-dev libpci-dev libperl-dev libssl-dev \
python3-dev python3-cffi mono-devel desktop-file-utils
python3-dev python3-cffi mono-devel desktop-file-utils \
libx11-dev libxext-dev libxrender-dev libxrandr-dev libxi-dev
- uses: actions/checkout@v4
with:
submodules: true

View File

@@ -26,7 +26,7 @@ jobs:
mingw-w64-x86_64-python-cffi
mingw-w64-x86_64-meson
mingw-w64-x86_64-ninja
mingw-w64-x86_64-gtk2
mingw-w64-x86_64-gtk3
mingw-w64-x86_64-gtk-update-icon-cache
mingw-w64-x86_64-luajit
mingw-w64-x86_64-desktop-file-utils

View File

@@ -39,7 +39,7 @@ jobs:
- name: Install Dependencies
run: |
New-Item -Name "deps" -ItemType "Directory"
New-Item -Name "deps" -ItemType "Directory" -Force | Out-Null
Invoke-WebRequest http://files.jrsoftware.org/is/5/innosetup-5.5.9-unicode.exe -OutFile deps\innosetup-unicode.exe
& deps\innosetup-unicode.exe /VERYSILENT | Out-Null
@@ -47,9 +47,37 @@ jobs:
Invoke-WebRequest https://github.com/zoitechat/gvsbuild/releases/download/zoitechat-2.17.0/idpsetup-1.5.1.exe -OutFile deps\idpsetup.exe
& deps\idpsetup.exe /VERYSILENT
Invoke-WebRequest https://github.com/zoitechat/gvsbuild/releases/download/zoitechat-2.17.0/gtk-${{ matrix.platform }}-2018-08-29-openssl1.1.7z -OutFile deps\gtk-${{ matrix.arch }}.7z
& 7z.exe x deps\gtk-${{ matrix.arch }}.7z -oC:\gtk-build\gtk
# ----- GTK3 toolchain (gvsbuild) -----
# We install GTK3 into C:\gtk-build\gtk so existing .vcxproj include/lib paths keep working.
# (Yes, this is what Windows dev feels like: duct tape and hope.)
# Ensure base dirs exist
New-Item -Path "C:\gtk-build" -ItemType Directory -Force | Out-Null
New-Item -Path "C:\gtk-build\gtk" -ItemType Directory -Force | Out-Null
python -m pip install --upgrade pip
python -m pip install cffi
# gvsbuild uses VS toolchain; pin a known-good gvsbuild
python -m pip install "gvsbuild==2024.5.0"
# Build/install GTK3 stack. Target dir is architecture-specific.
# Layout matches: C:\gtk-build\gtk\{x64|x86}
$gtkArch = if ("${{ matrix.platform }}" -eq "x64") { "x64" } else { "x86" }
# Clean any prior install (CI sometimes reuses workspace paths)
if (Test-Path "C:\gtk-build\gtk\$gtkArch") { Remove-Item "C:\gtk-build\gtk\$gtkArch" -Recurse -Force }
# Run gvsbuild. These packages cover typical HexChat/ZoiteChat deps.
# Add/remove libs here as your solution requires.
python -m gvsbuild build `
--vsver 16 `
--arch $gtkArch `
--configuration release `
--out-dir "C:\gtk-build\gtk" `
gtk3 glib gobject-introspection pango atk cairo gdk-pixbuf libsoup libepoxy librsvg libxml2 gettext openssl
# ----- Other bundled deps you already used -----
Invoke-WebRequest https://github.com/zoitechat/gvsbuild/releases/download/zoitechat-2.17.0/gendef-20111031.7z -OutFile deps\gendef.7z
& 7z.exe x deps\gendef.7z -oC:\gtk-build
@@ -70,9 +98,7 @@ jobs:
if (Test-Path $target) { Remove-Item $target -Recurse -Force }
New-Item -Path $pyDir -Name "${{ matrix.platform }}" -ItemType Junction -Value $pyRoot | Out-Null
}
python -m pip install --upgrade pip
python -m pip install cffi
shell: powershell
- name: Build
run: |
@@ -88,6 +114,13 @@ jobs:
set "LIB=%PYTHON_DIR%\libs;%LIB%"
set "INCLUDE=%PYTHON_DIR%\include;%INCLUDE%"
rem Make sure GTK3 runtime bin is on PATH for any post-build steps/tests.
if "${{ matrix.platform }}"=="x64" (
set "PATH=C:\gtk-build\gtk\x64\release\bin;%PATH%"
) else (
set "PATH=C:\gtk-build\gtk\x86\release\bin;%PATH%"
)
msbuild win32\zoitechat.sln /m /verbosity:minimal /p:Configuration=Release /p:Platform=${{ matrix.platform }}
shell: cmd