<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p><tt>Hi all,</tt></p>
<p><tt>Here is hopefully the last of the issues I am running into, I
just tried to create wheels for 8.2.0-rc2 and have the following
problem. </tt><tt><br>
</tt></p>
<p><tt>First for some background. Some of the VTK Python libraries
seem to link to the PYTHON_LIBRARY, for the wheels, we do not do
this. JC pointed this out to me
<a class="moz-txt-link-freetext" href="https://www.python.org/dev/peps/pep-0513/#libpythonx-y-so-1">https://www.python.org/dev/peps/pep-0513/#libpythonx-y-so-1</a></tt></p>
<p><tt>Basically, if we build wheels linking to the libpython* the
wheel may not work on Ubuntu/Debian which would be sad.</tt><tt><br>
</tt></p>
<p><tt>In the past what we did to build the wheels is provide a
dummy
VTKPythonPackage/scripts/internal/libpython-not-needed-symbols-exported-by-interpreter
and passing that. This somehow worked by tricking CMake into
thinking there was a library specified but I am not sure how the
linker did not complain. Anyway, when I try to build the wheels
now on MacOS I get this error:</tt></p>
<p><tt>Linking CXX shared
library...ib/libvtkPythonInterpreter-8.2.1.dylib</tt><tt><br>
</tt><tt>FAILED: lib/libvtkPythonInterpreter-8.2.1.dylib</tt><tt><br>
</tt><tt>: &&
/Library/Developer/CommandLineTools/usr/bin/c++ -O3 -DNDEBUG
-arch x86_64 -isysroot
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk
-mmacosx-version-min=10.9 -dynamiclib
-Wl,-headerpad_max_install_names -undefined dynamic_lookup
-compatibility_version 1.0.0 -current_version 1.0.0 -o
lib/libvtkPythonInterpreter-8.2.1.dylib -install_name
@rpath/libvtkPythonInterpreter-8.2.1.dylib
Utilities/PythonInterpreter/CMakeFiles/vtkPythonInterpreter.dir/vtkPythonInterpreter.cxx.o
Utilities/PythonInterpreter/CMakeFiles/vtkPythonInterpreter.dir/vtkPythonInteractiveInterpreter.cxx.o
-Wl,-rpath,VTKPythonPackage/VTK-osx_3.7/lib
VTKPythonPackage/scripts/internal/libpython-not-needed-symbols-exported-by-interpreter
lib/libvtksys-8.2.1.dylib lib/libvtkCommon-8.2.1.dylib
&& :</tt><tt><br>
</tt><tt>ld: file too small (length=0) file
'VTKPythonPackage/scripts/internal/libpython-not-needed-symbols-exported-by-interpreter'
for architecture x86_64</tt><tt><br>
</tt><tt>clang: error: linker command failed with exit code 1 (use
-v to see invocation)</tt><tt><br>
</tt></p>
<p><tt><br>
</tt></p>
<p><tt>Right now, I am able to build wheels only by leaving the
PYTHON_LIBRARY entry blank. This means that the
libvtkPythonInterpreter-8.2.1.dylib does indeed link to the
libpythonx.y.dylib. </tt><tt><br>
</tt></p>
<p><tt>However, I do notice that the other libvtk*Python*8.2.1.dylib
do not link to libpython. So libvtkPythonInterpreter is the
only one linking to libpython. So I think maybe if a user never
uses the libvtkPythonInterpreter or if that is never explicitly
imported or linked to in any Python code, we may be fine with
these wheels. Also I see that none of the Python extension
modules, i.e. all the vtk*Python.so do not link to libpython or
to libvtkPythonInterpreter.<br>
</tt></p>
<p><tt>Should I just ignore the libvtkPythonInterpreter and leave
the PYTHON_LIBRARY field blank?</tt><tt><br>
</tt></p>
<p><tt>I would appreciate your thoughts on this matter. Thanks!<br>
</tt></p>
<p><tt>cheers,</tt></p>
<p><tt>Prabhu</tt><tt><br>
</tt></p>
</body>
</html>