VTK-9.1.0 vtkm failed to build

Hi, all:

I’m trying to buld VTK-9.1.0 release, but failed.

  1. My ENV:
➜  ~ uname -r
5.15.0-30-generic
➜  ~ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04 LTS
Release:	22.04
Codename:	jammy
➜  ~ gcc --version
gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  1. By enabling all modules, and removed some un-buildable modules, I got the following ERRORmessage, which seems to be exactly the same ERROR at https://bugs.gentoo.org/820593
....../VTK-9.1.0/ThirdParty/vtkm/vtkvtkm/vtk-m/vtkm/cont/ArrayCopy.cxx(129): here

....../VTK-9.1.0/ThirdParty/vtkm/vtkvtkm/vtk-m/vtkm/internal/brigand.hpp:1061:131: error: expected class-name before ‘{’ token
 1061 |         struct find<true, false, L1, L2, Ls...> : find<true, F<Ts..., L2>::value, L2, Ls...>
      |                                                                                                                                   ^
....../VTK-9.1.0/ThirdParty/vtkm/vtkvtkm/vtk-m/vtkm/internal/brigand.hpp:1067:160: error: expected class-name before ‘{’ token
 1067 |         struct find<false, false, L0, L1, L2, L3, L4, L5, L6, L7, L8, Ls...>
      |                                                                                                                                                                ^
make[2]: *** [ThirdParty/vtkm/vtkvtkm/vtk-m/vtkm/cont/CMakeFiles/vtkm_cont.dir/build.make:387: ThirdParty/vtkm/vtkvtkm/vtk-m/vtkm/cont/CMakeFiles/vtkm_cont.dir/ArrayCopy.cxx.o] Error 1
make[2]: Leaving directory '....../VTK-9.1.0/build'
make[1]: *** [CMakeFiles/Makefile2:15675: ThirdParty/vtkm/vtkvtkm/vtk-m/vtkm/cont/CMakeFiles/vtkm_cont.dir/all] Error 2
make[1]: Leaving directory '....../VTK-9.1.0/build'
make: *** [Makefile:139: all] Error 2

Trying to build the github git version now…

The easy answer is DON’T “enable all modules”. Many of the optional modules may have additional build requirements, so build with the default options first, and only enable those you find you need later.