Philip Lowman ha scritto:
On Wed, Feb 11, 2009 at 8:54 AM, Brad King <brad.k...@kitware.com <mailto:brad.k...@kitware.com>> wrote:

    Philip Lowman wrote:

        On Tue, Feb 10, 2009 at 1:01 PM, Brad King
        <brad.k...@kitware.com <mailto:brad.k...@kitware.com>    CMake
        2.6 makes it easy to export targets from one project (either its

           build tree or install tree) for use by another project.

        Is this the easiest way to register dependencies of IMPORTED
        static libraries against each other?  I'm just curious if
        there are plans to make target_link_libraries() work for this
        or is there a technical problem allowing it?


    I do not plan to allow target_link_libraries for this.  One must use
    IMPORTED_LINK_INTERFACE_LIBRARIES.  However, it is easier than your
    example makes it because the property can name other imported
    targets:


    add_library(baz STATIC IMPORTED)
    set_target_properties(baz PROPERTIES
       IMPORTED_LOCATION_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/libbaz.a
       IMPORTED_LOCATION_DEBUG   ${CMAKE_CURRENT_SOURCE_DIR}/libbazd.a)

    add_library(bar STATIC IMPORTED)
    set_target_properties(bar PROPERTIES
       IMPORTED_LOCATION_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/libbar.a
       IMPORTED_LOCATION_DEBUG   ${CMAKE_CURRENT_SOURCE_DIR}/libbard.a
       IMPORTED_LINK_INTERFACE_LIBRARIES baz) # <-- dependency is here

I' ma bit confused, just to make clear: the proposed import method are used in the final projects that USES the libraries. by install(EXPORT) the needed code is hidden in a config--baz--cmake file that is evaluated inby the final project tha so does not have to rely on FindBAZ script. But effectively this is just a way to hide the fact that the final project links to both libbaz and libbar

The specification of dependency lib as a STATIC_LIBRARY_FLAGS produce a bigger library tha has both baz and bar, and can be used straight, at least under VS7.1

I appreciate the IMPORT and EXPORT stuff and will try to use that (could we use that also for the whole OpenSceneGraph itself ? what do you think Philip?)
Nevertheless the STATIC_LIBRARY_FLAGS seems much simpler

Thanks

Yes, thanks for pointing that out, that is much simpler.

    Note if the outside project is also created by CMake, the
    install(EXPORT)
    feature can generate the proper import code for it.

Yes, I hope to play with that feature soon. Thanks.

--
Philip Lowman


_______________________________________________
Powered by www.kitware.com

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

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

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to