On 13.12.11 15:59:17, Biddiscombe, John A. wrote: > Project A creates a target which links to hdf5 using the hdf5 cmake generated > cmake file which lists the imported location for the debug lib as hdf5d.lib > > > > SET_TARGET_PROPERTIES(hdf5 PROPERTIES > > IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C" > > IMPORTED_LINK_INTERFACE_LIBRARIES_DEBUG "kernel32;ws2_32;wsock32;C:/Program > Files/MPICH2/lib/mpi.lib;C:/Program Files/MPICH2/lib/fmpich2.lib" > > IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/lib/hdf5d.lib" > > ) > > > > when project A creates its own install file it generates the target > properties as follows - using the name hdf5 - not hdf5d.lib > > > > SET_TARGET_PROPERTIES(A PROPERTIES > > IMPORTED_IMPLIB_DEBUG "D:/cmakebuild/test/bin/Debug/A.lib" > > IMPORTED_LINK_INTERFACE_LIBRARIES_DEBUG "C:/Program > Files/MPICH2/lib/mpi.lib;hdf5; " > > IMPORTED_LOCATION_DEBUG "D:/cmakebuild/test/bin/Debug/A.dll" > > ) > > > > and when project B loads the cmake file for project A, it does not pick up > the correct lib name for the hdf5 library. > > > > Is there a way to get this right?
Sure, when project A is loaded into project B it either needs to search and load the hdf5 cmake file or require that to be done in project B before loading project A. Then the hdf5 target will be known in project B too and linking will work fine. If project A does not expose any of the API of hdf5 in its own libraries and you're using dynamic linking and project B does not use hdf5 itself then you could also remove hdf5 from the link-interface of project A. Andreas -- 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