Unfortunately, that is not what I've found. There are libraries we build that have their own target_link_libraries, and if these libraries are used on the target_link_libraries for an executable, its dependencies are also pulled into the executables link line. This is expected, handling of transitive dependencies. What is not expected is when I add libraries we don't build, or object files, the link order gets messed up. That and we see duplicates of libraries. For instance, when I pull in the the Qt libraries, they always show up twice. Perhaps this is because of transitive dependencies.
In any case, there appears to be no fine grain control of link libraries/ordering and it is driving me nuts. I'll see if I can come up with a reproducer. It'll be a while before I can get one to the list. Tom On Tue, Jan 20, 2015 at 10:07 PM, J Decker <[email protected]> wrote: > library link order is exactly as you specify in target_link_libraries... > each line following the last of the prior list.... so reording your library > link list should be doable > > On Tue, Jan 20, 2015 at 9:57 AM, Tom Kacvinsky < > [email protected]> wrote: > >> HI, >> >> I am using cmake 2.8,11.2 on Linux. I am having a problem with the order >> of libraries on the link line. In particular, there are some static >> archives we build that depend on a third party static archive (one we don't >> build - it comes with the Ada compiler we are using), yet the tghird part >> archive is on the link line (as given by the link.txt file) *before* the >> static archives we build. There are also problems with duplicated shared >> libraries and a few other issues related to linking. I have not bee able >> to suss out what cmake is doing to construct the list of link libraries >> used, and how it orders them. It is very important that we have the right >> order of libraries >> >> Unfortunately, our cmake files are too complicated to post here, and also >> depend on a working Ada compiler plus the plplot projects Ada support cmake >> "modules". Coming up with a simple reproducer is also difficult given the >> latter constaints. >> >> Can anyone point me in the right direction? If there is a heuristic I >> can follow - like ordering our libraries in target_link_libraries() >> differently - I would like to hear about it. >> >> Thanks, >> >> Tom >> >> -- >> >> 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/mailman/listinfo/cmake >> > >
-- 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/mailman/listinfo/cmake
