On Jun 22, 2011, at 7:01 AM, Stephen Kelly wrote: > 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?
Yeah, I just looked again to verify what you are seeing... you don't need to do this SET(QT_USE_IMPORTED_TARGETS 1) in GrantleeConfig.cmake, but you can still do find_package(Qt4 REQUIRED) to create the imported targets. Clint _______________________________________________ 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
