Hello Geert,  After 2 frustrating and unsuccessful attempts to install 
development on the Mac, I ended up reverting back to Linux. I have compiled and 
ran successfully gnucash on Debian. Do you have a preferred IDE that you use on 
Linux?, I haven't used EMACS for almost 15 years and would rather use a newer 
IDE/editor. Let me know.

    On Thursday, April 23, 2020, 10:09:52 AM PDT, Camille Rizko via 
gnucash-devel <gnucash-devel@gnucash.org> wrote:  
 
  Thank you Geert,  I can develop on Linux as well as MacOS. My Linux station 
is a portable running Debian 9. My macOS is a workstation with a 26" screen, 
obviously a better choice for me.
I did download the source on Linux and went as far as running the cmake but 
encountered an error at line 59. Since I prefer the Mac station, I will 
download the Mac development and see if I have better luck doing a complete 
build.
Once I have a successful build, I will look into app-utils and see what I can 
do with it. The objective I assume is to port it to 100% C/C++, for all 
platforms, and eventually make it portable and usable by my iOS app.
MacOS and iOS are different OS builds, but they share a common compiler set, 
namely Objective C (superset of C/C++) and now SWIFT. The OBJECTs sometimes 
differ between MacOS and iOS, but are quite similar otherwise.
    On Wednesday, April 22, 2020, 01:37:14 AM PDT, Geert Janssens 
<geert.gnuc...@kobaltwit.be> wrote:  
 
 #yiv1000945645 p, #yiv1000945645 li {white-space:pre-wrap;}
Hi Camille,

 

There is plenty of work on the gnucash project. However I'll focus on your 
eventual goal of basing your iOS app on the gnucash core.

 

I think your first step would be to familiarize yourself with the gnucash build 
system. We have wiki pages describing how to build gnucash on linux, MacOS and 
Windows [1]. I assume you are developing on MacOS, so I suggest you follow the 
instructions to setup a gnucash build environment on that platform and make 
sure you can build gnucash.

 

When you get to that point, you can start tweaking the build scripts to make 
them build only only what you need for the iOS app. I would think in the 
gnucash repo itself that would be the contents of libgnucash.

 

The biggest caveat here is that libgnucash/app-utils still depends quite a bit 
on guile, which is not what you'd want for iOS. So here's another opportunity 
to help out: rework app-utils to no longer depend on guile. I'll be honest; 
that's pretty involved so maybe not a good starting project.

 

The alternative approach would be to alter the build scripts such we can 
specify to build without the gui (already possible by setting WITH_GNUCASH=OFF 
to gnucash' cmake invocation) and without guile (which requires a new cmake 
parameter, for example WITH_GUILE). If both are set the build should only 
include libengine, but then without app-utils. That would probably give you 
most of what you need for a first version of the iOS app on top of the gnucash 
logic. As the guile separation goal progresses within the gnucash project, more 
of app-utils can be included in the minimal build for iOS, giving you even more 
features to work with.

 

Besides the gnucash repo there is the gnucash-on-osx repo which contains the 
build system for all of gnucash' dependencies on that platform. As it currently 
stands it will build more dependencies than you need for an iOS app. You're 
most likely not interested in gtk stuff, though you will still need glib (as 
libgnucash is still using it a lot).

 

gnucash-on-osx uses the jhbuild build system. To help you build only the parts 
you need for an iOS app, you can add a new module in gnucash.modules that would 
only trigger the build of dependencies for libgnucash instead of all of gnucash.

 

My experience with building on MacOS is limited and I have no experience at all 
with building for iOS so there are certainly things I am missing or glossing 
over. For example I have no idea how different the MacOS environment is from 
the iOS environment (runtime wise), so I can't tell if there will be a porting 
effort involved. I mean the source code of gnucash and its dependencies have 
been tweaked to build an run on MacOS. I have no idea whatsoever if extra 
tweaking will be required to build for and run on iOS. If so that would be 
another task, though I would first try to get the build system to output only 
the minimal set of dependencies and gnucash libraries.

 

I can probably help on the build system side within the gnucash project itself, 
like adding the extra switch to disable building with guile. I have a 
reasonable notion of how jhbuild works, but I don't have access to a MacOS 
system any more. So I can give advice or suggestions on the jhbuild tweaks, but 
can test any of those.

 

Skills you'll probably need or need to develop include: working with git [2], 
understanding cmake, working with jhbuild and obviously C and C++.

 

All changes you make in gnucash-on-osx or gnucash repositories can be submitted 
for inclusion via either pull requests on github (preferred) or patches in 
bugzilla. It goes without saying these changes should be such that they won't 
break the normal gnucash build.

 

If you have questions, consult our wiki, ask on irc or the gnucash-devel 
mailing list.

 

Other than that, enjoy the ride ! Happy hacking :)

 

Regards,

 

Geert

 

[1] https://wiki.gnucash.org/wiki/Building

[2] https://wiki.gnucash.org/wiki/Git

 

 

Op zondag 19 april 2020 21:43:46 CEST schreef Camille Rizko:

> Hello Geert, To help I need guidance and direction. I have never developed

> as part of a project such as gnuCash before. If you can think of a good

