-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
remove unnecessary link against VTK_PYTHON_LIBRARIES #27
base: main
Are you sure you want to change the base?
Conversation
024e446
to
66d5970
Compare
Thanks for the patch 🙏 @allemangD Could you check this doesn't have unintended effect in your project ? On my side, I will assess the impact on Slicer. |
For provide some context, this module is intended to provide an adapter layer to support wrapping of the VTK-based project. It has been first developed within Slicer repository starting in 2011 (See CMake/vtkMacroKitPythonWrap.cmake history). Later on, the module was moved to Recently support for VTK < 8.2 was removed (See a64d854) Updating it to follow the best practices is very sensible 💯 That said, such changes should be done reviewing VTK history to provide a bit more context. For example, the variable This is why we should keep it for now. To help assess impact of changes, I find that using |
Could we add an |
Indeed, conditionally setting the relevant variables make sense. |
OK- I could look at this next week maybe. Is there a way to run CI on this? I don’t want to have to figure out building Slicer! |
Well take care of testing Slicer, just update the PR so that it works for you and the behavior is preserved for old VTK. Thank you! |
Hi @lassoan - I think the commit I just forced should work. I think I have figured out how to make your commit message checker happy too :) |
Removal of |
…N_LIBRARIES Since the variable VTK_WRAP_PYTHON_FIND_LIBS was removed in Kitware/VTK@ed49fa01c (VTK v9.0.0) but is still used in VTK v8.2.0, this commit conditionally set it. Similarly it removes the link against VTK_PYTHON_LIBRARIES as any necessary link should be picked up via the INTERFACE_LINK property of VTK::Python. Co-authored-by: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com> Co-authored-by: Andras Lasso <lasso@queensu.ca>
To build Slicer (on Ubuntu), VTK itself should be configured with Without disabling
vtkAddonPython target link errorsCMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:function PyvtkAddonMathUtilities_FitPlaneToPoints_s2(_object*, _object*): error: undefined reference to 'PyErr_Occurred' CMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:function PyvtkAddonMathUtilities_FitPlaneToPoints_s2(_object*, _object*): error: undefined reference to 'PyBool_FromLong' CMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:function PyvtkAddonMathUtilities_FitPlaneToPoints_s1(_object*, _object*): error: undefined reference to 'PyErr_Occurred' CMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:function PyvtkAddonMathUtilities_FitPlaneToPoints_s1(_object*, _object*): error: undefined reference to 'PyBool_FromLong' CMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:function PyvtkAddonMathUtilities_NormalizeOrientationMatrixColumns(_object*, _object*): error: undefined reference to 'PyErr_Occurred' CMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:function PyvtkAddonMathUtilities_NormalizeOrientationMatrixColumns(_object*, _object*): error: undefined reference to 'PyErr_Occurred' CMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:function PyvtkAddonMathUtilities_NormalizeOrientationMatrixColumns(_object*, _object*): error: undefined reference to '_Py_NoneStruct' CMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:function PyvtkAddonMathUtilities_NormalizeColumns(_object*, _object*): error: undefined reference to '_Py_NoneStruct' CMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:function PyvtkAddonMathUtilities_SetOrientationMatrix(_object*, _object*): error: undefined reference to '_Py_NoneStruct' CMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:function PyvtkAddonMathUtilities_GetOrientationMatrix(_object*, _object*): error: undefined reference to '_Py_NoneStruct' CMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:function PyvtkAddonMathUtilities_MatrixAreEqual_s4(_object*, _object*): error: undefined reference to 'PyBool_FromLong' CMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:function PyvtkAddonMathUtilities_MatrixAreEqual_s3(_object*, _object*): error: undefined reference to 'PyBool_FromLong' CMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:function PyvtkAddonMathUtilities_IsTypeOf(_object*, _object*): error: undefined reference to 'PyLong_FromLong' CMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:function PyvtkAddonMathUtilities_GetNumberOfGenerationsFromBaseType(_object*, _object*): error: undefined reference to 'PyLong_FromLongLong' CMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:function PyvtkAddonMathUtilities_IsA(_object*, _object*): error: undefined reference to 'PyLong_FromLong' CMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:function PyvtkAddonMathUtilities_GetNumberOfGenerationsFromBase(_object*, _object*): error: undefined reference to 'PyLong_FromLongLong' CMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:function PyvtkAddonMathUtilities_ToString(_object*, _object*): error: undefined reference to 'PyUnicode_FromStringAndSize' CMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:function PyvtkAddonMathUtilities_ToString(_object*, _object*): error: undefined reference to 'PyErr_Clear' CMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:function PyvtkAddonMathUtilities_ToString(_object*, _object*): error: undefined reference to 'PyBytes_FromStringAndSize' CMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:function PyvtkAddonMathUtilities_ClassNew: error: undefined reference to 'PyType_Ready' CMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:function PyVTKAddFile_vtkAddonMathUtilities: error: undefined reference to 'PyDict_SetItemString' CMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:function PyVTKAddFile_vtkAddonMathUtilities: error: undefined reference to '_Py_Dealloc' CMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:PyvtkAddonMathUtilities_Type: error: undefined reference to 'PyType_Type' CMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:PyvtkAddonMathUtilities_Type: error: undefined reference to 'PyObject_GenericGetAttr' CMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:PyvtkAddonMathUtilities_Type: error: undefined reference to 'PyObject_GenericSetAttr' CMakeFiles/vtkAddonPython.dir/vtkAddonMathUtilitiesPython.cxx.o:vtkAddonMathUtilitiesPython.cxx:PyvtkAddonMathUtilities_Type: error: undefined reference to 'PyObject_GC_Del' CMakeFiles/vtkAddonPython.dir/vtkErrorSinkPython.cxx.o:vtkErrorSinkPython.cxx:function PyvtkErrorSink_IsTypeOf(_object*, _object*): error: undefined reference to 'PyLong_FromLong' CMakeFiles/vtkAddonPython.dir/vtkErrorSinkPython.cxx.o:vtkErrorSinkPython.cxx:function PyvtkErrorSink_GetNumberOfGenerationsFromBaseType(_object*, _object*): error: undefined reference to 'PyLong_FromLongLong' CMakeFiles/vtkAddonPython.dir/vtkErrorSinkPython.cxx.o:vtkErrorSinkPython.cxx:function PyvtkErrorSink_IsA(_object*, _object*): error: undefined reference to 'PyLong_FromLong' CMakeFiles/vtkAddonPython.dir/vtkErrorSinkPython.cxx.o:vtkErrorSinkPython.cxx:function PyvtkErrorSink_GetNumberOfGenerationsFromBase(_object*, _object*): error: undefined reference to 'PyLong_FromLongLong' CMakeFiles/vtkAddonPython.dir/vtkErrorSinkPython.cxx.o:vtkErrorSinkPython.cxx:function PyvtkErrorSink_ClassNew: error: undefined reference to 'PyType_Ready' CMakeFiles/vtkAddonPython.dir/vtkErrorSinkPython.cxx.o:vtkErrorSinkPython.cxx:function PyVTKAddFile_vtkErrorSink: error: undefined reference to 'PyDict_SetItemString' CMakeFiles/vtkAddonPython.dir/vtkErrorSinkPython.cxx.o:vtkErrorSinkPython.cxx:function PyVTKAddFile_vtkErrorSink: error: undefined reference to '_Py_Dealloc' CMakeFiles/vtkAddonPython.dir/vtkErrorSinkPython.cxx.o:vtkErrorSinkPython.cxx:PyvtkErrorSink_Type: error: undefined reference to 'PyType_Type' CMakeFiles/vtkAddonPython.dir/vtkErrorSinkPython.cxx.o:vtkErrorSinkPython.cxx:PyvtkErrorSink_Type: error: undefined reference to 'PyObject_GenericGetAttr' CMakeFiles/vtkAddonPython.dir/vtkErrorSinkPython.cxx.o:vtkErrorSinkPython.cxx:PyvtkErrorSink_Type: error: undefined reference to 'PyObject_GenericSetAttr' CMakeFiles/vtkAddonPython.dir/vtkErrorSinkPython.cxx.o:vtkErrorSinkPython.cxx:PyvtkErrorSink_Type: error: undefined reference to 'PyObject_GC_Del' CMakeFiles/vtkAddonPython.dir/vtkOrientedBSplineTransformPython.cxx.o:vtkOrientedBSplineTransformPython.cxx:function PyvtkOrientedBSplineTransform_ClassNew: error: undefined reference to 'PyType_Ready' CMakeFiles/vtkAddonPython.dir/vtkOrientedBSplineTransformPython.cxx.o:vtkOrientedBSplineTransformPython.cxx:function PyVTKAddFile_vtkOrientedBSplineTransform: error: undefined reference to 'PyDict_SetItemString' CMakeFiles/vtkAddonPython.dir/vtkOrientedBSplineTransformPython.cxx.o:vtkOrientedBSplineTransformPython.cxx:function PyVTKAddFile_vtkOrientedBSplineTransform: error: undefined reference to '_Py_Dealloc' CMakeFiles/vtkAddonPython.dir/vtkOrientedBSplineTransformPython.cxx.o:vtkOrientedBSplineTransformPython.cxx:PyvtkOrientedBSplineTransform_Type: error: undefined reference to 'PyType_Type' CMakeFiles/vtkAddonPython.dir/vtkOrientedBSplineTransformPython.cxx.o:vtkOrientedBSplineTransformPython.cxx:PyvtkOrientedBSplineTransform_Type: error: undefined reference to 'PyObject_GenericGetAttr' CMakeFiles/vtkAddonPython.dir/vtkOrientedBSplineTransformPython.cxx.o:vtkOrientedBSplineTransformPython.cxx:PyvtkOrientedBSplineTransform_Type: error: undefined reference to 'PyObject_GenericSetAttr' CMakeFiles/vtkAddonPython.dir/vtkOrientedBSplineTransformPython.cxx.o:vtkOrientedBSplineTransformPython.cxx:PyvtkOrientedBSplineTransform_Type: error: undefined reference to 'PyObject_GC_Del' CMakeFiles/vtkAddonPython.dir/vtkOrientedGridTransformPython.cxx.o:vtkOrientedGridTransformPython.cxx:function PyvtkOrientedGridTransform_ClassNew: error: undefined reference to 'PyType_Ready' CMakeFiles/vtkAddonPython.dir/vtkOrientedGridTransformPython.cxx.o:vtkOrientedGridTransformPython.cxx:function PyvtkOrientedGridTransform_ClassNew: error: undefined reference to 'PyDict_SetItemString' CMakeFiles/vtkAddonPython.dir/vtkOrientedGridTransformPython.cxx.o:vtkOrientedGridTransformPython.cxx:function PyvtkOrientedGridTransform_ClassNew: error: undefined reference to '_Py_Dealloc' CMakeFiles/vtkAddonPython.dir/vtkOrientedGridTransformPython.cxx.o:vtkOrientedGridTransformPython.cxx:PyvtkOrientedGridTransform_Type: error: undefined reference to 'PyType_Type' CMakeFiles/vtkAddonPython.dir/vtkOrientedGridTransformPython.cxx.o:vtkOrientedGridTransformPython.cxx:PyvtkOrientedGridTransform_Type: error: undefined reference to 'PyObject_GenericGetAttr' CMakeFiles/vtkAddonPython.dir/vtkOrientedGridTransformPython.cxx.o:vtkOrientedGridTransformPython.cxx:PyvtkOrientedGridTransform_Type: error: undefined reference to 'PyObject_GenericSetAttr' CMakeFiles/vtkAddonPython.dir/vtkOrientedGridTransformPython.cxx.o:vtkOrientedGridTransformPython.cxx:PyvtkOrientedGridTransform_Type: error: undefined reference to 'PyObject_GC_Del' CMakeFiles/vtkAddonPython.dir/vtkOrientedGridTransformPython.cxx.o:vtkOrientedGridTransformPython.cxx:PyvtkOrientedGridTransform_Events_Type: error: undefined reference to 'PyLong_Type' CMakeFiles/vtkAddonPython.dir/vtkOrientedGridTransformPython.cxx.o:vtkOrientedGridTransformPython.cxx:PyvtkOrientedGridTransform_Events_Type: error: undefined reference to 'PyObject_Free' CMakeFiles/vtkAddonPython.dir/vtkParallelTransportFramePython.cxx.o:vtkParallelTransportFramePython.cxx:function PyvtkParallelTransportFrame_GetNormalsArrayName(_object*, _object*): error: undefined reference to 'PyUnicode_FromStringAndSize' CMakeFiles/vtkAddonPython.dir/vtkParallelTransportFramePython.cxx.o:vtkParallelTransportFramePython.cxx:function PyvtkParallelTransportFrame_GetNormalsArrayName(_object*, _object*): error: undefined reference to 'PyErr_Clear' CMakeFiles/vtkAddonPython.dir/vtkParallelTransportFramePython.cxx.o:vtkParallelTransportFramePython.cxx:function PyvtkParallelTransportFrame_GetNormalsArrayName(_object*, _object*): error: undefined reference to 'PyBytes_FromStringAndSize' CMakeFiles/vtkAddonPython.dir/vtkParallelTransportFramePython.cxx.o:vtkParallelTransportFramePython.cxx:function PyvtkParallelTransportFrame_GetBinormalsArrayName(_object*, _object*): error: undefined reference to 'PyUnicode_FromStringAndSize' CMakeFiles/vtkAddonPython.dir/vtkParallelTransportFramePython.cxx.o:vtkParallelTransportFramePython.cxx:function PyvtkParallelTransportFrame_GetBinormalsArrayName(_object*, _object*): error: undefined reference to 'PyErr_Clear' CMakeFiles/vtkAddonPython.dir/vtkParallelTransportFramePython.cxx.o:vtkParallelTransportFramePython.cxx:function PyvtkParallelTransportFrame_GetBinormalsArrayName(_object*, _object*): error: undefined reference to 'PyBytes_FromStringAndSize' CMakeFiles/vtkAddonPython.dir/vtkParallelTransportFramePython.cxx.o:vtkParallelTransportFramePython.cxx:function PyvtkParallelTransportFrame_GetTangentsArrayName(_object*, _object*): error: undefined reference to 'PyUnicode_FromStringAndSize' CMakeFiles/vtkAddonPython.dir/vtkParallelTransportFramePython.cxx.o:vtkParallelTransportFramePython.cxx:function PyvtkParallelTransportFrame_GetTangentsArrayName(_object*, _object*): error: undefined reference to 'PyErr_Clear' CMakeFiles/vtkAddonPython.dir/vtkParallelTransportFramePython.cxx.o:vtkParallelTransportFramePython.cxx:function PyvtkParallelTransportFrame_GetTangentsArrayName(_object*, _object*): error: undefined reference to 'PyBytes_FromStringAndSize' CMakeFiles/vtkAddonPython.dir/vtkStreamingVolumeCodecPython.cxx.o:vtkStreamingVolumeCodecPython.cxx:function PyvtkStreamingVolumeCodec_GetParameterPresetNames(_object*, _object*): error: undefined reference to 'PyTuple_New' CMakeFiles/vtkAddonPython.dir/vtkStreamingVolumeCodecPython.cxx.o:vtkStreamingVolumeCodecPython.cxx:function PyvtkStreamingVolumeCodec_GetAvailiableParameterNames(_object*, _object*): error: undefined reference to 'PyTuple_New' CMakeFiles/vtkAddonPython.dir/vtkStreamingVolumeCodecFactoryPython.cxx.o:vtkStreamingVolumeCodecFactoryPython.cxx:function PyvtkStreamingVolumeCodecFactoryInitialize_New(_typeobject*, _object*, _object*): error: undefined reference to 'PyDict_Size' CMakeFiles/vtkAddonPython.dir/vtkStreamingVolumeCodecFactoryPython.cxx.o:vtkStreamingVolumeCodecFactoryPython.cxx:function PyvtkStreamingVolumeCodecFactoryInitialize_New(_typeobject*, _object*, _object*): error: undefined reference to 'PyExc_TypeError' CMakeFiles/vtkAddonPython.dir/vtkStreamingVolumeCodecFactoryPython.cxx.o:vtkStreamingVolumeCodecFactoryPython.cxx:function PyvtkStreamingVolumeCodecFactoryInitialize_New(_typeobject*, _object*, _object*): error: undefined reference to 'PyErr_SetString' CMakeFiles/vtkAddonPython.dir/vtkStreamingVolumeCodecFactoryPython.cxx.o:vtkStreamingVolumeCodecFactoryPython.cxx:function PyvtkStreamingVolumeCodecFactory_GetStreamingCodecFourCCs(_object*, _object*): error: undefined reference to 'PyTuple_New' CMakeFiles/vtkAddonPython.dir/vtkStreamingVolumeCodecFactoryPython.cxx.o:vtkStreamingVolumeCodecFactoryPython.cxx:function PyvtkStreamingVolumeCodecFactory_GetStreamingCodecClassNames(_object*, _object*): error: undefined reference to 'PyTuple_New' CMakeFiles/vtkAddonPython.dir/vtkStreamingVolumeCodecFactoryPython.cxx.o:vtkStreamingVolumeCodecFactoryPython.cxx:function PyvtkStreamingVolumeCodecFactoryInitialize_Hash(_object*): error: undefined reference to 'PyObject_HashNotImplemented' CMakeFiles/vtkAddonPython.dir/vtkStreamingVolumeCodecFactoryPython.cxx.o:vtkStreamingVolumeCodecFactoryPython.cxx:function PyvtkStreamingVolumeCodecFactoryInitialize_Delete(_object*): error: undefined reference to 'PyObject_Free' CMakeFiles/vtkAddonPython.dir/vtkStreamingVolumeCodecFactoryPython.cxx.o:vtkStreamingVolumeCodecFactoryPython.cxx:PyvtkStreamingVolumeCodecFactoryInitialize_Type: error: undefined reference to 'PyObject_Free' CMakeFiles/vtkAddonPython.dir/vtkOpenGLTextureImagePython.cxx.o:vtkOpenGLTextureImagePython.cxx:function PyvtkOpenGLTextureImage_GetTextureName(_object*, _object*): error: undefined reference to 'PyLong_FromUnsignedLong' CMakeFiles/vtkAddonPython.dir/vtkOpenGLTextureImagePython.cxx.o:vtkOpenGLTextureImagePython.cxx:PyvtkOpenGLTextureImage_TextureWrap_Type: error: undefined reference to 'PyLong_Type' CMakeFiles/vtkAddonPython.dir/vtkOpenGLTextureImagePython.cxx.o:vtkOpenGLTextureImagePython.cxx:PyvtkOpenGLTextureImage_TextureWrap_Type: error: undefined reference to 'PyObject_Free' CMakeFiles/vtkAddonPython.dir/vtkOpenGLTextureImagePython.cxx.o:vtkOpenGLTextureImagePython.cxx:PyvtkOpenGLTextureImage_AttachmentPoints_Type: error: undefined reference to 'PyLong_Type' CMakeFiles/vtkAddonPython.dir/vtkAddonPythonInitImpl.cxx.o:vtkAddonPythonInitImpl.cxx:function real_initvtkAddonPython: error: undefined reference to 'PyModule_Create2' CMakeFiles/vtkAddonPython.dir/vtkAddonPythonInitImpl.cxx.o:vtkAddonPythonInitImpl.cxx:function real_initvtkAddonPython: error: undefined reference to 'PyModule_GetDict' CMakeFiles/vtkAddonPython.dir/vtkAddonPythonInitImpl.cxx.o:vtkAddonPythonInitImpl.cxx:function real_initvtkAddonPython: error: undefined reference to '_Py_FatalErrorFunc' collect2: error: ld returned 1 exit status make[3]: *** [Libs/vtkAddon/CMakeFiles/vtkAddonPython.dir/build.make:578: bin/vtkAddonPython.so] Error 1 make[2]: *** [CMakeFiles/Makefile2:7374: Libs/vtkAddon/CMakeFiles/vtkAddonPython.dir/all] Error 2 make[1]: *** [CMakeFiles/Makefile2:7381: Libs/vtkAddon/CMakeFiles/vtkAddonPython.dir/rule] Error 2 make: *** [Makefile:368: vtkAddonPython] Error 2 vtkSegmentationCorePython target link errorsLinking CXX shared module ../../bin/vtkSegmentationCorePython.so CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataPython.cxx.o:vtkOrientedImageDataPython.cxx:function PyvtkOrientedImageData_SafeDownCast(_object*, _object*): error: undefined reference to 'PyErr_Occurred' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataPython.cxx.o:vtkOrientedImageDataPython.cxx:function PyvtkOrientedImageData_SafeDownCast(_object*, _object*): error: undefined reference to 'PyErr_Occurred' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataPython.cxx.o:vtkOrientedImageDataPython.cxx:function PyvtkOrientedImageData_IsTypeOf(_object*, _object*): error: undefined reference to 'PyErr_Occurred' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataPython.cxx.o:vtkOrientedImageDataPython.cxx:function PyvtkOrientedImageData_IsTypeOf(_object*, _object*): error: undefined reference to 'PyLong_FromLong' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataPython.cxx.o:vtkOrientedImageDataPython.cxx:function PyvtkOrientedImageData_GetNumberOfGenerationsFromBaseType(_object*, _object*): error: undefined reference to 'PyErr_Occurred' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataPython.cxx.o:vtkOrientedImageDataPython.cxx:function PyvtkOrientedImageData_GetNumberOfGenerationsFromBaseType(_object*, _object*): error: undefined reference to 'PyLong_FromLongLong' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataPython.cxx.o:vtkOrientedImageDataPython.cxx:function PyvtkOrientedImageData_IsEmpty(_object*, _object*): error: undefined reference to 'PyBool_FromLong' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataPython.cxx.o:vtkOrientedImageDataPython.cxx:function PyvtkOrientedImageData_GetMinSpacing(_object*, _object*): error: undefined reference to 'PyFloat_FromDouble' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataPython.cxx.o:vtkOrientedImageDataPython.cxx:function PyvtkOrientedImageData_GetMaxSpacing(_object*, _object*): error: undefined reference to 'PyFloat_FromDouble' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataPython.cxx.o:vtkOrientedImageDataPython.cxx:function PyvtkOrientedImageData_GetWorldToImageMatrix(_object*, _object*): error: undefined reference to '_Py_NoneStruct' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataPython.cxx.o:vtkOrientedImageDataPython.cxx:function PyvtkOrientedImageData_SetDirectionMatrix_s1(_object*, _object*): error: undefined reference to '_Py_NoneStruct' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataPython.cxx.o:vtkOrientedImageDataPython.cxx:function PyvtkOrientedImageData_GetImageToWorldMatrix(_object*, _object*): error: undefined reference to '_Py_NoneStruct' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataPython.cxx.o:vtkOrientedImageDataPython.cxx:function PyvtkOrientedImageData_SetImageToWorldMatrix(_object*, _object*): error: undefined reference to '_Py_NoneStruct' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataPython.cxx.o:vtkOrientedImageDataPython.cxx:function PyvtkOrientedImageData_GetNumberOfGenerationsFromBase(_object*, _object*): error: undefined reference to 'PyLong_FromLongLong' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataPython.cxx.o:vtkOrientedImageDataPython.cxx:function PyvtkOrientedImageData_IsA(_object*, _object*): error: undefined reference to 'PyLong_FromLong' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataPython.cxx.o:vtkOrientedImageDataPython.cxx:function PyvtkOrientedImageData_ClassNew: error: undefined reference to 'PyType_Ready' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataPython.cxx.o:vtkOrientedImageDataPython.cxx:function PyVTKAddFile_vtkOrientedImageData: error: undefined reference to 'PyDict_SetItemString' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataPython.cxx.o:vtkOrientedImageDataPython.cxx:function PyVTKAddFile_vtkOrientedImageData: error: undefined reference to '_Py_Dealloc' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataPython.cxx.o:vtkOrientedImageDataPython.cxx:PyvtkOrientedImageData_Type: error: undefined reference to 'PyType_Type' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataPython.cxx.o:vtkOrientedImageDataPython.cxx:PyvtkOrientedImageData_Type: error: undefined reference to 'PyObject_GenericGetAttr' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataPython.cxx.o:vtkOrientedImageDataPython.cxx:PyvtkOrientedImageData_Type: error: undefined reference to 'PyObject_GenericSetAttr' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataPython.cxx.o:vtkOrientedImageDataPython.cxx:PyvtkOrientedImageData_Type: error: undefined reference to 'PyObject_GC_Del' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataResamplePython.cxx.o:vtkOrientedImageDataResamplePython.cxx:function PyvtkOrientedImageDataResample_AreEqualWithTolerance(_object*, _object*): error: undefined reference to 'PyBool_FromLong' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataResamplePython.cxx.o:vtkOrientedImageDataResamplePython.cxx:function PyvtkOrientedImageDataResample_IsLabelInMask(_object*, _object*): error: undefined reference to 'PyBool_FromLong' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataResamplePython.cxx.o:vtkOrientedImageDataResamplePython.cxx:function PyvtkOrientedImageDataResample_ApplyImageMask(_object*, _object*): error: undefined reference to 'PyBool_FromLong' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataResamplePython.cxx.o:vtkOrientedImageDataResamplePython.cxx:function PyvtkOrientedImageDataResample_GetLabelValuesInMask(_object*, _object*): error: undefined reference to '_Py_Dealloc' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataResamplePython.cxx.o:vtkOrientedImageDataResamplePython.cxx:function PyvtkOrientedImageDataResample_GetLabelValuesInMask(_object*, _object*): error: undefined reference to 'PyTuple_New' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataResamplePython.cxx.o:vtkOrientedImageDataResamplePython.cxx:function PyvtkOrientedImageDataResample_IsTypeOf(_object*, _object*): error: undefined reference to 'PyLong_FromLong' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataResamplePython.cxx.o:vtkOrientedImageDataResamplePython.cxx:function PyvtkOrientedImageDataResample_GetNumberOfGenerationsFromBaseType(_object*, _object*): error: undefined reference to 'PyLong_FromLongLong' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataResamplePython.cxx.o:vtkOrientedImageDataResamplePython.cxx:function PyvtkOrientedImageDataResample_IsA(_object*, _object*): error: undefined reference to 'PyLong_FromLong' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataResamplePython.cxx.o:vtkOrientedImageDataResamplePython.cxx:function PyvtkOrientedImageDataResample_GetNumberOfGenerationsFromBase(_object*, _object*): error: undefined reference to 'PyLong_FromLongLong' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataResamplePython.cxx.o:vtkOrientedImageDataResamplePython.cxx:function PyvtkOrientedImageDataResample_ClassNew: error: undefined reference to 'PyDict_SetItemString' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataResamplePython.cxx.o:vtkOrientedImageDataResamplePython.cxx:function PyvtkOrientedImageDataResample_ClassNew: error: undefined reference to 'PyType_Ready' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataResamplePython.cxx.o:vtkOrientedImageDataResamplePython.cxx:function PyvtkOrientedImageDataResample_ClassNew: error: undefined reference to '_Py_Dealloc' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataResamplePython.cxx.o:vtkOrientedImageDataResamplePython.cxx:function PyVTKAddFile_vtkOrientedImageDataResample: error: undefined reference to 'PyDict_SetItemString' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataResamplePython.cxx.o:vtkOrientedImageDataResamplePython.cxx:function PyVTKAddFile_vtkOrientedImageDataResample: error: undefined reference to '_Py_Dealloc' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataResamplePython.cxx.o:vtkOrientedImageDataResamplePython.cxx:PyvtkOrientedImageDataResample_Type: error: undefined reference to 'PyType_Type' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataResamplePython.cxx.o:vtkOrientedImageDataResamplePython.cxx:PyvtkOrientedImageDataResample_Type: error: undefined reference to 'PyObject_GenericGetAttr' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataResamplePython.cxx.o:vtkOrientedImageDataResamplePython.cxx:PyvtkOrientedImageDataResample_Type: error: undefined reference to 'PyObject_GenericSetAttr' CMakeFiles/vtkSegmentationCorePython.dir/vtkOrientedImageDataResamplePython.cxx.o:vtkOrientedImageDataResamplePython.cxx:PyvtkOrientedImageDataResample_Type: error: undefined reference to 'PyObject_GC_Del' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentPython.cxx.o:vtkSegmentPython.cxx:function PyvtkSegment_GetTerminologyEntryTagName(_object*, _object*): error: undefined reference to 'PyUnicode_FromStringAndSize' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentPython.cxx.o:vtkSegmentPython.cxx:function PyvtkSegment_GetTerminologyEntryTagName(_object*, _object*): error: undefined reference to 'PyErr_Clear' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentPython.cxx.o:vtkSegmentPython.cxx:function PyvtkSegment_GetTerminologyEntryTagName(_object*, _object*): error: undefined reference to 'PyBytes_FromStringAndSize' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentPython.cxx.o:vtkSegmentPython.cxx:function PyvtkSegment_GetName(_object*, _object*): error: undefined reference to 'PyUnicode_FromStringAndSize' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentPython.cxx.o:vtkSegmentPython.cxx:function PyvtkSegment_GetName(_object*, _object*): error: undefined reference to 'PyErr_Clear' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentPython.cxx.o:vtkSegmentPython.cxx:function PyvtkSegment_GetName(_object*, _object*): error: undefined reference to 'PyBytes_FromStringAndSize' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentPython.cxx.o:vtkSegmentPython.cxx:function PyvtkSegment_GetContainedRepresentationNames(_object*, _object*): error: undefined reference to 'PyTuple_New' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentPython.cxx.o:vtkSegmentPython.cxx:function PyvtkSegment_ClassNew: error: undefined reference to 'PyType_Ready' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentPython.cxx.o:vtkSegmentPython.cxx:function PyVTKAddFile_vtkSegment: error: undefined reference to 'PyDict_SetItemString' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentPython.cxx.o:vtkSegmentPython.cxx:PyvtkSegment_Type: error: undefined reference to 'PyType_Type' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentPython.cxx.o:vtkSegmentPython.cxx:PyvtkSegment_Type: error: undefined reference to 'PyObject_GenericGetAttr' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentPython.cxx.o:vtkSegmentPython.cxx:PyvtkSegment_Type: error: undefined reference to 'PyObject_GenericSetAttr' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentPython.cxx.o:vtkSegmentPython.cxx:PyvtkSegment_Type: error: undefined reference to 'PyObject_GC_Del' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationPython.cxx.o:vtkSegmentationPython.cxx:function PyvtkSegmentation_SerializeAllConversionParameters(_object*, _object*): error: undefined reference to 'PyUnicode_FromStringAndSize' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationPython.cxx.o:vtkSegmentationPython.cxx:function PyvtkSegmentation_SerializeAllConversionParameters(_object*, _object*): error: undefined reference to 'PyErr_Clear' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationPython.cxx.o:vtkSegmentationPython.cxx:function PyvtkSegmentation_SerializeAllConversionParameters(_object*, _object*): error: undefined reference to 'PyBytes_FromStringAndSize' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationPython.cxx.o:vtkSegmentationPython.cxx:function PyvtkSegmentation_GetSegmentIdBySegment(_object*, _object*): error: undefined reference to 'PyUnicode_FromStringAndSize' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationPython.cxx.o:vtkSegmentationPython.cxx:function PyvtkSegmentation_GetSegmentIdBySegment(_object*, _object*): error: undefined reference to 'PyErr_Clear' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationPython.cxx.o:vtkSegmentationPython.cxx:function PyvtkSegmentation_GetSegmentIdBySegment(_object*, _object*): error: undefined reference to 'PyBytes_FromStringAndSize' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationPython.cxx.o:vtkSegmentationPython.cxx:function PyvtkSegmentation_ClassNew: error: undefined reference to 'PyType_Ready' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationPython.cxx.o:vtkSegmentationPython.cxx:function PyvtkSegmentation_GetSegmentIDsForDataObject(_object*, _object*): error: undefined reference to 'PyTuple_New' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationPython.cxx.o:vtkSegmentationPython.cxx:function PyvtkSegmentation_GetSegmentIDsForLayer(_object*, _object*): error: undefined reference to 'PyTuple_New' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationPython.cxx.o:vtkSegmentationPython.cxx:PyvtkSegmentation_Type: error: undefined reference to 'PyType_Type' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationPython.cxx.o:vtkSegmentationPython.cxx:PyvtkSegmentation_Type: error: undefined reference to 'PyObject_GenericGetAttr' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationPython.cxx.o:vtkSegmentationPython.cxx:PyvtkSegmentation_Type: error: undefined reference to 'PyObject_GenericSetAttr' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationPython.cxx.o:vtkSegmentationPython.cxx:PyvtkSegmentation_Type: error: undefined reference to 'PyObject_GC_Del' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationConversionParametersPython.cxx.o:vtkSegmentationConversionParametersPython.cxx:function PyvtkSegmentationConversionParameters_GetValueAsDouble(_object*, _object*): error: undefined reference to 'PyFloat_FromDouble' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationConversionPathPython.cxx.o:vtkSegmentationConversionPathPython.cxx:function PyvtkSegmentationConversionPath_GetCost(_object*, _object*): error: undefined reference to 'PyLong_FromUnsignedLong' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationConverterFactoryPython.cxx.o:vtkSegmentationConverterFactoryPython.cxx:function PyvtkSegmentationConverterFactoryInitialize_New(_typeobject*, _object*, _object*): error: undefined reference to 'PyDict_Size' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationConverterFactoryPython.cxx.o:vtkSegmentationConverterFactoryPython.cxx:function PyvtkSegmentationConverterFactoryInitialize_New(_typeobject*, _object*, _object*): error: undefined reference to 'PyExc_TypeError' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationConverterFactoryPython.cxx.o:vtkSegmentationConverterFactoryPython.cxx:function PyvtkSegmentationConverterFactoryInitialize_New(_typeobject*, _object*, _object*): error: undefined reference to 'PyErr_SetString' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationConverterFactoryPython.cxx.o:vtkSegmentationConverterFactoryPython.cxx:function PyvtkSegmentationConverterFactoryInitialize_Hash(_object*): error: undefined reference to 'PyObject_HashNotImplemented' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationConverterFactoryPython.cxx.o:vtkSegmentationConverterFactoryPython.cxx:function PyvtkSegmentationConverterFactoryInitialize_Delete(_object*): error: undefined reference to 'PyObject_Free' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationConverterFactoryPython.cxx.o:vtkSegmentationConverterFactoryPython.cxx:PyvtkSegmentationConverterFactoryInitialize_Type: error: undefined reference to 'PyObject_Free' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationConverterRulePython.cxx.o:vtkSegmentationConverterRulePython.cxx:function PyvtkSegmentationConverterRule_GetConversionInfiniteCost(_object*, _object*): error: undefined reference to 'PyLong_FromUnsignedLong' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationConverterRulePython.cxx.o:vtkSegmentationConverterRulePython.cxx:function PyvtkSegmentationConverterRule_GetConversionCost(_object*, _object*): error: undefined reference to 'PyLong_FromUnsignedLong' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationHistoryPython.cxx.o:vtkSegmentationHistoryPython.cxx:function PyvtkSegmentationHistory_GetMaximumNumberOfStates(_object*, _object*): error: undefined reference to 'PyLong_FromUnsignedLong' CMakeFiles/vtkSegmentationCorePython.dir/vtkTopologicalHierarchyPython.cxx.o:vtkTopologicalHierarchyPython.cxx:function PyvtkTopologicalHierarchy_GetContainConstraintFactor(_object*, _object*): error: undefined reference to 'PyFloat_FromDouble' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationCorePythonInitImpl.cxx.o:vtkSegmentationCorePythonInitImpl.cxx:function real_initvtkSegmentationCorePython: error: undefined reference to 'PyModule_Create2' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationCorePythonInitImpl.cxx.o:vtkSegmentationCorePythonInitImpl.cxx:function real_initvtkSegmentationCorePython: error: undefined reference to 'PyModule_GetDict' CMakeFiles/vtkSegmentationCorePython.dir/vtkSegmentationCorePythonInitImpl.cxx.o:vtkSegmentationCorePythonInitImpl.cxx:function real_initvtkSegmentationCorePython: error: undefined reference to '_Py_FatalErrorFunc' collect2: error: ld returned 1 exit status make[3]: *** [Libs/vtkSegmentationCore/CMakeFiles/vtkSegmentationCorePython.dir/build.make:622: bin/vtkSegmentationCorePython.so] Error 1 make[2]: *** [CMakeFiles/Makefile2:7691: Libs/vtkSegmentationCore/CMakeFiles/vtkSegmentationCorePython.dir/all] Error 2 make[1]: *** [CMakeFiles/Makefile2:7698: Libs/vtkSegmentationCore/CMakeFiles/vtkSegmentationCorePython.dir/rule] Error 2 make: *** [Makefile:524: vtkSegmentationCorePython] Error 2 |
As I detail in this PR on the repo to build VMTK for conda-forge on macOS (conda-forge/vmtk-feedstock#4), the cmake macro
vtkMacroKitPythonWrap
(in a .cmake of the same name) incorrectly links against the python library:Any link that is needed should be picked up through the link against VTK::Python (assuming its INTERFACE_LINK_LIBRARIES property is correctly set - VTK is usually quite good about that)
In this patch I correct this oversight which causes the resulting module (on macOS at least) to be non-functional when imported into a python interpreter that is NOT linked against libpython3.xm.dylib