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 d3c...@gmail.com 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
tom.kacvin...@vectorcast.com 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