On Thu, Dec 11, 2008 at 2:44 PM, Robert Dailey <[email protected]> wrote:
> On Thu, Dec 11, 2008 at 12:19 PM, Andreas Pakulat <[email protected]> wrote: > >> On 11.12.08 10:55:42, Robert Dailey wrote: >> > If I have a project in CMake that builds a shared library, what will >> happen >> > if I set this shared library project as a parameter in >> > target_link_libraries() for an executable project? What will happen to >> the >> > DLL file? Will CMake copy it to the executable output directory >> > automatically, or must I do this manually through CMake -E? >> >> Inside the builddir? No it won't. If you however use the install() method >> together with the RUNTIME, ARCHIVE and LIBRARY options it will install the >> .dll into the RUNTIME directory and the import library into the ARCHIVE >> directory. So just make sure to provide all three for any install() call >> and .exe and .dll will end up in the same directory. > > > I'm finding that INSTALL() will not work unless a target is already > defined. This logically makes sense, of course, however this makes the order > in which I define my targets sensitive. Is it possible to reference a target > before it has been defined, or must I organize my projects accordingly? > To elaborate, I'm specifically getting this error message: CMake Error at vfx/CMakeLists.txt:74 (install): install TARGETS given target "messenger" which does not exist in this directory. And this is what my INSTALL() command looks like: install( TARGETS messenger ARCHIVE DESTINATION "${target_bin_dir}" ) I have no idea what the error message above means. At first I thought it was due to the ordering in which I defined my projects, but I'm not sure that's true. The 'messenger' project is defined in another sibling directory, perhaps that is the issue?
_______________________________________________ CMake mailing list [email protected] http://www.cmake.org/mailman/listinfo/cmake
