Source directory restructuring

Alex Aycinena alex.aycinena at
Wed Aug 9 14:16:13 EDT 2017

> ---------- Forwarded message ----------
> From: John Ralls <jralls at>
> To: Sumit Bhardwaj <bhardwajs at>
> Cc: gnucash-devel <gnucash-devel at>
> Bcc:
> Date: Tue, 8 Aug 2017 20:01:44 +0300
> Subject: Re: Source directory restructuring
> > On Aug 8, 2017, at 5:50 PM, Sumit Bhardwaj <bhardwajs at> wrote:
> >
> > John,
> >
> > If the plan is to dump autotools, should we ask also devs to make sure
> that
> > they can build using cmake? I have had problems in the past and
> therefore,
> > I have stuck with autotools so far.
> >
> > What are the things we want to confirm in the cmake toolchain?
> > cmake
> > cmake install
> > cmake check
> >
> > Anything else?
> Sumit,
> No. cmake <args> srcdir && make && make check && make install or (quite a
> bit faster) cmake -G Ninja <args> srcdir && ninja check && ninja install.
> You generally need to at least specify a -DCMAKE_INSTALL_PREFIX unless you
> want GnuCash installed in /usr/local which back in the day was a reasonable
> thing to do but isn't really anymore. Because of normal linker behavior and
> GnuCash's overuse of loadable modules you also need to uninstall before
> building, especially when changing branches. The incantation for that in
> cmake is xargs rm < install_manifest.txt.
> Geert and I use the cmake+ninja build system most of the time and the
> Windows automated build has been using it for just over a year. I think
> that it's well tested. There's a known problem that the dependency graph
> doesn't capture everything especially for some of the scheme modules so
> allowing too much parallelism (setting -j too high on a many-core machine)
> will try to build some things before their dependencies are done. That's
> not a blocker to dropping autotools. The only loose end at present is that
> there are still a few rough edges in the dist target that need to be
> cleaned up.
> Regards,
> John Ralls

I switched to cmake and ninja a few months ago when I had trouble building
with autotools and I thought everything was working fine. I pushed a commit
and found that some changes to unit tests that I had made didn't work and
so I accidently broke the build. I had assumed that ninja check, which had
been successful, had run the unit tests and hadn't bother to check for
sure. I was finally able to get autotools to work by not including the
debug arg in configure and so was able to run the unit test, fix it and
push the fix. I have been using autotools since to make sure the tests are
all run.

My question is whether cmake now runs all the same unit tests.



More information about the gnucash-devel mailing list