Building¶
Windows¶
The Windows build is currently x64-only and follows the same shape as
ZoiteChat’s Windows GitHub Actions workflow: prepare C:\gtk-build, put
the dependency bundles where win32\zoitechat.props expects them, then build
win32\zoitechat.sln with MSBuild.
Software¶
Install:
Visual Studio 2022 Community or Visual Studio 2022 Build Tools with the Desktop development with C++ workload
Inno Setup 6 if you want to build the installer
Source code¶
Clone the source and enter the checkout:
git clone https://github.com/zoitechat/zoitechat.git
cd zoitechat
Dependencies¶
Create the dependency root:
mkdir C:\gtk-build
Download the GTK3 x64 bundle
and extract it to C:\gtk-build\gtk\x64\release.
Download the remaining Windows dependency artifacts from the ZoiteChat gvsbuild releases and extract them to these paths:
gendef:
C:\gtk-build\gendefWinSparkle x64 bundle:
C:\gtk-build\WinSparkle\x64Perl 5.42 x64 bundle:
C:\gtk-build\perl-5.42.0.1\x64
Set up Python where the project file expects it. From PowerShell, adjust the Python path if your install is elsewhere:
mkdir C:\gtk-build\python-3.14
cmd /c mklink /J C:\gtk-build\python-3.14\x64 C:\Python314
C:\gtk-build\python-3.14\x64\python.exe -m pip install --upgrade pip cffi
If you use different locations, set these environment variables before building
instead of editing win32\zoitechat.props:
ZOITECHAT_DEPS_PATHZOITECHAT_GENDEF_PATHZOITECHAT_PERL_PATHZOITECHAT_PYTHON3_PATHZOITECHAT_WINSPARKLE_PATHZOITECHAT_ISCC_PATH
Building¶
Open Developer Command Prompt for VS 2022 in the source checkout and run:
msbuild win32\zoitechat.sln /m /verbosity:minimal /p:Configuration=Release /p:Platform=x64
To build the installer, open win32\zoitechat.sln in Visual Studio,
set release/installer as the startup project, then run Build.
The build output is written to ..\zoitechat-build\x64. The installer
build writes a ZoiteChat*.exe installer in that output tree.
Unix¶
First of all, you have to install the build dependencies. Package names differ across distros, so be creative and check meson’s output if you get an error.
Most package-managers can get the dependencies for you:
dnf:
dnf install -y meson gettext-devel gtk3-devel iso-codes-devel libarchive-devel libayatana-appindicator-gtk3-devel libcanberra-devel lua-devel openssl-devel perl-devel perl-ExtUtils-Embed python3-cffi python3-devel
apt:
apt-get install -y meson gettext iso-codes libarchive-dev libayatana-appindicator3-dev libcanberra-dev libglib2.0-dev libgtk-3-dev liblua5.4-dev libpci-dev libperl-dev libssl-dev python3-dev python3-cffi desktop-file-utils
ZoiteChat has its source code hosted using Git, so you have to install Git as well. When it’s ready, you can start the actual compilation, which is basically:
git clone https://github.com/zoitechat/zoitechat.git
cd zoitechat
meson setup build
ninja -C build
sudo ninja -C build install
This will compile with defaults. See meson configure build for more info
about flags.