[Kmymoney-devel] Two instances at once, was: Debugging plugins

Jack ostroffjh at sbcglobal.net
Thu Sep 18 00:52:42 UTC 2014


On 2014.09.11 14:09, Christian Dávid wrote:
> Am Samstag, 6. September 2014, 10:01:54 schrieb Jack:
[snip....]
>> I don't think I ever clarified that I'm only working on Linux  
>> (Gentoo). […]
> Good, everything is easier then ;)

> > > # Run cmake and set an install prefix
> > > # "make install" will copy all files there
> > > cmake -DCMAKE_INSTALL_PREFIX=../install/ ../
>> As I said before, I use "cmake ." and have now set the install dir   
>> to /home/jack/install, using the full path because when I tried  
>> ../../install (to keep it out of the source tree) it somehow had the  
>> ../../ part twice in the install path, and so put everything one  
>> level higher than I intended.
> I think KMyMoney does not support inside source builds. On several  
> places KMyMoney’s CMake-files create config files and assumes a out  
> of source build (e.g. in the CMakeLists.txt of the ofx plugin, the  
> first line of code). This might work now, but there will cause issues  
> some day. Also there is a high chance that the .desktop files for the  
> plugins are incorrect then and cause your issues.
OK, I've moved the build out of the source tree.  The make install is  
now clean, with no errors or funny paths that I can see.

> The path duplication is a strong indicator of an error. You should  
> recheck
> that. Anyway, your command should be
> cmake -DCMAKE_INSTALL_PREFIX=/home/jack/install/ .
> (the hole last line).
First, is there any significant difference (in terms of working or not)  
cmake and ccmake?  Also, shouldn't the first run have the path to the  
source instead of '.' at the end of the line (for either cmake or  
ccmake)?

> > > # Build and install
> > > make
> > > make install
> > > cd ../install/
> > >
>>>> Give KDE's trader the chance to find the new services (= our  
>>>> plugins)
> > > # I guess on Windows (and maybe OS X) this command is different.
> > > # You need  to set an environment variable to your current folder
> > > export KDEDIRS=`pwd`
> >
> > or in my case /home/jack/install, right?
> The command I wrote uses the current path automatically, anyway you  
> are right. But do not use the quotation marks I used here, they mean  
> run command pwd. If you just replaced pwd by your path and kept them,  
> the error is found.
'export KDEDIRS=/home/jack/KDE/KMM/install' is what I actually use (no  
quotes)

> > > # Refresh cache of the trader
> > > # after the next run of make install you do not need this again
> > > kbuildsycoca4
> > >
> > > # Here you can test if it worked
> > > # It does not show the library path but X-KDE-PluginInfo-Version
> > > contains the
> > > # version. At the end is the git commit.
> > > ktraderclient --servicetype "KMyMoneyPlugin"
This shows the git versions, so it seems to be as expected.  (It shows  
the production versions after running kbuildsyscoca4 after  
resetting/unsetting those variables above.)

> > > # run your own build
> > > bin/kmymoney
>> While this clearly runs the newly built version, I don't believe  
>> everything else is also coming from the new install directory.  For  
>> example, I'm currently testing the Print check plugin, and it's  
>> configuration dialog is still defaulting to /usr/share/apps/...  
>> instead of /home/jack/install/share/apps, as I would expect or  
>> desire - is there some other environment variable to set?  I've  
>> started reading the docs on techbase, but I haven't yet seen  
>> anything that tells me where I've gone wrong.
> How do you know which path is used? Which configuration dialog? Can  
> you send me the output of ktraderclient --servicetype  
> "KMyMoneyPlugin" ?
Well, I continue to be confused here.
That command (as above) shows the devel versions (output attached).

Running from command line gives:
kmymoney(2383)/kdecore (KPluginInfo) KPluginInfo::kcmServices: found 0  
offers for "Reconciliation report"
kmymoney(2383)/kdecore (KPluginInfo) KPluginInfo::kcmServices: found 0  
offers for "csvimport"
kmymoney(2383)/kdecore (KPluginInfo) KPluginInfo::kcmServices: found 1  
offers for "Print check"
kmymoney(2383)/kdecore (KPluginInfo) KPluginInfo::kcmServices: found 0  
offers for "KMyMoney OFX"
kmymoney(2383)/kdecore (KPluginInfo) KPluginInfo::kcmServices: found 0  
offers for "csvexport"
kmymoney(2383)/kdecore (KPluginInfo) KPluginInfo::kcmServices: found 1  
offers for "iCalendar"
KMyMoney reconciliation report plugin loaded
KMyMoney csvimport plugin loaded
KMyMoney printcheck plugin loaded
KMyMoney ofximport plugin loaded
KMyMoney csvexport plugin loaded
KMyMoney iCalendar plugin loaded

The csv import plugin is using the new wizard version, but the  
configure print check is showing the system location for templates.

> Was KDEDIRS set correctly?
 From output from the script that actually sets stuff up and launches  
the program:
LD_LIBRARY_PATH=/home/jack/KDE/KMM/install/lib

> General note: this description is for KDE4 only! You have to set  
> other environment variables in the frameworks branch.
Yes, KDE4 only at this point.  Frameworks eventually, but not yet ....  
:-)

One new  bit of info:  When I run the devel version, I see it using the  
"new" icons, or at least not the ones I see when I run the distro  
installed version.  However, when I run the distro version, even  
without rerunning kbuildsycoca4, it is still using it's "old" icons (I  
mean the ones it's been using for a long time.)  This seems to imply  
that soemthing is not getting set/reset correctly in my whole  
setup/launch process.  Just for completeness, I've attached the script  
I use.  Also, the devel version still displays the production version  
of the handbook.

I'm sure I'm going to hit myself when I find the one stupid thing I've  
missed, but I still can't see it.

Any other ideas?


More information about the KMyMoney-devel mailing list