Hello cmake crew,

  VC++ 6 generator -
  
  // find link libraries
  const cmTarget::LinkLibraryVectorType& libs = target.GetLinkLibraries();
  cmTarget::LinkLibraryVectorType::const_iterator j;
  for(j = libs.begin(); j != libs.end(); ++j)
    {
    // add libraries to executables and dlls (but never include
    // a library in a library, bad recursion)
    // NEVER LINK STATIC LIBRARIES TO OTHER STATIC LIBRARIES
    if ((target.GetType() != cmTarget::SHARED_LIBRARY
         && target.GetType() != cmTarget::STATIC_LIBRARY 
         && target.GetType() != cmTarget::MODULE_LIBRARY) || 
        (target.GetType()==cmTarget::SHARED_LIBRARY && libName != j->first) ||
        (target.GetType()==cmTarget::MODULE_LIBRARY && libName != j->first))
      {  

   Can anyone explain why is this restriction in place - it assumes
   that user would allways be linking target-to-target (which produces
   "bad recursion" - actually linking of the same output .lib twice
   because of VC++ built in project dependencies), but misses a valid
   use case when user is linking external .lib library to the target.

   I've actually stumbled on this path trying to separate linking of
   external libraries for different build types, which is supported
   only(?) by TARGET_LINK_LIBRARIES() debug & optimized keywords.

   Is there any other way to specify target source files which are
   specificaly bound to a certain build type?

   ie. I want debug.cpp & debug.lib to be excluded from all but
   "Debug" build type?
      
-- 
Best regards,
 speedy                          mailto:[EMAIL PROTECTED]

_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to