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

Jack ostroffjh at sbcglobal.net
Sat Sep 6 14:01:54 UTC 2014


I've just tried this again, and it's still not working quite as I  
want/expect.  Hopefully I'm just missing some step or environment  
variable.

On 2014.03.31 05:32, Christian Dávid wrote:
> As this comes up quite often I retried my approach from scratch. You  
> "just" need all build dependencies installed. I did it with Linux,  
> but it should be the same on windows except one command (and you have  
> to  replace cd). If you test it and it works as well, I can publish  
> it on techbase. With windows specific stuff it would even be better.
I don't think I ever clarified that I'm only working on Linux  
(Gentoo).  Once I do get it working here, I might think about trying on  
Windows, but that's not my primary goal.

> # Get sources
> git clone git://anongit.kde.org/kmymoney
> cd kmymoney/
> 
> # Create directory for out of source build
> mkdir build
> cd build/
> 
> # 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.

> # 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?

> # 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"
> 
> # 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.

> This allows you to install multiple versions of KMyMoney at the same  
> time. You
> just have to set and unset KDEDIRS and run kbuildsycoca4.
Am I correct that unsetting is not important, as long as I run  
ksyscoca4 with the vars set correctly before I run any particular  
version?

> If you also want to run them at the same time you can use your IDE.  
> This is the
> way you should do it anyway as it is quicker for every day use.
I suppose it might save me some grief, but I don't use an IDE.  It's  
just emacs and typing commands.  With editing the docs, I don't always  
do a full compile, just run meinproc and khelpcenter to see the updated  
manual.

> KDevelop and QtCreator allow you to set a "run environment". Just  
> tell them to set KDEDIRS to the appropriate folder there. Your IDE  
> must install KMyMoney every time and execute "kbuildsycoca4" before  
> you run KMyMoney (KDevelop has no direct option for this, you need a  
> script — I think).

> One problem left: If you run another instance of KMyMoney now, you  
> have to rebuild the cache (kbuildsycoca4) as SyCoCa tracks the files  
> in it's cache but not the environment variable. So it doesn't notice  
> that a service is no longer available if you just change KDEDIRS (but  
> it notices if you remove or update a .so/.desktop file).

> More tutorials on traders and the system configuration cache (SyCoCa)  
> are available on  
> http://techbase.kde.org/Development/Tutorials#Services:_Applications_and_Plugins














More information about the KMyMoney-devel mailing list