• Daniele E. Domenichelli's avatar
    Fix link line order when shared libraries are de-duplicated · 4db31095
    Daniele E. Domenichelli authored
    Since commit v3.1.0-rc1~227^2~1 (De-duplicate shared library targets in
    generated link lines, 2014-07-30) we de-duplicate shared library targets
    on the link line.  However, some toolchains will fail linking if an
    executable is linking to a shared library that is not used directly and
    a static library that depends on the shared one.  The linker may not
    keep the reference to the shared library the first time and then the
    symbols needed by the static library may not be found.
    
    Fix this by reversing the direction of the for loop that removes the
    duplicate shared libraries, in order to ensure that the last occurrence
    of the library is left instead of the first one.
    
    Extend Tests/Dependency with a case covering this behavior.  Create an
    executable that links to a shared library and a static library but only
    needs the shared library as a dependency of the static library.
    
    Co-Author: Brad King <brad.king@kitware.com>
    4db31095
CMakeLists.txt 1.28 KB