This solved the cmake end of this.  Thanks!

B.

On 04/15/2015 11:53 PM, Petr Kmoch wrote:
Hi Bill.

Probably the easiest way to set the interface properties to just what
you need is to use the PUBLIC (which is the default), PRIVATE and
INTERFACE keywords when specifying dependencies. In your case, you'd
apply them like this:

add_library(joe STATIC joe.c joe_a.c)
add_library(fred SHARED fred.c fred_a.c)
target_link_libraries(fred PRIVATE joe)  # PRIVATE means it will not
form part of the transitive linking interface

add_executable(mike mike.c)
# mike only contains calls to functions in fred
target_link_libraries(mike fred)

I hope this helps.

Petr


On Thu, Apr 16, 2015 at 12:07 AM, Bill Newcomb <bnewc...@nvidia.com
<mailto:bnewc...@nvidia.com>> wrote:

    The following is all on Linux (with gcc, gnu binutils, etc).

    I'm trying to build libfred.so that uses code from libjoe.a, but I
    want libfred.so to be complete, i.e. I don't want any program that I
    build that links to libfred.so also need libjoe.a.

    Then I want to build executable mike that is dynamically linked with
    libfred.so .  However, the link script for mike puts libjoe.a on the
    command line.

    add_library(joe STATIC joe.c joe_a.c)
    add_library(fred SHARED fred.c fred_a.c)
    target_link_libraries(fred joe)

    add_executable(mike mike.c)
    # mike only contains calls to functions in fred
    target_link_libraries(mike fred)


    The docs give me the impression that I should set the
    INTERFACE_LINK_LIBRARIES property on moo to override the inherited
    transitive dependencies, but setting it to "" has no effect.  Same
    for LINK_INTERFACE_LIBRARIES.

    Any idea how to make this work?

    Thanks,
    B.

    
------------------------------__------------------------------__-----------------------
    This email message is for the sole use of the intended recipient(s)
    and may contain
    confidential information.  Any unauthorized review, use, disclosure
    or distribution
    is prohibited.  If you are not the intended recipient, please
    contact the sender by
    reply email and destroy all copies of the original message.
    
------------------------------__------------------------------__-----------------------
    --

    Powered by www.kitware.com <http://www.kitware.com>

    Please keep messages on-topic and check the CMake FAQ at:
    http://www.cmake.org/Wiki/__CMake_FAQ
    <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
    <http://cmake.org/cmake/help/support.html>
    CMake Consulting: http://cmake.org/cmake/help/__consulting.html
    <http://cmake.org/cmake/help/consulting.html>
    CMake Training Courses: http://cmake.org/cmake/help/__training.html
    <http://cmake.org/cmake/help/training.html>

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

    Follow this link to subscribe/unsubscribe:
    http://public.kitware.com/__mailman/listinfo/cmake
    <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

Reply via email to