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 so on.

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:
https://github.com/Gnucash/gnucash/raw/trunk/packaging/win32/bootstrap_win_dev.vbs

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 follows:
- c:\soft
- c:\soft\downloads
- c:\soft\Git-1.7.10     -> git installation
- c:\soft\gnucash.git   -> gnucash git repository cloned from github
- c:\soft\gnucash.git\packaging\win32\custom.sh
- c:\soft\mingw -> will have mingw-get and msys (including msys-wget)
- c:\soft\tmp

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 set up.

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.

Geert
_______________________________________________
gnucash-devel mailing list
[email protected]
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to