Suppose I have the following: ``` add_library( A STATIC ${files} )
add_library( B SHARED ${more_files} ) target_link_libraries( B PUBLIC A ) add_library( C STATIC ${even_more_files} ) target_link_libraries( C PUBLIC B ) add_executable( D ${exe_files} ) target_link_libraries( D PRIVATE C ) ``` Does the linker command for target `D` ever see target A's static link library? I'm hoping the only thing the linker gets is `libB.so` and `libC.a`, without `libA.a`. It seems like A to everyone outside of B should just be a set of public include directories and compile definitions, since the link file aspect of it should be hidden across shared library boundaries. Hoping someone can explain how this works. I want to make sure static libs sitting behind shared libs in the dependency tree do not get exposed. -- 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