You can manage different paths (one for build export and one for install export) by using '$<BUILD_INTERFACE:...>' and '$<INSTALL_INTERFACE:...>'. '$<BUILD_INTERFACE:...>' accepts absolute paths and '$<INSTALL_INTERFACE:...> expects paths relative to the install prefix (CMAKE_INSTALL_PREFIX variable). .
Le lun. 25 juin 2018 à 16:23, Rich T <rsjtaylor.git...@gmail.com> a écrit : > 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 >
-- 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