Making GnuCash development on Windows easier, one step at the time
janssens-geert at telenet.be
Fri Jan 18 11:33:52 EST 2013
Although we support Windows, we don't have any GnuCash developers that
develop natively on that platform. There are probably many reasons for
this, like platform preference being a personal choice for example.
But as I occasionally do maintenance work on the Windows build, and my
own experience there seem to suggest at least one other important
reason: it is my perception that the barrier for entry on Windows is a
lot higher than it is on the native linux platform.
So I decided to see if I could make it easier to develop GnuCash
natively on Windows.
The very first hurdle a potentially new developer encounters IMO is that
s/he manually has to set up the initial development environment,
grabbing tools from different websites, editing configuration files and
I have written an experimental bootstrap script that will eventually
make all of that obsolete. It's not quite there yet though (actually the
bootstrap script is, but install.sh needs updating before this can work).
This script is fully self-contained and written in Visual Basic Script.
It should be capable of downloading all the necessary components to set
up a minimal development environment in which the beginning user only
has to open an msys shell and type install.sh.
I have added it to the GnuCash repo, you can download it from here:
I would really like if you would download this script, run it and give
me feedback. It works on my test system (WinXP 32 bit), but I'd like to
learn how it works on other Windows platforms. I may have assumed things
to be installed that actually aren't on all versions of Windows.
What you can expect:
If you don't modify anything, the script will create a directory tree as
- c:\soft\Git-1.7.10 -> git installation
- c:\soft\gnucash.git -> gnucash git repository cloned from github
- c:\soft\mingw -> will have mingw-get and msys (including
That's it. All the rest will need to be handled by the rest of our
native tool chain.
Early in the bootstrap script is a section where a number of parameters
are defined. You can modify these before running the bootstrap script is
you prefer different paths to install things in.
The custom.sh script defines a number of paths as assumed by the
bootstrap script, so install.sh will be aligned with whatever bootstrap
If any of the files or directories exist, they won't be overwritten, but
reused. If you already had a custom.sh in
c:\soft\gnucash.git\packaging\win32, you may need to adapt it manually
to match the parameters used by bootstrap.
Last note: the bootstrap script uses mingw-get, an experimental package
manager for mingw and msys packages (currently considered beta). I
intend to rewrite the windows toolchain to use this as well as it will
simplify a large part of our mingw/msys setup code. Because the windows
toolchain is not using this yet, install.sh probably won't work with the
environment set up by bootstrap. As I said, it's only the first step !
Please do test though if the script runs properly and give feedback.
More information about the gnucash-devel