It was a long time since I did not give cross compiling a try and it turns out to be easier than expected if you use precompiled binaries from windows:mingw[1] project on the OpenSUSE Build Service. (OBS)
First of all we need to install the cross compiler, in Debian and Debian based distros do
$ sudo apt-get install mingw-w64
Then we need to download a python script [2] that makes downloading mingw packages from OBS easy.
wget https://github.com/mkbosmans/download-mingw-rpm/raw/master/download-mingw-rpm.py
Now we can download the dependencies (hicolor-icon-theme is only needed at runtime)
python3 download-mingw-rpm.py --deps gtk3-devel libxml2-devel \ hicolor-icon-theme
This will unpack everything under usr/i686-w64-mingw32/sys-root/mingw
Next we need to setup some variables for the cross compilation
export CC=i686-w64-mingw32-gcc export MINGW_ROOT=`readlink -f usr/i686-w64-mingw32/sys-root/mingw` export PKG_CONFIG_LIBDIR=$MINGW_ROOT/lib/pkgconfig export PKG_CONFIG_PATH=$MINGW_ROOT/share/pkgconfig export PKG_CONFIG="pkg-config --define-variable=prefix=$MINGW_ROOT"
CC: the cross compiler
MINGW_ROOT: is an absolute path we are going to use as a prefix for our build
PKG_CONFIG_LIBDIR: this way we tell pkg-config to use mingw libs
PKG_CONFIG_PATH: just to make sure we are not pointing some where else
PKG_CONFIG: ask pkg-config to replace .pc files prefix variable with the real path
And this is pretty much it, now we can proceed to run autogen.sh with –host and –target flags and glade should compile
git clone git://git.gnome.org/glade cd glade ./autogen.sh --prefix=$MINGW_ROOT --host i686-w64-mingw32 \ --target i686-w64-mingw32 --enable-shared=yes --enable-static=no make make install
Before you can run it you need to update glib schemas bin file
glib-compile-schemas $MINGW_ROOT/share/glib-2.0/schemas
BTW there is a scrip file that automates this process and creates a windows installer using nsis
in glade sources under build/mingw-w64 directory.
1) https://build.opensuse.org/project/show?project=windows%3Amingw%3Awin32
2) https://github.com/mkbosmans/download-mingw-rpm
Does this means that you will bring out Glade for Windows?
Windows developers using gtk would really like Glade for Windows in sync with the Linux release.
Yes, I already uploaded an installer to gnome ftp. You can find it here http://ftp.gnome.org/pub/GNOME/binaries/win32/glade/3.13/. I will make binaries releases for windows as long as someone else keeps releasing dependencies 🙂
That being said, we do not have the man power to support Glade on windows so we are going to need help from the community to make a better experience for windows users.
Maybe automated tests could help you out a bit?