Underlinking of libvtkRenderingLICOpenGL2Java.so
With the change from vtkCompositePolyDataMapper2 to vtkCompositePolyDataMapper
5b159e6f
VTK::RenderingLICOpenGL2
became dependent of VTK::RenderingCore
(...Mapper2 is in RenderingOpenGL2, ...Mapper is in RenderingCore).
For the regular shared lib this is fine, as the module has a private dep on RenderingCore, but the Java wrapper needs this as a public dependency, otherwise the RenderingCore Java wrapper library is omitted; the build fails when "--no-undefined" is used (otherwise, this likely will result in a linker error at runtime).
[ 4106s] [ 95%] Linking CXX shared library ../../lib64/java/vtk-Linux-x86_64/libvtkRenderingLICOpenGL2Java.so
[ 4106s] cd /home/abuild/rpmbuild/BUILD/VTK-9.3.0/build/Wrapping/Java && /usr/bin/cmake -E cmake_link_script CMakeFiles/vtkRenderingLICOpenGL2Java.dir/link.txt --verbose=1
[ 4106s] /usr/bin/g++ -fPIC -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DNDEBUG -O2 -g -DNDEBUG -Wl,-lc -Wl,--as-needed -Wl,--no-undefined -Wl,-z,now -shared -Wl,-soname,libvtkRenderingLICOpenGL2Java.so -o ../../lib64/java/vtk-Linux-x86_64/libvtkRenderingLICOpenGL2Java.so CMakeFiles/vtkRenderingLICOpenGL2Java.dir/CMakeFiles/vtkRenderingLICOpenGL2Java/vtkPainterCommunicatorJava.cxx.o CMakeFiles/vtkRenderingLICOpenGL2Java.dir/CMakeFiles/vtkRenderingLICOpenGL2Java/vtkBatchedSurfaceLICMapperJava.cxx.o CMakeFiles/vtkRenderingLICOpenGL2Java.dir/CMakeFiles/vtkRenderingLICOpenGL2Java/vtkCompositeSurfaceLICMapperJava.cxx.o CMakeFiles/vtkRenderingLICOpenGL2Java.dir/CMakeFiles/vtkRenderingLICOpenGL2Java/vtkCompositeSurfaceLICMapperDelegatorJava.cxx.o CMakeFiles/vtkRenderingLICOpenGL2Java.dir/CMakeFiles/vtkRenderingLICOpenGL2Java/vtkImageDataLIC2DJava.cxx.o CMakeFiles/vtkRenderingLICOpenGL2Java.dir/CMakeFiles/vtkRenderingLICOpenGL2Java/vtkLineIntegralConvolution2DJava.cxx.o CMakeFiles/vtkRenderingLICOpenGL2Java.dir/CMakeFiles/vtkRenderingLICOpenGL2Java/vtkStructuredGridLIC2DJava.cxx.o CMakeFiles/vtkRenderingLICOpenGL2Java.dir/CMakeFiles/vtkRenderingLICOpenGL2Java/vtkSurfaceLICCompositeJava.cxx.o CMakeFiles/vtkRenderingLICOpenGL2Java.dir/CMakeFiles/vtkRenderingLICOpenGL2Java/vtkSurfaceLICInterfaceJava.cxx.o CMakeFiles/vtkRenderingLICOpenGL2Java.dir/CMakeFiles/vtkRenderingLICOpenGL2Java/vtkSurfaceLICMapperJava.cxx.o CMakeFiles/vtkRenderingLICOpenGL2Java.dir/CMakeFiles/vtkRenderingLICOpenGL2Java/vtkTextureIOJava.cxx.o CMakeFiles/vtkRenderingLICOpenGL2Java.dir/CMakeFiles/vtkRenderingLICOpenGL2Java/vtkRenderingLICOpenGL2ModuleJava.cxx.o -Wl,-rpath,"\$ORIGIN/../../:\$ORIGIN:/usr/lib64/jvm/java/lib:/usr/lib64/jvm/java/lib/server" ../../lib64/libvtkRenderingLICOpenGL2.so.9.3 ../../lib64/java/vtk-Linux-x86_64/libvtkRenderingOpenGL2Java.so ../../lib64/libvtkRenderingOpenGL2.so.9.3 /usr/lib64/libGLEW.so /usr/lib64/libX11.so ../../lib64/libvtkIOImage.so.9.3 ../../lib64/libvtkRenderingHyperTreeGrid.so.9.3 ../../lib64/libvtkImagingCore.so.9.3 ../../lib64/libvtkRenderingUI.so.9.3 /usr/lib64/libX11.so ../../lib64/libvtkRenderingCore.so.9.3 ../../lib64/libvtkFiltersGeneral.so.9.3 ../../lib64/java/vtk-Linux-x86_64/libvtkCommonExecutionModelJava.so ../../lib64/java/vtk-Linux-x86_64/libvtkCommonDataModelJava.so ../../lib64/libvtkFiltersCore.so.9.3 ../../lib64/libvtkCommonExecutionModel.so.9.3 ../../lib64/libvtkCommonDataModel.so.9.3 ../../lib64/libvtkCommonTransforms.so.9.3 ../../lib64/libvtkCommonMisc.so.9.3 ../../lib64/java/vtk-Linux-x86_64/libvtkCommonCoreJava.so ../../lib64/libvtkJava.so.9.3 /usr/lib64/jvm/java/lib/libjawt.so /usr/lib64/jvm/java/lib/server/libjvm.so ../../lib64/libvtkCommonMath.so.9.3 ../../lib64/libvtkCommonCore.so.9.3 ../../lib64/libvtksys.so.9.3 -ldl -lpthread ../../lib64/libvtkkissfft.so.9.3 -Wl,-rpath-link,/home/abuild/rpmbuild/BUILD/VTK-9.3.0/build/lib64:/home/abuild/rpmbuild/BUILD/VTK-9.3.0/build/lib64/java/vtk-Linux-x86_64
[ 4106s] /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: CMakeFiles/vtkRenderingLICOpenGL2Java.dir/CMakeFiles/vtkRenderingLICOpenGL2Java/vtkCompositeSurfaceLICMapperJava.cxx.o: in function `vtkCompositeSurfaceLICMapper_Typecast':
[ 4106s] /home/abuild/rpmbuild/BUILD/VTK-9.3.0/build/Wrapping/Java/CMakeFiles/vtkRenderingLICOpenGL2Java/vtkCompositeSurfaceLICMapperJava.cxx:18: undefined reference to `vtkCompositePolyDataMapper_Typecast'
[ 4106s] collect2: error: ld returned 1 exit status
[ 4106s] make[2]: *** [Wrapping/Java/CMakeFiles/vtkRenderingLICOpenGL2Java.dir/build.make:387: lib64/java/vtk-Linux-x86_64/libvtkRenderingLICOpenGL2Java.so] Error 1
Moving VTK::RenderingCore
from PRIVATE_DEPENDS
to DEPENDS
in the vtk.module
fixes this.