[GNC-dev] How to contribute to GnuCash?
jralls at ceridwen.us
Tue Apr 30 16:56:01 EDT 2019
Guile is a Scheme interpreter built into GnuCash, see https://www.gnu.org/software/guile/. You don't need to worry about it.
You should start by looking at Ngewi's GfA code at https://github.com/codinguser/gnucash-android to get an idea of how he handled it.
If you want to use GnuCash code directly in your app you need to figure out what the app is going to do, what accounting objects you'll create, and how you want to instantiate them, then look at the corresponding accounting objects in https://github.com/Gnucash/gnucash/libgnucash/engine. Those objects are loaded from storage, either XML or SQL, with https://github.com/Gnucash/gnucash/libgnucash/backend.
There's some API documentation at https://code.gnucash.org/docs/MAINT.
> On Apr 30, 2019, at 11:00 AM, John <john at vicinno.com> wrote:
> Thanks for all the info. We are new to Gnucash code. what is guile? how to set up the engine code? what exact source code files should we start to look at for this iOS companion app? how to quickly understand the code?
> On Sat, Apr 27, 2019 at 7:29 AM Geert Janssens <geert.gnucash at kobaltwit.be> wrote:
> Op zaterdag 27 april 2019 16:05:42 CEST schreef John Ralls:
> > > On Apr 26, 2019, at 10:55 PM, Geert Janssens <geert.gnucash at kobaltwit.be>
> > > wrote:>
> > > Op zaterdag 27 april 2019 01:01:38 CEST schreef John Ralls:
> > >> What Geert meant is that our current engine code *isn't* particularly
> > >> portable, though I think that since it compiles OK on MacOS it shouldn't
> > >> have too much trouble with iOS either. It's a mix of C and C++ and the
> > >> main
> > >> dependencies are Boost and Gnome Glib; the XML file backend also depends
> > >> on
> > >> libxml2 and the SQL backend depends on libdbi.
> > >>
> > >> The public mirror for our git repository is at
> > >> https://github.com/gnucash/gnucash. Note that the stable branch is
> > >> "maint".
> > >> Doxygen API docs are at https://code.gnucash.org/docs/MAINT.
> > >>
> > >> Regards,
> > >> John Ralls
> > >
> > > The devil is in the details... The engine code currently still depends on
> > > guile as well, which is a scripting language. Doesn't Apple impose
> > > restrictions on that ?
> > > I currently don't have a full overview of where guile is used in the
> > > engine
> > > code. I know the option system is heavily dependent on it, but that's
> > > primarily used by the report system.
> > There's no guile in the backends, and only a little in engine, core utils,
> > and gnc-module for facilitating the wrappers. App-utils is heavy with
> > scheme but that's to support application features like options and the
> > financial functions for scheduled transactions, and price-quote is scheme.
> > I think John's team can set up a build of just engine and the backends they
> > want to support without swigging and so without guile. That should be
> > enough for a companion project similar to GfA.
> > Regards,
> > John Ralls
> I'm glad to hear that. I have a vague recollection of tracing some transaction
> code in the past and ending up in guile. That may have been cleaned up by now.
> Thanks for choosing our apps,
> Like us on Facebook or Follow us on Twitter
More information about the gnucash-devel