<div dir="ltr"><div>Hi Kate,</div><div><br></div><div>The magic CMake incantations for python modules are as follows:</div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">  set(MODULE_PYTHON_NAME vtkhdftIOPython)</span></div><div>  add_library(${MODULE_PYTHON_<wbr>NAME} MODULE ${MODULE_PYTHON_NAME}Init.cxx)</div><div>  set_target_properties(${<wbr>MODULE_PYTHON_NAME} PROPERTIES PREFIX "")</div><div>  if(WIN32 AND NOT CYGWIN)</div><div>    set_target_properties(${<wbr>MODULE_PYTHON_NAME} PROPERTIES SUFFIX ".pyd")</div><div>  endif()</div><div>  if(CMAKE_VERSION VERSION_GREATER 2.8.8)</div><div>    set_target_properties(${<wbr>MODULE_PYTHON_NAME} PROPERTIES NO_SONAME 1)</div><div>  endif()</div><div><br></div><div>The trick is to set the prefix specifically for vtkhdftIOPython, don't try to set a global prefix with <span style="font-size:12.8px">CMAKE_SHARED_LIBRARY_<wbr>PREFIX.</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px"> - David</span></div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 20, 2016 at 7:43 AM, Kate Fissell <span dir="ltr"><<a href="mailto:fissell@pitt.edu" target="_blank">fissell@pitt.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
I am running VTK-7.0.0 on an Ubuntu platform using python 2.7.<br>
I have a cmake configuration for python wrapping that worked on VTK-6.2.0 and I<br>
am trying to port it to VTK-7.<br>
<br>
It builds ok, but when I try to import into python I get the error<br>
ImportError: dynamic module does not define init function (initlibvtkhdftIOPython)<br>
(my function is vtkhdftIO).<br>
<br>
I believe this is because vtkWrapPythonInit.c no longer has the loop<br>
#if defined(__CYGWIN__) || !defined(_WIN32)<br>
    /* add a "lib" prefix for compatibility with old python scripts */<br>
    if (strcmp(prefix, "lib") != 0)<br>
      {<br>
      prefix = "lib";<br>
      continue;<br>
      }<br>
#endif<br>
<br>
<br>
My lib is named libvtkhdftIOPython.so, libvtkhdftIOPythonD.so, but it contains<br>
initvtkhdftIOPython  (from running strings on the .so).  Under vtk-6.2.0<br>
the so file contained<br>
initvtkhdftIOPython<br>
initlibvtkhdftIOPython<br>
<br>
I have tried various things with CMAKE_SHARED_LIBRARY_PREFIX  to either<br>
get cmake to build the initlibvtkhdftIOPython function, or, to take the lib prefix off<br>
the .so, but have not succeeded.<br>
<br>
Can you tell me how to get the lib prefix correctly coordinated between init<br>
function and lib name  ?<br>
<br>
thanks<br>
Kate<br></blockquote></div></div></div>