Windows Build System
jralls at ceridwen.us
Mon Mar 7 10:03:51 EST 2011
On Mar 7, 2011, at 4:04 AM, Geert Janssens wrote:
> On zaterdag 5 maart 2011, Stephen Brown wrote:
>> Hi Geert
>> Mine are to take all the instructions in
>> n_Windows.3F, compile it
>> into a windows executable file, include the other programs mentioned, and
>> make the whole lot available so that some one can download it, run it, and
>> have gnucash built on their Microsoft Windows machine with minimal user
>> Yours Sincerely Stephen Grant Brown
> While I consider it quite an achievement to get a complext piece of code such
> as GnuCash to build on Windows, there are a couple of things that I'm not too
> happy with in the Windows build process.
> For starters, the whole build is one big shell script. It does the job, but it
> lacks many features of a complete build system. I'm thinking of systems like
> automake, cmake, jhbuild,... Those systems would handle dependency changes
> more gracefully.
> I also believe that GnuCash development should focus on, well, GnuCash. All
> the other items that are built via the script are actually support libraries.
> Having the script to verify each of these dependencies before actually
> starting a GnuCash build takes valuable time. In fact, that every developer
> has to do that at least once while setting up the development environment for
> the first time is a shared loss of time.
> So here I play with the idea to build some kind of gnucash-support-libs sdk
> that can simply be installed via an installer program by anyone that likes to
> do some GnuCash development on windows. Only one dev has to build this sdk and
> publish it on the GnuCash website. All others can simply download and install
> it and focus on GnuCash from there on. When one of the support libraries has
> to be updates, a new sdk installer is built which can then be installed by the
> other devs.
> I realize that the idea of a preinstalled sdk conflicts with the concept of
> jhbuild, which builds everything from scratch. But these are only rough ideas
> anyway, not something ready for implementation yet.
I'd suggest starting with jhbuild. It's designed specifically for the gnome libraries which represent most of the dependencies,
and I've already got a moduleset which will get you most of the way there. However, the Gnome dependencies are prebuilt binaries provided by the Gnome project; while that's not something that jhbuild would handle gracefully, you can just leave
those modules out and download the binaries ahead of time.
Rather than a single library, you'll want to make a dependencies tarball (or zip-ball) or windows installer package that has everything needed to checkout Gnucash and get to work, perhaps minus the externals like ActiveState Perl, TortoiseSVN (or TortoiseGit), and MSys/MinGW.
More information about the gnucash-devel