CGAL::Mesh_3::internal::C3t3_initializer, CGAL::Mesh_3::internal::has_Has_features, CGAL::internal::Mesh_3::init_c3t3 in make_multicomponent_mesh_3.h

Hi All, I was trying to install fenics development version on my laptop (macOS, M1 chip) from source. As indicated in Installation — FEniCS Project documentation, mshr is optional. mshr has multiple dependencies, e.g., CGAL and Tetgen, shown in fenics-project / mshr / wiki / Installation — Bitbucket. After all dependencies are correctly installed, I was compiling mshr by issuing ‘cmake …’ at mshr/build directory but got an error: declaration not compatible in make_multicomponent_mesh_3.h, shown in the title. It seems that 3 prototypes in make_multicomponent_mesh_3.h are different from functions in CSGCGALMeshGenerator3D.cpp. So changed ‘CGAL::Mesh_3::internal::C3t3_initializer’ to ‘CGAL::internal::Mesh_3::C3t3_initializer’ manually, the same to other 2 prototypes. And it worked! Hope someone could add a note to the installation of mshr, thanks!


Please note that mshr is long deprecated and is not likely to receive any updates. We advice users to use external meshing tools such as gmsh.

Thanks! I’m new to FEniCS and walking through the fenics book, so obsolete usage, functions and tools are common. btw, do we have schematic time line/time tree that shows what is deprecated, what is added ? Thanks!


If you are new to fenics I would not start with dolfin, but dolfinx, see

and the preprint

Really appreciate your help and suggestion, I’m moving to FEniCSx.