Am 31.10.2016 um 19:45 schrieb Christian David: > Thanks for this perfect overview! I notice that Alkimia 5 should install its > cmake files into .../cmake/LibAlkimia-5.0/..., everything else looks okay. > The > cmake files should be in seperate directories because cmake expects it that > way. yes > However, we could rename the include directory into alkimia-6.0 (and -5.0). > Then installing multiple versions is not an issue anymore. It is set by cmake > anyway. Maybe it should be prefix/include/alkimia-6.0/alkimia/alkvalue.h there are already some package doing so like gstreamer e.g gstreamer-1.0 and gstreamer-2.0 > Then > the includes could be #include <alkimia/alkvalue.h> yes > and if needed someone could create a symlink prefix/include/alkimia -> > prefix/include/alkimia-6.0. This is not required if the include path is set in the LibAlkimiaConfig.cmake is set to ${PACKAGE_PREFIX_DIR}/include/alkimia-6.0 > I will check how the frameworks are doing this. > > The /usr/local/lib64/libalkimia.so link should not be an issue. The > distributions usually do not install it (except in -devel packages). unfortunally this will result into a package system file conflict at least with zypper on opensuse because it points to different targets. > Also the find_package() call ensures that the right libalkimia.so.* is > selected (if a > version is set). All other *.so* shared objects have unique names. confirmed > About pkgconfig: Since pkgconfig has no support for multiple versions we > could > rename these files to /usr/local/lib64/pkgconfig/libalkimia-6.0.pc I did found pkgconfig file on my opensuse system having similar version postfixes.. > (and change the line "Libs: -lalkimia" to contain the so-version). not sure how to add a versioned library name here as the linker has some internal logic to get real library name from the -l flag. > Or is there another style for pkgconfig? I did not found any related spec at https://people.freedesktop.org/~dbn/pkg-config-guide.html#writing mentions. Samples only shows the usage of a number postfix like -lpng12 or -lpng16 > Also I doubt that anybody is using it — it was used by the former > FindAlkimia.cmake script, though. So we are probably save to drop > it, all projects which use alkimia (KMyMoney, Kraft and Scrooge?!) should be > cmake based. There is one left over issue which depends on how packages are created. At least on opensuse creating a package named libAlkimia version 5.0 (e.g LibAlkimia-devel-5.0.rpm) and version 6.0 (named LibAlkimia-devel-6.0.rpm) are not coinstallable. Either the package with version 5 or version 6 need to be have another name like LibAlkimia5 or LibAlkimia6. An alternative would be to use the major version of the Qt version alkimia depends on as postfix e.g. LibAlkimia-5.0 (Qt4) and LibAlkimia5-6.0 (Qt5) Saying things it may be useful/required to use that postfix also on other places discussed above.
Cheers Ralf