Switched hardcoded DLL names to wildcard patterns (ex: atk-1.0-0.dll → *atk-1.0-0.dll, iconv.dll → *iconv*.dll, etc.) so it correctly picks up lib* prefixed builds.
Made Enchant provider copying resilient by copying lib\enchant\*.dll instead of a single hardcoded libenchant_myspell.dll.
Added optional copy support for LuaJIT DLLs (luajit*.dll) alongside lua51.dll.
win32/installer/zoitechat.iss.tt
Updated DLL Source: entries to match real-world names from dependency bundles using wildcards (*glib-2*.dll, *gtk-3*.dll, etc.).
Added optional LuaJIT inclusion (skip if missing) and wildcarded girepository.
win32/zoitechat.props
Added env overrides so CI (and humans) can actually control paths:
ZOITECHAT_DEPS_PATH
ZOITECHAT_PYTHON3_PATH
already supported ISCC_EXE and now it actually matters.
Fixed glib-genmarshal handling to prefer glib-genmarshal.exe if present (and only use Python script path if needed).
Added library-name auto-detection for MSVC import libs (gtk-3.lib vs gtk-3.0.lib vs libgtk-3.lib, etc.) so linking doesn’t die just because the bundle names differ.
Ensured InstallerEnabled gets re-evaluated after IsccPath is resolved (GTK3 had the order wrong, so installer builds could be silently disabled).
.github/workflows/windows-build.yml
Made artifact collection and plugin validation tolerate win32 vs Win32 output directory naming, instead of assuming humans are consistent (they aren’t).
Fixed ISCC path normalization by trimming surrounding quotes from ZOITECHAT_ISCC_PATH and storing discovered default paths unquoted (so they can be checked reliably with Exists(...)).
Fixed installer invocation by quoting $(IsccPath) at execution time in the pre-build command, which supports paths like C:\Program Files (x86)\Inno Setup 6\ISCC.exe
Python3Enabled (python executable + import lib + cffi)
PerlEnabled (perl executable + perl runtime DLL + gendef.exe)
InstallerEnabled (Inno Setup iscc.exe).
Updated the Python plugin project to compile only when Python3Enabled is true, and otherwise emit a clear skip message instead of failing prebuild/import steps.
Updated the Perl plugin project similarly to gate build steps on PerlEnabled and print a skip message when prerequisites are missing.
Updated the installer project so it only uses C++ targets when InstallerEnabled is true, with a fallback skip message when Inno Setup is unavailable.
Added a new MSBuild target (ValidateWindowsBuildEnvironment) that runs before build prep and fails fast with explicit errors when GTK/GLib/OpenSSL headers or Python are missing, instead of allowing a long cascade of downstream compile/link/copy failures.
Updated the Windows build to prefer glib-genmarshal executables with a Python fallback for marshal generation.
Made GTK link dependencies more robust by selecting available ATK library names before assembling GTK libs.