User Tools

Site Tools


user:draugthewhopper:windowsbuild

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Last revision Both sides next revision
user:draugthewhopper:windowsbuild [2021/01/02 18:30]
draugthewhopper
user:draugthewhopper:windowsbuild [2021/01/03 11:59]
draugthewhopper
Line 77: Line 77:
 (Nothing seems to be put in this folder anyway?) (Nothing seems to be put in this folder anyway?)
  
-If CMake finds wrong include directories,​ e.g. from Visual Studio, change them manually to '​C:​\msys32\mingw32\include'​+(I use "​.",​ but I don't know if it makes any difference at all) 
 + 
 +<del>If CMake finds wrong include directories,​ e.g. from Visual Studio, change them manually to '​C:​\msys32\mingw32\include' ​</​del>​
  
 If CMake fails near a pkgconfig or gtk/gio item, check to make sure that it hasn’t defaulted the PKG_CONFIG_EXECUTABLE to a perl directory. If so, revert it to the msys32 one, probably C:​\msys32\mingw32\bin\pkg-config.exe If CMake fails near a pkgconfig or gtk/gio item, check to make sure that it hasn’t defaulted the PKG_CONFIG_EXECUTABLE to a perl directory. If so, revert it to the msys32 one, probably C:​\msys32\mingw32\bin\pkg-config.exe
Line 85: Line 87:
 Once it finally doesn’t have warnings or errors, Click '​generate'​. Once it finally doesn’t have warnings or errors, Click '​generate'​.
  
-If configuring goes wrong, delete ​directory c:\cfbuild\CMakeFiles ​and try again.+If configuring goes wrong, delete ​the contents of C:\cfbuild\ and try again.
  
 Compile: Compile:
Line 91: Line 93:
 Open msys32 32-bit shell (“MSYS2 MinGW 32-bit” in the Start Menu) Open msys32 32-bit shell (“MSYS2 MinGW 32-bit” in the Start Menu)
  
-Go to c:\cfbuild+cd /c/cfbuild/
  
 run mingw32-make.exe run mingw32-make.exe
Line 97: Line 99:
 Create release package: Create release package:
  
-Run '​mingw32-make install'​, though it doesn'​t seem to do much.+Run '​mingw32-make install'​
  
 Make directory '​release',​ somewhere in your system Make directory '​release',​ somewhere in your system
  
-Copy \cfbuild\bin\crossfire-client-gtk2.exe to release\+Copy cfbuild\bin\crossfire-client-gtk2.exe to release\
  
-Create dir release\bin,​ and copy \cfbuild\bin\cfsndserv.exe to it+<del>Create dir release\bin,​ and copy \cfbuild\bin\cfsndserv.exe to it</​del>​ sound server has been merged to main executable since r21700 ​
  
-Copy directory ​'share' ​to release\+Copy directory ​cfbuild\share to release\
  
-At this point, the client should run more or less fine, at least in your dev environment. Now we need to prep it so it can be run on other systems (but this is the broken part). +<del>At this point, the client should run more or less fine, at least in your dev environment. Now we need to prep it so it can be run on other systems (but this is the broken part).</del> 
- +  - Ordered List Item 
-<​del>​In release, create a folder called “lib”, and copy “gdk-pixbuf-2.0” and “gtk-2.0” from “C:​\msys32\mingw32\lib”.+In release, create a folder called “lib”, and copy “gdk-pixbuf-2.0” and “gtk-2.0” from “C:​\msys32\mingw32\lib”.
  
 This fixes some xpm warnings, and makes a few GUI icons render correctly, apparently a very few gui elements are xpm? This fixes some xpm warnings, and makes a few GUI icons render correctly, apparently a very few gui elements are xpm?
  
-Fetch “msys32\mingw32\share\themes” and place it in “release\share\”. This fixes an issue that breaks the GTK theme.</​del>​+Fetch “msys32\mingw32\share\themes” and place it in “release\share\”. This fixes an issue that breaks the GTK theme.
  
-Find sounds from somewhere, and put them in share\+Find sounds from somewhere, and put them in release\share\crossfire-client\sounds\
  
 Find the DLLs, and put them in release\ Find the DLLs, and put them in release\
Line 136: Line 138:
  libgcc_s_dw2-1.dll  libgcc_s_dw2-1.dll
  libgdk-win32-2.0-0.dll  libgdk-win32-2.0-0.dll
- libgdk_pixbuf-2.0-0.dll Adding this causes a deluge of warnings about XPM not being supported. To fix, in release, create a folder called “lib”, and copy “gdk-pixbuf-2.0” and “gtk-2.0” from “C:​\msys32\mingw32\lib”. ​<del>This fixes some xpm warnings, and makes a few GUI icons render correctly, apparently a very few gui elements are xpm?</​del>​+ libgdk_pixbuf-2.0-0.dll ​<del>Adding this causes a deluge of warnings about XPM not being supported. To fix, in release, create a folder called “lib”, and copy “gdk-pixbuf-2.0” and “gtk-2.0” from “C:​\msys32\mingw32\lib”. This fixes some xpm warnings, and makes a few GUI icons render correctly, apparently a very few gui elements are xpm?</​del>​
  libgio-2.0-0.dll  libgio-2.0-0.dll
- libglib-2.0-0.dll <​del>​Adding this causes the sound server to fail to spawn, message "Could not spawn sound server: Failed to execute helper program (Invalid argument)"​ Skip for now, and it will work in the dev enrions.</​del>​ The sound server will fail to spawn if you do not get the glib helper program. This is a Windows-specific thing.+ libglib-2.0-0.dll <​del>​Adding this causes the sound server to fail to spawn, message "Could not spawn sound server: Failed to execute helper program (Invalid argument)"​ Skip for now, and it will work in the dev enrions.</​del> <del>The sound server will fail to spawn if you do not get the glib helper program. This is a Windows-specific thing.</​del>​ Sawning the sound server is no longer an issue since r21700, when it was merged into the main binary.
  libgmodule-2.0-0.dll  libgmodule-2.0-0.dll
  libgobject-2.0-0.dll  libgobject-2.0-0.dll
Line 147: Line 149:
  libidn2-0.dll  libidn2-0.dll
  libintl-8.dll  libintl-8.dll
 + libmikmod-3.dll (skipping this doesn'​t seem to break anything, but the client still looks for it)
  libnghttp2-14.dll  libnghttp2-14.dll
 + libopenal-1.dll (skipping this doesn'​t seem to break anything, but the client still looks for it)
  libpango-1.0-0.dll  libpango-1.0-0.dll
  libpangocairo-1.0-0.dll  libpangocairo-1.0-0.dll
  libpangoft2-1.0-0.dll  libpangoft2-1.0-0.dll
  libpangowin32-1.0-0.dll  libpangowin32-1.0-0.dll
- libpcre-1.dll+ libpcre-1.dll ​(skipping this doesn'​t seem to break anything, but the client still looks for it)
  libpixman-1-0.dll  libpixman-1-0.dll
  libpng16-16.dll  libpng16-16.dll
Line 164: Line 168:
  zlib1.dll  zlib1.dll
  
-These DLLs go in release\bin\,​ since they are used by the sound server:+<del>These DLLs go in release\bin\,​ since they are used by the sound server:<​del>​ 
 +Since r21700, these dlls go with all the others.
  
  libmad-0.dll  libmad-0.dll
Line 172: Line 177:
  libvorbisfile-3.dll  libvorbisfile-3.dll
  
-It works to put them in release\, but the sound server checks for them in .\, so it helps if they'​re in the same folder as cfsndserv.exe+<del>It works to put them in release\, but the sound server checks for them in .\, so it helps if they'​re in the same folder as cfsndserv.exe</​del>​
  
-At this point, the client runs in your dev environs, no warnings, sound works, etc<​del>,​ as long as you did not copy libglib.</​del>​+At this point, the client runs in your dev environs, no warnings, sound works, etc
  
-Get the glib helper program from C:​\msys32\mingw32\bin\gspawn-win32-helper-console.exe,​ and copy it to release\+<del>Get the glib helper program from C:​\msys32\mingw32\bin\gspawn-win32-helper-console.exe,​ and copy it to release\</​del>​ Not needed since r21700
  
 Pull the release\ folder to another machine, and run. Pull the release\ folder to another machine, and run.
  
-<​del>​It now complains that libglib is missing. Copy it as well. Sound is now broken. when you launch, there'​s now warnings and the themes are broken again.</​del>​ +Weep because everything'​s on fire: 
- +  * Sound works in the dev environs, but not once you bring it to another machine
-Weep because everything'​s on fire. +  ​* ​If client.ini existsthen it will barf errors about gtk_scrolled_window_add_with_viewport() ​and accelgroup1But, these are not fatal.
- +
-<​del>​ +
- +
-Find the rest of the DLLs from the 1.72.0 release+
- +
-Find any missing DLLs from official runtime distributions. +
- +
-If DLLs are still missing, shed some tears. +
- +
-I had to rename libpng16_16.dll to libpng14_14.dll. I have no idea what could have required libpng14, and libpng14 has serious vulnerabilities too(Renaming DLLs is not safe either.)+
  
-</​del>​+There are various non-fatal build warnings:
  
 +  * \script.c:​608:​47:​ warning: multi-character character constant [-Wmultichar]
 +  * /​msys32/​mingw32/​include/​gtk-2.0/​gtk/​gtktypeutils.h:​236:​1:​ warning: '​GTypeDebugFlags'​ is deprecated [-Wdeprecated-declarations]
 +  * /​msys32/​mingw32/​include/​gtk-2.0/​gtk/​gtktooltips.h:​73:​3:​ warning: '​GTimeVal'​ is deprecated: Use '​GDateTime'​ instead [-Wdeprecated-declarations]
 +  * \crossfire-code-r21708-client-trunk\gtk-v2\src\sdl.c:​895:​13:​ warning: '​mapdata_face'​ is deprecated [-Wdeprecated-declarations]
user/draugthewhopper/windowsbuild.txt · Last modified: 2021/08/31 14:14 by draugthewhopper