diff --git a/.github/workflows/windows-build.yml b/.github/workflows/windows-build.yml
index b26fbd0e..d1f596b4 100644
--- a/.github/workflows/windows-build.yml
+++ b/.github/workflows/windows-build.yml
@@ -212,7 +212,10 @@ jobs:
msbuild win32\zoitechat.sln /m /verbosity:minimal /p:Configuration=Release /p:Platform=${{ matrix.platform }}
- set "PLUGIN_DIR=..\zoitechat-build\${{ matrix.platform }}\rel\plugins"
+ set "BUILD_DIR=..\zoitechat-build\${{ matrix.platform }}"
+ if not exist "%BUILD_DIR%" if /I "${{ matrix.platform }}"=="win32" set "BUILD_DIR=..\zoitechat-build\Win32"
+ if not exist "%BUILD_DIR%" if /I "${{ matrix.platform }}"=="win32" set "BUILD_DIR=..\zoitechat-build\WIN32"
+ set "PLUGIN_DIR=%BUILD_DIR%\rel\plugins"
for %%F in (hcchecksum.dll hcexec.dll hcfishlim.dll hcsysinfo.dll hcupd.dll hcwinamp.dll hcperl.dll hcpython3.dll hclua.dll) do (
if not exist "%PLUGIN_DIR%\%%F" (
if /I "%%F"=="hclua.dll" (
@@ -230,7 +233,15 @@ jobs:
- name: Preparing Artifacts
run: |
- move ..\zoitechat-build\${{ matrix.platform }}\ZoiteChat*.exe .\
+ set "BUILD_DIR=..\zoitechat-build\${{ matrix.platform }}"
+ if not exist "%BUILD_DIR%" if /I "${{ matrix.platform }}"=="win32" set "BUILD_DIR=..\zoitechat-build\Win32"
+ if not exist "%BUILD_DIR%" if /I "${{ matrix.platform }}"=="win32" set "BUILD_DIR=..\zoitechat-build\WIN32"
+ if not exist "%BUILD_DIR%" (
+ echo Missing build output dir: %BUILD_DIR%
+ dir ..\zoitechat-build
+ exit /b 1
+ )
+ move "%BUILD_DIR%\ZoiteChat*.exe" .\
move ..\zoitechat-build .\
shell: cmd
diff --git a/win32/copy/copy.vcxproj b/win32/copy/copy.vcxproj
index d7dc6f25..bd3e7b69 100644
--- a/win32/copy/copy.vcxproj
+++ b/win32/copy/copy.vcxproj
@@ -1,111 +1,113 @@
-
-
-
- v143
- Application
-
-
-
- Release
- Win32
-
-
- Release
- x64
-
-
-
- {C9B735E4-75BC-45AC-A5E3-39A6D076F912}
- copy
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ v143
+ Application
+
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+ {C9B735E4-75BC-45AC-A5E3-39A6D076F912}
+ copy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/win32/installer/zoitechat.iss.tt b/win32/installer/zoitechat.iss.tt
index 98a98e64..06a43100 100644
--- a/win32/installer/zoitechat.iss.tt
+++ b/win32/installer/zoitechat.iss.tt
@@ -114,17 +114,17 @@ Source: "share\themes\MS-Windows\*"; DestDir: "{app}\share\themes\MS-Windows"; F
Source: "share\locale\*"; DestDir: "{app}\share\locale"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: translations
Source: "etc\fonts\*"; DestDir: "{app}\etc\fonts"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: libs
-Source: "atk-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
-Source: "cairo*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
-Source: "freetype-*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
-Source: "fribidi-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
-Source: "fontconfig-*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
-Source: "gdk_pixbuf-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
-Source: "gdk-3-*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
-Source: "gio-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
-Source: "glib-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
-Source: "gmodule-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
-Source: "gobject-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
+Source: "*atk-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
+Source: "*cairo*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
+Source: "*freetype*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
+Source: "*fribidi*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
+Source: "*fontconfig*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
+Source: "*gdk_pixbuf*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
+Source: "*gdk-3*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
+Source: "*gio-2*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
+Source: "*glib-2*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
+Source: "*gmodule-2*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
+Source: "*gobject-2*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
#if APPARCH == "x64"
Source: "gspawn-win64-helper.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
Source: "gspawn-win64-helper-console.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
@@ -132,24 +132,24 @@ Source: "gspawn-win64-helper-console.exe"; DestDir: "{app}"; Flags: ignoreversio
Source: "gspawn-win32-helper.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
Source: "gspawn-win32-helper-console.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
#endif
-Source: "gthread-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
-Source: "gtk-3-*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
-Source: "iconv.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
+Source: "*gthread-2*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
+Source: "*gtk-3*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
+Source: "*iconv*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
Source: "libcrypto-*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
Source: "libssl-*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
Source: "libenchant.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
-Source: "ffi-*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
-Source: "intl.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
+Source: "*ffi*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
+Source: "*intl*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
Source: "jpeg*.dll"; DestDir: "{app}"; Flags: ignoreversion skipifsourcedoesntexist; Components: libs
-Source: "libpng16.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
+Source: "*png*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
Source: "libjpeg*.dll"; DestDir: "{app}"; Flags: ignoreversion skipifsourcedoesntexist; Components: libs
-Source: "libxml2-*.dll"; DestDir: "{app}"; Flags: ignoreversion skipifsourcedoesntexist; Components: libs
+Source: "*xml2*.dll"; DestDir: "{app}"; Flags: ignoreversion skipifsourcedoesntexist; Components: libs
Source: "xml2-*.dll"; DestDir: "{app}"; Flags: ignoreversion skipifsourcedoesntexist; Components: libs
-Source: "pango-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
-Source: "pangocairo-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
-Source: "pangoft2-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
-Source: "pangowin32-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
-Source: "zlib1.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
+Source: "*pango-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
+Source: "*pangocairo-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
+Source: "*pangoft2-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
+Source: "*pangowin32-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
+Source: "*zlib*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
Source: "plugins\hcnotifications-winrt.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: libs
@@ -160,8 +160,9 @@ Source: "lib\enchant\*"; DestDir: "{app}\lib\enchant"; Flags: ignoreversion; Com
Source: "lib\gtk-3.0\3.0.0\immodules\*"; DestDir: "{app}\lib\gtk-3.0\3.0.0\immodules"; Flags: ignoreversion createallsubdirs recursesubdirs skipifsourcedoesntexist; Components: libs
Source: "lib\gtk-3.0\3.0.0\printbackends\*"; DestDir: "{app}\lib\gtk-3.0\3.0.0\printbackends"; Flags: ignoreversion createallsubdirs recursesubdirs skipifsourcedoesntexist; Components: libs
-Source: "girepository-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: langs\lua
-Source: "lua51.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: langs\lua
+Source: "*girepository*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: langs\lua
+Source: "lua51.dll"; DestDir: "{app}"; Flags: ignoreversion skipifsourcedoesntexist; Components: langs\lua
+Source: "luajit*.dll"; DestDir: "{app}"; Flags: ignoreversion skipifsourcedoesntexist; Components: langs\lua
Source: "lib\lua\2.1\lgi\*.dll"; DestDir: "{app}\lib\lua\2.1\lgi"; Flags: ignoreversion; Components: langs\lua
Source: "lib\girepository-1.0\*.typelib"; DestDir: "{app}\lib\girepository-1.0"; Flags: ignoreversion; Components: langs\lua
Source: "share\lua\2.1\*.lua"; DestDir: "{app}\share\lua\2.1"; Flags: ignoreversion; Components: langs\lua
diff --git a/win32/zoitechat.props b/win32/zoitechat.props
index 5b90366b..919c6e08 100644
--- a/win32/zoitechat.props
+++ b/win32/zoitechat.props
@@ -1,136 +1,166 @@
-
-
-
-
-
-
- c:\gtk-build\gtk
- c:\gtk-build\gendef
- c:\gtk-build\perl-5.20
- c:\gtk-build\python-3.14
- c:\gtk-build\WinSparkle
-
-
-
-
-
- GTK_DISABLE_DEPRECATED;GDK_PIXBUF_DISABLE_DEPRECATED;G_DISABLE_SINGLE_INCLUDES;GDK_PIXBUF_DISABLE_SINGLE_INCLUDES;GTK_DISABLE_SINGLE_INCLUDES;HAVE_X509_GET_SIGNATURE_NID;HAVE_SSL_CTX_GET_SSL_METHOD;DEFAULT_CERT_FILE="cert.pem";HAVE_STRTOULL;strtoull=_strtoui64;strcasecmp=stricmp;strncasecmp=strnicmp;__inline__=__inline;$(GtkDefines)
-
- $(YourDepsPath)\$(PlatformName)\release
- $(YourGendefPath)
- $(YourWinSparklePath)\$(PlatformName)
- $(YourPerlPath)\$(PlatformName)
- perl520
- $(YourPython3Path)\$(PlatformName)
- python314
- hcpython3
- true
- false
- true
- false
- true
- false
- $(DepsRoot)\include\luajit-2.1
- $(DepsRoot)\include\luajit
- $(DepsRoot)\include\lua5.1
- $(DepsRoot)\include\lua51
- hclua
- lua51
- luajit-5.1
- luajit
- true
- false
- "$(Python3Path)\python.exe" "$(DepsRoot)\bin\glib-genmarshal"
- "$(Python3Path)\python.exe" "$(DepsRoot)\bin\glib-genmarshal"
- $(DepsRoot)\include\glib-2.0;$(DepsRoot)\lib\glib-2.0\include;$(DepsRoot)\include\libxml2
- true
- HAVE_GTK3
- $(DepsRoot)\include\gtk-3.0;$(DepsRoot)\lib\gtk-3.0\include
- $(DepsRoot)\include\atk-1.0;$(DepsRoot)\include\cairo;$(DepsRoot)\include\pango-1.0;$(DepsRoot)\include\gdk-pixbuf-2.0;$(DepsRoot)\include\harfbuzz
- $(Gtk3);$(GtkCommon)
- ssleay32.lib
- libeay32.lib
- libssl.lib
- libcrypto.lib
- $(SslModernLib);$(CryptoModernLib)
- $(SslLegacyLib);$(CryptoLegacyLib)
- $(DepsRoot)\include
- gtk-3.lib;gdk-3.lib;wininet.lib;winmm.lib;ws2_32.lib;atk-1.0.lib;gio-2.0.lib;gdk_pixbuf-2.0.lib;pangowin32-1.0.lib;pangocairo-1.0.lib;pango-1.0.lib;cairo.lib;gobject-2.0.lib;gmodule-2.0.lib;glib-2.0.lib;intl.lib;iconv.lib;zlib1.lib;xml2.lib;jpeg.lib;libpng16.lib;$(OpenSslLibs)
- $(SolutionDir)..\data\\
- $(SolutionDir)..\..\zoitechat-build
- $(ZoiteChatBuild)\$(PlatformName)\bin\
- $(ZoiteChatBuild)\$(PlatformName)\obj\
- $(ZoiteChatBuild)\$(PlatformName)\lib\
- $(ZoiteChatBuild)\$(PlatformName)\pdb\
- $(ZoiteChatBuild)\$(PlatformName)\rel\
- $(ISCC_EXE)
- $(ProgramFiles(x86))\Inno Setup 5\iscc.exe
- $(ProgramFiles(x86))\Inno Setup 6\iscc.exe
- $(ProgramFiles)\Inno Setup 5\iscc.exe
- $(ProgramFiles)\Inno Setup 6\iscc.exe
-
-
-
- false
- $(ZoiteChatObj)$(ProjectName)\
- false
- true
- MultiByte
-
-
-
-
- Level3
- NotUsing
- 4996
- /d2Zi+ %(AdditionalOptions)
- true
-
-
- MaxSpeed
-
-
- true
- true
- true
- NTDDI_VERSION=NTDDI_WIN8;_WIN32_WINNT=_WIN32_WINNT_WIN8;%(PreProcessorDefinitions)
-
-
- true
-
-
- $(ZoiteChatLib)$(TargetName).lib
- $(ZoiteChatPdb)$(TargetName).pdb
- Windows
- Debug
- true
- true
- UseLinkTimeCodeGeneration
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+ $(ZOITECHAT_DEPS_PATH)
+ c:\gtk-build\gtk
+ c:\gtk-build\gendef
+ c:\gtk-build\perl-5.20
+ $(ZOITECHAT_PYTHON3_PATH)
+ c:\gtk-build\python-3.14
+ c:\gtk-build\WinSparkle
+
+
+
+
+
+ GTK_DISABLE_DEPRECATED;GDK_PIXBUF_DISABLE_DEPRECATED;G_DISABLE_SINGLE_INCLUDES;GDK_PIXBUF_DISABLE_SINGLE_INCLUDES;GTK_DISABLE_SINGLE_INCLUDES;HAVE_X509_GET_SIGNATURE_NID;HAVE_SSL_CTX_GET_SSL_METHOD;DEFAULT_CERT_FILE="cert.pem";HAVE_STRTOULL;strtoull=_strtoui64;strcasecmp=stricmp;strncasecmp=strnicmp;__inline__=__inline;$(GtkDefines)
+
+ $(YourDepsPath)\$(PlatformName)\release
+ $(YourGendefPath)
+ $(YourWinSparklePath)\$(PlatformName)
+ $(YourPerlPath)\$(PlatformName)
+ perl520
+ $(YourPython3Path)\$(PlatformName)
+ python314
+ hcpython3
+ true
+ false
+ true
+ false
+ true
+ false
+ $(DepsRoot)\include\luajit-2.1
+ $(DepsRoot)\include\luajit
+ $(DepsRoot)\include\lua5.1
+ $(DepsRoot)\include\lua51
+ hclua
+ lua51
+ luajit-5.1
+ luajit
+ true
+ false
+ "$(DepsRoot)\bin\glib-genmarshal.exe"
+ "$(Python3Path)\python.exe" "$(DepsRoot)\bin\glib-genmarshal"
+ $(DepsRoot)\include\glib-2.0;$(DepsRoot)\lib\glib-2.0\include;$(DepsRoot)\include\libxml2
+ true
+ HAVE_GTK3
+ $(DepsRoot)\include\gtk-3.0;$(DepsRoot)\lib\gtk-3.0\include
+ $(DepsRoot)\include\atk-1.0;$(DepsRoot)\include\cairo;$(DepsRoot)\include\pango-1.0;$(DepsRoot)\include\gdk-pixbuf-2.0;$(DepsRoot)\include\harfbuzz
+ $(Gtk3);$(GtkCommon)
+ ssleay32.lib
+ libeay32.lib
+ libssl.lib
+ libcrypto.lib
+ $(SslModernLib);$(CryptoModernLib)
+ $(SslLegacyLib);$(CryptoLegacyLib)
+ $(DepsRoot)\include
+
+ gtk-3.lib
+ gtk-3.0.lib
+ libgtk-3.lib
+ libgtk-3.0.lib
+ gdk-3.lib
+ gdk-3.0.lib
+ libgdk-3.lib
+ libgdk-3.0.lib
+ intl.lib
+ libintl.lib
+ iconv.lib
+ libiconv.lib
+ zlib1.lib
+ zlib.lib
+ libxml2.lib
+ xml2.lib
+ libxml2-2.lib
+ jpeg.lib
+ libjpeg.lib
+ libjpeg-8.lib
+ libjpeg-9.lib
+ libpng16.lib
+ libpng16_static.lib
+ libpng.lib
+ $(Gtk3Lib);$(Gdk3Lib);wininet.lib;winmm.lib;ws2_32.lib;atk-1.0.lib;gio-2.0.lib;gdk_pixbuf-2.0.lib;pangowin32-1.0.lib;pangocairo-1.0.lib;pango-1.0.lib;cairo.lib;gobject-2.0.lib;gmodule-2.0.lib;glib-2.0.lib;$(IntlLib);$(IconvLib);$(ZlibLib);$(Xml2Lib);$(JpegLib);$(PngLib);$(OpenSslLibs)
+ $(SolutionDir)..\data\\
+ $(SolutionDir)..\..\zoitechat-build
+ $(ZoiteChatBuild)\$(PlatformName)\bin\
+ $(ZoiteChatBuild)\$(PlatformName)\obj\
+ $(ZoiteChatBuild)\$(PlatformName)\lib\
+ $(ZoiteChatBuild)\$(PlatformName)\pdb\
+ $(ZoiteChatBuild)\$(PlatformName)\rel\
+ $(ISCC_EXE)
+ $(ProgramFiles(x86))\Inno Setup 5\iscc.exe
+ $(ProgramFiles(x86))\Inno Setup 6\iscc.exe
+ $(ProgramFiles)\Inno Setup 5\iscc.exe
+ $(ProgramFiles)\Inno Setup 6\iscc.exe
+ true
+
+
+
+ false
+ $(ZoiteChatObj)$(ProjectName)\
+ false
+ true
+ MultiByte
+
+
+
+
+ Level3
+ NotUsing
+ 4996
+ /d2Zi+ %(AdditionalOptions)
+ true
+
+
+ MaxSpeed
+
+
+ true
+ true
+ true
+ NTDDI_VERSION=NTDDI_WIN8;_WIN32_WINNT=_WIN32_WINNT_WIN8;%(PreProcessorDefinitions)
+
+
+ true
+
+
+ $(ZoiteChatLib)$(TargetName).lib
+ $(ZoiteChatPdb)$(TargetName).pdb
+ Windows
+ Debug
+ true
+ true
+ UseLinkTimeCodeGeneration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+