Wups, sent a moment to early... Stephen Kelly wrote:
> Clinton Stimpson wrote: >> It means the target must be created again with something like >> add_library(Qt4::QtCore UNKNOWN IMPORTED) >> >> If GrantleeConfig.cmake were to do this: >> SET(QT_USE_IMPORTED_TARGETS 1) >> find_package(Qt4 REQUIRED) >> >> then the imported targets would satisfy the Qt4::QtCore reference and >> others from your GrantleeTargets-debug. >> >>> >>> > The GrantleeConfig.cmake could set QT_USE_IMPORTED_TARGETS and a >>> > find_package(Qt4) to recreated those imported targets. >>> >>> Ok, so maybe setting cis the thing that needs to >>> be done 'again' by project B? >> >> Yes, or preferably in your GrantleeConfig.cmake so project B doesn't have >> to do it. >> > > I tried creating the error scenario, but it does work even if the > downstream does not set QT_USE_IMPORTED_TARGETS and even if I don't put it > in GrantleeConfig either. Qt4::QtCore is never interpreted as a file path > because FindQt4.cmake sets it unconditionally, and only conditionally sets > QT_QTCORE_LIBRARY to Qt4::QtCore based on QT_USE_IMPORTED_TARGETS. That means that if GrantleeTarget-debug uses IMPORTED_LINK_INTERFACE_LIBRARIES_DEBUG "Qt4::QtCore" then the Qt4::QtCore will never be interpreted as a file on disk and the comment in the file: > This > means when a project B then uses project A, these imported targets must be > created again, otherwise e.g. "Qt4__QtCore" will be interpreted as name of > a library file on disk, and not as a target, and linking will fail. is not correct. Right? Also, it means that I don't have to use SET(QT_USE_IMPORTED_TARGETS 1) find_package(Qt4 REQUIRED) in my GrantleeConfig? Thanks, Steve. _______________________________________________ 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
