AW: installing libs on Windows
Nhuh Put
nhuh.put at web.de
Sat Jul 21 04:18:00 BST 2007
Hello
The install destination should be changed only for libraries, which are
loaded at application initialisation, not for libraries which are loaded
with QLibrary or KLibLoader.
I would rather add a new macro for this, as the longer install syntax is
easily forgotten (see the patch in the attachment).
There is also a new option in the new cmake version, but I didn't find any
documentation about it.
PutHuhn
-----Ursprüngliche Nachricht-----
Von: Alexander Neundorf
Gesendet: Samstag, 21. Juli 2007 04:55
Betreff: installing libs on Windows
Hi,
on Windows there is no RPATH, so the only way for executables to find their
dlls (e.g. kdecore.dll) is that either
A) the dlls are in the same directory as the executable, or
B) the directory where the dlls are is in the PATH.
In KDE4 we currently do:
INSTALL(TARGETS kdecore DESTINATION ${LIB_INSTALL_DIR})
This means we rely on option B).
We could do the following:
INSTALL(TARGETS kdecore
LIBRARY DESTINATION ${LIB_INSTALL_DIR}
RUNTIME DESTINATION ${BIN_INSTALL_DIR}
ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
This will install the .so and .dylib files to LIB_INSTALL_DIR ("LIBRARY"),
the .dll files and executables to BIN_INSTALL_DIR ("RUNTIME") and the .lib
and .a files also to LIB_INSTALL_DIR ("ARCHIVE").
It is then also possible to install libs and executables with one command:
INSTALL(TARGETS kdecore kde4-config
LIBRARY DESTINATION ${LIB_INSTALL_DIR}
RUNTIME DESTINATION ${BIN_INSTALL_DIR}
ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
The Windows developers would prefer this, the executables will be able to
run
without changing the PATH. How will the executables actually be installed ?
Via an installer which can also adjust the PATH maybe ?
Anyway, this would mean that this full syntax has to be used for every
installed library, otherwise it won't work on Windows.
As it is now, it's a bit harder for the Windows guys but safes the average
Linux KDE hacker from thinking about Windows and he can just do
INSTALL(TARGETS mylib DESTINATION lib)
(of course LIB_INSTALL_DIR is better but in most cases it's just the same
result) and it will still work on Windows (if the system is already able to
run any KDE app).
So, are their objections against using the full INSTALL() syntax everywhere
?
Bye
Alex
-------------- next part --------------
A non-text attachment was scrubbed...
Name: windows_bin2.patch
Type: application/octet-stream
Size: 1268 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20070721/e1387465/attachment.obj>
More information about the kde-core-devel
mailing list