[Insight-developers] Building Matlab Mex extensions that link to ITK?

Williams, Norman K norman-k-williams at uiowa.edu
Tue Nov 19 12:59:15 EST 2013


Has anyone else come up with an elegant solution for this?

If I want to call ITK from a Matlab MEX extension written in C++, I run
into problems with telling it the libraries with which to link.

The ITK_LIBRARIES variable is a list of imported library targets which
CMake converts to actual library paths when it links a library or
executable.

But to compile a MEX file, we're using a custom command along the lines of

   add_custom_command(OUTPUT ${MEX_PREFIX}.${MATLAB_MEX_EXT}
                     COMMAND ${MATLAB_MEX_PATH} -cxx
${CMAKE_CXX_FLAGS_Release} ${MEX_SRC_PATH}
${ITK_INCLUDES} ${ITK_LIBRARIES}
                     -I${Teem_INCLUDE_DIR} -L${Teem_LIBRARY_DIR}  -lteem
${ZLIB_LIBRARY}
                     DEPENDS ${MEX_SRC_PATH}
                     IMPLICIT_DEPENDS C ${MEX_SRC_PATH}
                     COMMENT "BUILDING MEX_FILE: ${MEX_SRC_PATH}" )

But that doesn't work because CMake gives the target names in
ITK_LIBRARIES instead of the actual libraries.

I tried this:

find_package(ITK NO_MODULE REQUIRED)
include(${ITK_USE_FILE})

set(ITK_LOCAL_LIBS)
foreach(lib ${ITK_LIBRARIES})
  get_target_property(_lib ${lib} IMPORTED_LOCATION)

  list(APPEND ITK_LOCAL_LIBS ${_lib})endforeach()

But all the IMPORTED_LOCATION for ITK libraries is _lib-NOTFOUND



--
Kent Williams norman-k-williams at uiowa.edu






________________________________
Notice: This UI Health Care e-mail (including attachments) is covered by the Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential and may be legally privileged.  If you are not the intended recipient, you are hereby notified that any retention, dissemination, distribution, or copying of this communication is strictly prohibited.  Please reply to the sender that you have received the message in error, then delete it.  Thank you.
________________________________


More information about the Insight-developers mailing list