On Wed, Feb 08, 2017 at 11:18:20AM -0700, Jason Gunthorpe wrote: > On Wed, Feb 08, 2017 at 08:01:04PM +0200, Leon Romanovsky wrote: > > On Wed, Feb 08, 2017 at 10:33:35AM -0700, Jason Gunthorpe wrote: > > > Thanks for the help, my final version which works correctly for build in place, install from > > sources and packages for centos6/centos6 is below: > > Looks good > > > # Create a special provider with exported symbols in it > > function(rdma_shared_provider DEST VERSION_SCRIPT SOVERSION VERSION) > > # Installed driver file > > file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/${DEST}.driver" "driver ${DEST}\n") > > install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${DEST}.driver" DESTINATION "${CONFIG_DIR}") > > > > # Uninstalled driver file > > file(MAKE_DIRECTORY "${BUILD_ETC}/libibverbs.d/") > > file(WRITE "${BUILD_ETC}/libibverbs.d/${DEST}.driver" "driver ${BUILD_LIB}/lib${DEST}\n") > > > > # Create a static provider library > > if (ENABLE_STATIC) > > add_library(${DEST} STATIC ${ARGN}) > > set_target_properties(${DEST} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${BUILD_LIB}") > > install(TARGETS ${DEST} DESTINATION "${CMAKE_INSTALL_LIBDIR}") > > > > list(APPEND RDMA_STATIC_LIBS ${DEST}-rdmav2 ${DEST}) > > set(RDMA_STATIC_LIBS "${RDMA_STATIC_LIBS}" CACHE INTERNAL "") > > endif() > > > > # Create the plugin shared library > > add_library(${DEST} SHARED ${ARGN}) > > # Even though these are modules we still want to use Wl,--no-undefined > > set_target_properties(${DEST} PROPERTIES LINK_FLAGS ${CMAKE_SHARED_LINKER_FLAGS}) > > rdma_set_library_map(${DEST} ${VERSION_SCRIPT}) > > > > target_link_libraries(${DEST} LINK_PRIVATE ${COMMON_LIBS_PIC}) > > target_link_libraries(${DEST} LINK_PRIVATE ibverbs) > > target_link_libraries(${DEST} LINK_PRIVATE ${CMAKE_THREAD_LIBS_INIT}) > > set_target_properties(${DEST} PROPERTIES > > SOVERSION ${SOVERSION} > > VERSION ${VERSION} > > LIBRARY_OUTPUT_DIRECTORY "${BUILD_LIB}") > > add_custom_target(share_link ALL DEPENDS "${DEST}" COMMAND ${CMAKE_COMMAND} -E create_symlink "lib${DEST}.so.${VERSION}" > > "${BUILD_LIB}/lib${DEST}-rdmav2.so") > > add_dependencies(share_link ${DEST}) > > Except this really shouldn't be a rule. The non-rule method is used > everywhere else (eg man pages), so it must work here, it doesn't make > sense that ninja vs make would be any different. When you get > everything working put it back to execute_process.. I tried it now and with ninja run, I'm getting the following error: -- Performing Test HAVE_C_WREDUNDANT_DECLS - Success failed to create symbolic link '/home/leonro/src/rdma-core/build/lib/libmlx5-rdmav2.so': No such file or directory -- Missing Optional Items: Thanks
Attachment:
signature.asc
Description: PGP signature