Getting rid of the LIB_INSTALL_DIR hack on windows
Christian Ehrlicher
Ch.Ehrlicher at gmx.de
Sat Jan 12 17:42:28 CET 2008
Hi,
I know we discussed this already, but I'm very unhappy with the current
solution.
The problem is (for all who don't remember) that we want to install the
shared libs into /bin on windows. When we install the shared libs into
/lib, we've to add an entry to the PATH env variable. Also it's not the
normal way to install shared libs in another location than the
executable - it would just confuse the user.
Because of this a hack for LIB_INSTALL_DIR was added:
set(LIB_INSTALL_DIR "lib${LIB_SUFFIX}"
RUNTIME DESTINATION "bin"
LIBRARY DESTINATION "lib${LIB_SUFFIX}"
ARCHIVE DESTINATION "lib${LIB_SUFFIX}" )
This works fine until someone uses LIB_INSTALL_DIR in another context -
e.g. to install additional files, see kdepimlibs/gpgme++:
install(
FILES
${CMAKE_CURRENT_BINARY_DIR}/GpgmeppConfig.cmake
${CMAKE_CURRENT_BINARY_DIR}/GpgmeppLibraryDepends.cmake
DESTINATION
${LIB_INSTALL_DIR}/gpgmepp )
Therefore I want to change all CMakeLists.txt from
install(TARGETS foo DESTINATION ${LIB_INSTALL_DIR} )
to
install(TARGETS foo RUNTIME DESTINATION ${BIN_IINSTALL_DIR}
LIBRARY DESTINATION ${LIB_INSTALL_DIR}
ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
)
An additional macro install_kde_library() would work as well.
I don't see a problem to add those three lines as it does not affect
linux/unix and when someone forgets to add them it doesn't hurt either -
we'll notice that something is wrong when we try to start an app on windows.
Leaving the macro as it is now just gives us weird cmake errors and
we've to find a hack to work around the usage of LIB_INSTALL_DIR in the
concerning cmake scripts.
Any objections?
Christian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 250 bytes
Desc: OpenPGP digital signature
Url : http://mail.kde.org/pipermail/kde-buildsystem/attachments/20080112/b957c73a/attachment.pgp
More information about the Kde-buildsystem
mailing list