paraview build fails first time through due to cinema-related build order issue on stria/ARM
When I was building paraview on our Stria platform (an ARM machine), building against system python, during the make command (16 process make, make -j16), I get the following error:
gmake[5]: *** No rule to make target `lib/python3.6/site-packages/paraview/tpl/cinema_python/__init__.py', needed by `lib/python3.6/site-packages/_paraview.zip'. Stop.
gmake[5]: *** Waiting for unfinished jobs....
However, if I do a make
command again (still make -j16
) after waiting for the unfinished jobs to finish, then the build succeeds.
I surmise that some dependency is not properly set up so that something which depends on cinema_python starts getting built before cinema_python finishes building and so that init.py isn't made yet.
Right before the error, here is the dependency checking:
Scanning dependencies of target vtkmpi4py_python_copy
Scanning dependencies of target CinemaPython-paraview.tpl.cinema_python.adaptors.paraview
Scanning dependencies of target WrapPythonInit
Scanning dependencies of target loguru
Scanning dependencies of target paraview_python_copy
Scanning dependencies of target CinemaPython-paraview.tpl.cinema_python
Scanning dependencies of target ParaViewData
Scanning dependencies of target CinemaPython-paraview.tpl.cinema_python.adaptors
Scanning dependencies of target CinemaPython-paraview.tpl.cinema_python.database
Scanning dependencies of target vtk_python_copy
Scanning dependencies of target lz4
Scanning dependencies of target CinemaPython-paraview.tpl.cinema_python.images
Scanning dependencies of target pugixml
Scanning dependencies of target jsoncpp
Scanning dependencies of target verdict
Scanning dependencies of target glew
so my uninformed guess is that some of those Cinema-related targets need to wait to start until earlier ones have finished building.
For reference, my cmake command for the superbuild I was doing looked as follows:
cmake \
-DBUILD_TESTING:BOOL=OFF \
-DCMAKE_BUILD_TYPE_paraview:STRING=Release \
-DCMAKE_INSTALL_PREFIX:PATH=/lustre/jamauld/sparc_work/stamps/install_dirs/install_8503_pv_5_8_0_spar_stria_lowproc_2020Mar26 \
-DENABLE_paraviewsdk:BOOL=ON \
-Dsuperbuild_download_location:PATH=/lustre/jamauld/sparc_work/stamps/sandiatargetedautomatedmakeparaviewsystem/paraview_infrastructure/download \
-Dparaview_SOURCE_SELECTION:STRING=source \
-Dparaview_SOURCE_DIR:PATH=/lustre/jamauld/sparc_work/stamps/sandiatargetedautomatedmakeparaviewsystem/paraview_infrastructure/paraview_source/paraview_5_8_0_source \
-DENABLE_vtkm:BOOL=OFF \
-DENABLE_python:BOOL=ON \
-DENABLE_python3:BOOL=ON \
-DUSE_SYSTEM_python3:BOOL=ON \
-DENABLE_paraview:BOOL=ON \
-DENABLE_png:BOOL=ON \
-DENABLE_nlohmannjson:BOOL=OFF \
-DENABLE_osmesa:BOOL=ON \
-Dmesa_USE_SWR:BOOL=OFF \
-DBUILD_SHARED_LIBS:BOOL=ON \
-DBUILD_SHARED_LIBS_paraview=OFF \
-DENABLE_mpi:BOOL=ON \
-DPARAVIEW_USE_MPI:BOOL=ON \
-DUSE_SYSTEM_expat:BOOL=ON \
-DUSE_SYSTEM_mpi:BOOL=ON \
-DPARAVIEW_ENABLE_MOTIONFX:BOOL=OFF \
-DPARAVIEW_EXTRA_CMAKE_ARGUMENTS='-DPARAVIEW_BUILD_EDITION=CATALYST_RENDERING' \
/lustre/jamauld/sparc_work/stamps/sandiatargetedautomatedmakeparaviewsystem/paraview_infrastructure/paraview-superbuild
Also, I tried adding
-DVTK_MODULE_ENABLE_ParaView_CinemaPython:STRING=NO;-DVTK_MODULE_ENABLE_ParaView_RemotingCinema:STRING=NO
to the PARAVIEW_EXTRA_CMAKE_ARGUMENTS, but RemotingCinema kept itself on anyway. I had to alter
/CMake/ParaViewOptions.cmake to really turn it off, but that is another issue.