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: *** 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: *** 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
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.