On 28.01.09 23:58:26, Pau Garcia i Quiles wrote: > On Wed, Jan 28, 2009 at 11:41 PM, Andreas Pakulat <[email protected]> wrote: > > On 28.01.09 22:58:04, Pau Garcia i Quiles wrote: > >> On Wed, Jan 28, 2009 at 10:39 PM, Alexander Neundorf > >> <[email protected]> wrote: > >> > On Wednesday 28 January 2009, Pau Garcia i Quiles wrote: > >> >> Hello, > >> >> > >> >> Is it possible to install a target's dependencies using the INSTALL( > >> >> TARGET ... ) signature? I. e. something like INSTALL ( TARGET mytarget > >> >> INSTALL_DEPENDENCIES ) which goes through the parameters of > >> >> TARGET_LINK_LIBRARIES and installs them too. > >> > > >> > Like this ? > >> > http://public.kitware.com/Bug/view.php?id=4266 > >> > >> More or less. In that bug report, you talk about building and > >> installing libraries which are built by the CMake build system you > >> have in place. > >> > >> The main purpose I had when I proposed INSTALL ( TARGET ... > >> INSTALL_DEPENDENCIES ) was a bit broader: have "make install" install > >> not only the depending libraries I build with CMake but also the > >> third-party libraries I find with FIND_PACKAGE( ... ) and use in > >> TARGET_LINK_LIBRARIES. > > > > But why? You've already found them, so they are already installed. There's > > no point in installing them again. I guess you actually want to create a > > distributable package of your app containing all dependencies? For that > > install is IMHO simply the wrong tool. > > No, you are wrong.
I can live with that :) > For instance, in our case Windows developers have a "3rdparty" > directory which contains compiled versions of all the libraries we use > for all our projects, for all the compilers we develop with. That > "3rdparty" directory is a svn external in the svn repository for each > project: .... > By means of CMAKE_PREFIX_PATH, INCLUDE_DIRECTORIES(), etc you can find > the libraries and header files and not have them installed. So no, > finding the libraries and header files does not imply they are > installed. IMHO the cmake project architecture implies exactly that. Install is supposed to install your project, anything you find with find_library&Co is simply not part of your project, those are external dependencies. Wether or not you keep them in the same VCS is completely irrelevant. > When I develop an application which uses Qwt5, Qt4 and OSG, it would > be convenient that a "nmake install" would install my application and > the Qwt5, Qt4 and OSG DLLs in the same directory (using RUNTIME > DESTINATION, LIBRARY DESTINATION, etc) without me having to INSTALL( > FILES ... ) or INSTALL( PROGRAMS ... ). Why install those at all, you already have them on your disk, just use the one from the external. Thats convenient (and uses a lot less disk space, looking at the list of libs you have). Personally I'm using simple cmd files that set my env up for a particular compiler+libraries I want to use (when I have to work with that OS) and then just build+run projects from that environment. Andreas -- A visit to a fresh place will bring strange work. _______________________________________________ CMake mailing list [email protected] http://www.cmake.org/mailman/listinfo/cmake
