Hi everyone, I've a question about interface sources. If you create an interface target A, add some sources via
add_library(A INTERFACE) target_sources(A INTERFACE some/relative/path) then link to another library B: add_library(B) target_link_libraries(B PRIVATE A) B will search for those sources relative to its own source directory, not the directory where A is defined. This means B fails to configure with a missing sources error if the targets are in different directories. If I specify the paths absolutely, B successfully finds the sources. However, A can no longer be exported and neither can the static variant of B by association. I tried using $<TARGET_PROPERTY:A,SOURCE_DIR> in front of the relative path, however it turns out SOURCE_DIR isn't a whitelisted property for INTERFACE libraries. Is this behavior intentional, and if so, is there any workaround? (other than defining all targets with interface sources in the same directory as the targets that use them)
-- 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: https://cmake.org/mailman/listinfo/cmake