On 12/06/2012 05:00 PM, Stephen Kelly wrote: > Currently it doesn't seem to work. Using current master with this: > > add_library(picon SHARED libone.cpp) > add_library(picoff SHARED libtwo.cpp) > target_link_libraries(picoff picon) > > export(TARGETS > picon > NAMESPACE foo_ > FILE foo_iface.cmake > ) > > export(TARGETS > picoff > NAMESPACE bar_ > FILE bar_iface.cmake > ) > > Results in an error: > > CMake Error at CMakeLists.txt:99 (export): > export called with target "picoff" which requires target "picon" that is > not in the export list.
IIRC the topic that added dependent export support was only finished for the install(EXPORT) command and not for export(). It added a test for the install case mixing namespaces: http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=955b9662 It appears to work. The install tree contains one export with: # Create imported target Req::testLibRequired ADD_LIBRARY(Req::testLibRequired STATIC IMPORTED) ... # Import target "Req::testLibRequired" for configuration "Debug" SET_PROPERTY(TARGET Req::testLibRequired APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) SET_TARGET_PROPERTIES(Req::testLibRequired PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C" IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/lib/libtestLibRequired.a" ) and a dependent export with: # Create imported target testLibDepends ADD_LIBRARY(testLibDepends STATIC IMPORTED) ... # Make sure the targets which have been exported in some other # export set exist. IF(NOT TARGET "Req::testLibRequired" ) IF(CMAKE_FIND_PACKAGE_NAME) SET( ${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE) SET( ${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Required imported target \"Req::testLibRequired\" not found ! ") ELSE() MESSAGE(FATAL_ERROR "Required imported target \"Req::testLibRequired\" not found ! ") ENDIF() ENDIF() ... # Import target "testLibDepends" for configuration "Debug" SET_PROPERTY(TARGET testLibDepends APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) SET_TARGET_PROPERTIES(testLibDepends PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C" IMPORTED_LINK_INTERFACE_LIBRARIES_DEBUG "Req::testLibRequired" IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/lib/libtestLibDepends.a" ) This will need to work in the new interface. -Brad -- 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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers