Bug #1665
Support common installations (to simlify cross compiliation)
Status: | New | Start date: | 12/03/2013 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | - | % Done: | 0% | |
Category: | - | |||
Target version: | - |
Description
The current rsb projects contains many functions which are only needed for the local deployment. As most of this functions are not optional they don't allow a common installation and make the installation unusable in cross compiler environments. The main reason is that cmake and pkg-config files are not relocatable because they contain full paths from the installation or build time.
In common installation the following should not be needed:
- Add the release version to project and library names (example: rsb0.9 in rst-converters0.9.pc)
- Decode the so version in pkg-config files (example: librsb.so.0.9 in rsb.pc)
- Use so files instead of l{libname} in pkg-config files (example: ${libdir}/librsb.so.0.9 in rsb.pc) Set full paths in cmake files (example: RSC_DIR in RSBConfig.cmake)
Additionally cmake files should save the dependency projects and use FIND_PACKAGE to detect the paths.
Associated revisions
Encodes so-version in library name
- so-version now encoded in the library name (now librsb0.11 instead of librsb), so that different rsb versions don't collide, even when with enabled lib namelink
- CMake configuration and pkgconfig adapted accordingly
refs #1665
Encodes so-version in library name
- so-version now encoded in the library name (now librsb0.11 instead of librsb), so that different rsb versions don't collide, even when with enabled lib namelink
- CMake configuration and pkgconfig adapted accordingly
refs #1665
Encodes project version in library name
- Project version now encoded in the library name (now librsb0.11 instead of librsb)
- Removed NAMELINK_SKIP, different rsb versions don't collide any more with the library name above
- CMake configuration and pkgconfig adapted accordingly
refs #1665
History
#1 Updated by S. Herbrechtsmeier over 10 years ago
Do not set NAMELINK_SKIP at LIBRARY DESTINATION of INSTALL function.
#2 Updated by S. Herbrechtsmeier over 10 years ago
I have add some additional configurations to the OpenEmbedded recipes to support the major version in the project names.
As you want to make the major version (0.x) in the project names mandatory you should only increase it together with the major library (.so) version if you break the API. Otherwise the application source code (Makefile / CMakeLists) must be updated even if it is compatible with a new release.