[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