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

Christian Dávid christian-david at web.de
Mon Mar 31 09:32:25 UTC 2014


Hello!

Am Sonntag, 30. März 2014, 19:08:08 schrieb Jack:
> > It would appear in KDE you need to pollute your application name  
> > space to debug a plugin which means you cannot simultaneously have a  
> > devel version and a release version running at the same time.
> 
> Ah, you have run into one of my recurring rants.  I have never  
> succeeded (on Linux) to install two versions of KMyMoney at once […]

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.

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

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

# 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

This allows you to install multiple versions of KMyMoney at the same time. You 
just have to set and unset KDEDIRS and run kbuildsycoca4.

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.

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

> > Ever thought of breaking KMymoney out of the dependency on KDE? It  
> > would have much wider appeal.

A lot of KMyMoney current appeal comes from the use of KDE. And from 
experience I know: That would result in solutions which are as complex as the 
the current ones but with less documentation, less testing, horrible 
maintenance and less people who can help.

> […]
> Also, it might be worth exploring the impacts of  
> the coming switch to Frameworks - if it will make working on OS-X and  
> Windows easier, it may be worth accelerating, although I fear it may be  
> as difficult and painful as the switch from kde3 to kde4.

Frameworks will make the build on OS-X and windows easier.

I hope this helps.
Greetings
Christian


More information about the KMyMoney-devel mailing list