Hello All,

I am sorry that I answer this late. Hopefully I can still help.

The cause of all trouble in alkimia is that the version checking is not done 
correctly. Pre alkimia 5 had a find module (which is wrong in the first place) 
which did not check any version. Also it would find any alkimia version 
(including 5 & 6).

So renaming the cmake find module and config file will not fix that issue! Even 
the hack of Thomas in KMyMoney's config file to prevent pulling version 6 does 
not work here because the find module does not even provide any version 
information.

In Version 5 I made a mistake, so alkimia 5 marks itself "COMPATIBILITY 
AnyNewerVersion" (this includes v6.0 v7.0...). However this is not an issue 
here. If it is easy to publish a version 5.0.1 we should fix that.

My current suggestion to solve this issue is:

1) Let alkimia 4 die. Alkimia 5 is a perfect replacement. The only reason for 
the version jump was a really tiny change which caused ABI incompatibility. Any 
code that compiles with alkimia 4 should compile with version 5, too. Also no 
change in any CMakeLists.txt is needed if no alkimia >= 6 is on the system.

2) In KMyMoney we add the CONFIG option to find_package(). Then alkimia <= 4 is 
not found anymore. Also we add correct version information to the 
find_package() call. The hand written check should be removed. CMake has a 
powerful version checking system, we should relay on that!

Then no complicated naming conventions have to be introduced (which will not 
solve all issues, btw).

Greetings
Christian

> Thomas Baumgart <t...@net-bembel.de> hat am 23. Oktober 2016 um 10:46 
> geschrieben:
> 
> 
> Hi,
> 
> On Saturday 22 October 2016 23:20:14 Ralf Habacker wrote:
> 
> > Am 22.10.2016 um 20:02 schrieb Jack:
> 
> [...]
>  
> > > Am I just trying the impossible?
> > 
> > No, I just pushed a commit to a personal repo at
> > https://github.com/rhabacker/alkimia, which readd's Qt4 support to
> > latest version of alkimia. You can build and install alkimia side by
> > side to the Qt5 variant. You may try that. See the commit log how to
> > build alkimia in this way.
> 
> I took a glimpse and this seems to make sense. Would then in KMyMoney 4.8 
> something like
> 
>   find_package(LibAlkimiaQt4)
>   if (not found)
>     find_package(LibAlkimia REQUIRED)
>   endif()
> 
> be possible to further automate for both scenarios? In case it is found, we 
> need to make sure the version check only applies to the Qt5 version if found 
> by that second find_packages() statement above, or am I missing something?
> 
> I believe my cmake foo comes to an end here really soon :)
> 
> 
> 
> -- 
> 
> Regards
> 
> Thomas Baumgart
> 
> GPG-FP: E55E D592 F45F 116B 8429   4F99 9C59 DB40 B75D D3BA
> -------------------------------------------------------------
> Memory's the second thing to go ... Can't remember the first.
> -------------------------------------------------------------

Reply via email to