This is ok but will break if the installation of the package is relocated.
this is good.
is there a way to install shared libs to system location ? (in order to avoid ld manipulation)
If your app isn't part of the Linux distribution itself, you shouldn't install it to /usr. You should be looking to install to somewhere like /opt instead (or maybe /usr/local, but /opt is generally better). You should be able to use RPATH to avoid needing to mess with the library search path - search the CMake docs for INSTALL_RPATH, it has pretty good support for RPATH these days. Just be sure to use relative RPATHs (i.e. start each path with $ORIGIN for Linux) to ensure your package remains relocatable.