Source directory restructuring complete
John Ralls
jralls at ceridwen.fremont.ca.us
Wed Aug 16 16:52:57 EDT 2017
> On Aug 16, 2017, at 12:21 PM, John Ralls <jralls at ceridwen.fremont.ca.us> wrote:
>
>>
>> On Aug 14, 2017, at 6:57 PM, Geert Janssens <geert.gnucash at kobaltwit.be> wrote:
>>
>> Hi,
>>
>> I have just pushed my directory restructuring branch to master as I announced
>> last week.
>>
>> IMPORTANT: You should wipe out your existing build/install directory after
>> pulling this new master. And if you are building in the source tree (which we
>> don't advise) instead of having a separate build directory, be sure to run
>> "make distclean" there *BEFORE* pulling this new master.
>>
>> Then proceed as usual, that is run autogen.sh/configure-with-options/make for
>> an autotools
>> based build or cmake-with-options/[make/ninja(-build)] for a cmake based
>> build.
>>
>> The new directory structure is roughly as follows:
>>
>> * data
>> Non-code items that get installed (like account charts, check formats,
>> pixmaps)
>> * libgnucash
>> The core libraries which define our internal data structures and code to
>> handle them. This holds the core-utils, gnc-module, engine (including qof),
>> app-utils and a few smaller ones
>> * gnucash
>> The code for the gui application built on top of libgnucash. Here you'll find
>> the directories gnome, gnome-utils, report, html, import-export,...
>> * bindings
>> Currently only the python bindings are here, in the future the guile bindings
>> should be migrated here as well.
>> * common
>> Low level support code, mostly for debugging and testing (debug, test-
>> core,...)
>>
>> In the restructuring, the cutecash project has been removed together with the
>> gtkmm support library.
>>
>> A few other directories have been eliminated and their content moved to other
>> locations:
>> - src/bin -> gnucash (no more separate subdirectory)
>> - src/optional: the python-bindings subdirectory has been moved to bindings,
>> the only other subdir was gtkmm which has been dropped
>> - src/plugins: the two real "plugins' in there were in fact import modules, so
>> they have been moved to import-export. The example subdirectory (which is
>> never built) is now a subdirectory of libgnucash/gnc-module
>>
>> Please report any problems you may experience with this new work.
>
> On Mac I get a build error while compiling the standard-reports (cmake/ninja build):
> ice-9/boot-9.scm:109:20: no code for module (gnucash report standard-reports)
>
> I fixed this temporarily by making the link by hand, but it seems that we need a custom target for the copy commands at the bottom of gnucash/report/standard-reports/CMakeLists.txt and the compilation of the other reports there needs to be dependent on that target.
Later, when trying to run GnuCash I found that libgncmod-backend-dbi.dylib didn't load because the directory being passed in was "dbi" instead of "gnucash".
--- a/libgnucash/engine/gnc-engine.c
+++ b/libgnucash/engine/gnc-engine.c
@@ -74,9 +74,9 @@ gnc_engine_init_part2()
} libs[] =
{
#if defined( HAVE_DBI_DBI_H )
- { "dbi", "gncmod-backend-dbi", TRUE },
+ { "gnucash", "gncmod-backend-dbi", TRUE },
#endif
- { "xml", "gncmod-backend-xml", TRUE },
+ { "gnucash", "gncmod-backend-xml", TRUE },
{ NULL, FALSE }
}, *lib;
fixes the problem and I think it will affect only Mac builds, but can someone check it on Linux to make sure before I commit it?
Regards,
John Ralls
More information about the gnucash-devel
mailing list