[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