Bug #1665

Support common installations (to simlify cross compiliation)

Added by S. Herbrechtsmeier over 7 years ago. Updated over 7 years ago.

Status:NewStart date:12/03/2013
Priority:NormalDue 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

Revision 3d68ebe6
Added by Arne Nordmann over 7 years ago

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

Revision da78a797
Added by Arne Nordmann over 7 years ago

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

Revision 22fa3985
Added by Arne Nordmann over 7 years ago

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 7 years ago

Do not set NAMELINK_SKIP at LIBRARY DESTINATION of INSTALL function.

#2 Updated by S. Herbrechtsmeier over 7 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.

Also available in: Atom PDF