> first exercise, I am willing to try. On Sunday, April 19, 2020, 11:00:12 AM

> PDT, Geert Janssens <geert.gnuc...@kobaltwit.be> wrote:

> 

> #yiv8039829096 p, #yiv8039829096 li {white-space:pre-wrap;}

> Hi Camille,

> 

>  

> 

> Most of the code relevant for your viewer is indeed C/C++. Parts are gnucash

> are also written in guile, but if I understand correctly that language is

> not available on iOS.

> 

>  

> 

> I'm working on separating the guile parts from the non-gui core of gnucash

> specifically to make it easier to port that core to platforms such as iOS

> or Android.

> 

>  

> 

> Unfortunately that work isn't completely done yet so I will concede that at

> this stage it may take some effort to get it going. Perhaps you are

> interested in helping out with this ?

> 

>  

> 

> Regards,

> 

>  

> 

> Geert

> 

>  

> 

> Op zondag 19 april 2020 19:46:11 CEST schreef Camille Rizko:

> > Hello Geert,  I can investigate how to read the database using the code

> > 

> > base. My app is a viewer, so "read only". I have been using gnucash since

> > 

> > 2015, but have not at all looked at the code base. I can probably succeed

> > 

> > with some effort if the code is in C or C++ language. On Sunday, April 19,

> > 

> > 2020, 06:00:54 AM PDT, Geert Janssens <geert.gnuc...@kobaltwit.be> wrote:

> > 

> > 

> > 

> > #yiv2676310034 p, #yiv2676310034 li {white-space:pre-wrap;}

> > 

> > Ok. That's fair.

> > 

> > 

> > 

> >  

> > 

> > 

> > 

> > Do note GnuCash supports database storage as well as xml and will likely

> > 

> > switch to database (sqlite3) as primary storage format somewhere in the

> > 

> > future.

> > 

> > 

> > 

> >  

> > 

> > 

> > 

> > Also note the data format can change from major release to major release.

> > So

> > 

> > if you're not using the gnucash engine code to parse the data files you

> > 

> > will have to keep up with these changes over time on your own.

> > 

> > 

> > 

> >  

> > 

> > 

> > 

> > Other than that it's still cool to see a gnucash compatible ios app.

> > 

> > 

> > 

> >  

> > 

> > 

> > 

> > Regards,

> > 

> > 

> > 

> >  

> > 

> > 

> > 

> > Geert

> > 

> > 

> > 

> >  

> > 

> > Op zondag 19 april 2020 00:45:12 CEST schreef Camille Rizko:

> > > Hello,

> > > 

> > > 

> > > 

> > > It is from scratch, it is written in swift, it decompresses the .gnucash

> > > 

> > > 

> > > 

> > > file then parses the xml file and displays the account tree.

> > > 

> > > 

> > > 

> > > 

> > > 

> > > 

> > > 

> > > Sent from my iPhone

> > > 

> > > > On Apr 18, 2020, at 5:37 AM, Geert Janssens

> > > > <geert.gnuc...@kobaltwit.be>

> > > > 

> > > > 

> > > > 

> > > > wrote:

> > > > 

> > > > 

> > > > 

> > > > 

> > > > 

> > > > 

> > > > 

> > > > An iOS app that can view gnucash files is certainly nice.

> > > > 

> > > > 

> > > > 

> > > > 

> > > > 

> > > > 

> > > > 

> > > > Is it a from-scratch implementation or did you reuse our gnucash code

> > > > 

> > > > for

> > > > 

> > > > 

> > > > 

> > > > it (the latter would be really awesome) ?

> > > > 

> > > > 

> > > > 

> > > > 

> > > > 

> > > > 

> > > > 

> > > > Regards,

> > > > 

> > > > 

> > > > 

> > > > 

> > > > 

> > > > 

> > > > 

> > > > Geert

> > > > 

> > > > Op vrijdag 17 april 2020 18:17:28 CEST schreef Camille Rizko via 
> > > > gnucash-devel:

> > > > > Hello, I developped an iOS app that allows me to view my gnuCash

> > > > > files

> > > > > 

> > > > > 

> > > > > 

> > > > > on

> > > > > 

> > > > > 

> > > > > 

> > > > > iphone or ipad. It shows the list of accounts with totals. It also

> > > > > 

> > > > > shows

> > > > > 

> > > > > 

> > > > > 

> > > > > Balance sheet to date, Balance sheet last year, income statement

> > > > > last

> > > > > 

> > > > > 

> > > > > 

> > > > > year

> > > > > 

> > > > > 

> > > > > 

> > > > > and income statement to date. Is this of interest to the community?

> > > > > 

> > > > > 

> > > > > 

> > > > > _______________________________________________

> > > > > 

> > > > > 

> > > > > 

> > > > > gnucash-devel mailing list

> > > > > 

> > > > > 

> > > > > 

> > > > > gnucash-devel@gnucash.org

> > > > > 

> > > > > 

> > > > > 

> > > > > https://lists.gnucash.org/mailman/listinfo/gnucash-devel

> > 

> >  

> > 

> > 

> > 

> >  

> 

>  

> 

>  

 

 
  
_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel
  
_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to