On 06/06/2014 10:11 AM, Sam Spilsbury wrote:
> The solution is just not to add dependencies on such libraries, as any
> dependencies of the IMPORTED target itself will be added as
> dependencies of targets depending on the IMPORTED target.

There are no build rules for imported targets so they have no
dependencies anyway.  The patch in question:

       // Pass the full path to the target file.
       std::string lib = tgt->GetFullPath(config, implib, true);
-      if(!this->LinkDependsNoShared ||
-         tgt->GetType() != cmTarget::SHARED_LIBRARY)
+      if((!this->LinkDependsNoShared ||
+          tgt->GetType() != cmTarget::SHARED_LIBRARY) && !tgt->IsImported())
         {
         this->Depends.push_back(lib);
         }

touches code used to generate dependencies on a link rule.
If link rules do not depend on imported libraries then they
will not re-link when those libraries change on disk.  This
is incorrect.

> Fixes #13574.

All generators except Ninja are able to deal with this correctly.
The place to fix it must be in the Ninja generator.

Thanks,
-Brad

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers

Reply via email to