Source directory restructuring

John Ralls jralls at
Wed Aug 9 14:54:58 EDT 2017

> On Aug 9, 2017, at 9:16 PM, Alex Aycinena <alex.aycinena at> wrote:
>> ---------- 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.


IIRC you flagged those tests as not run and Geert fixed them. Do you remember what they were?

I think that cmake and autotools are running the same set of tests but I haven't done a test-by-test comparison in a while.

John Ralls

More information about the gnucash-devel mailing list