I'm trying to update blender to the latest version, but stumbled upon some errors. C++17 doesn't support register storage class, but it is part of XKBLIb headers,
I tried things like "-Wno-register" to MAKE_FLAGS, then #pragma Clang diagnostic ignored "-Wregister" before the header to no avail. FAILED: intern/ghost/CMakeFiles/bf_intern_ghost.dir/intern/GHOST_ISystem.cpp.o /usr/ports/pobj/blender-2.90.1/bin/c++ -DGLEW_NO_GLU -DNDEBUG -DWITH_ASSERT_ABORT -DWITH_GHOST_X11 -DWITH_GL_PROFILE_CORE -DWITH_OPENGL -DWITH_X11_ALPHA -DWITH_X11_XF86VMODE -DWITH_X11_XFIXES -DWITH_X11_XINPUT -DWITH_XDND -DWITH_XF86KEYSYM -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -D__LITTLE_ENDIAN__ -I/usr/ports/pobj/blender-2.90.1/blender-2.90.1/intern/ghost -I/usr/ports/pobj/blender-2.90.1/blender-2.90.1/intern/glew-mx -I/usr/ports/pobj/blender-2.90.1/blender-2.90.1/source/blender/imbuf -I/usr/ports/pobj/blender-2.90.1/blender-2.90.1/source/blender/makesdna -I/usr/ports/pobj/blender-2.90.1/blender-2.90.1/extern/xdnd -Wall -Wno-tautological-compare -Wno-unknown-pragmas -Wno-char-subscripts -Wno-overloaded-virtual -Wno-sign-compare -Wno-invalid-offsetof -O2 -pipe -I/usr/local/include -I/usr/X11R6/include -pthread -std=c++11 -std=c++17 -pipe -fPIC -funsigned-char -fno-strict-aliasing -DNDEBUG -MD -MT intern/ghost/CMakeFiles/bf_intern_ghost.dir/intern/GHOST_ISystem.cpp.o -MF intern/ghost/CMakeFiles/bf_intern_ghost.dir/intern/GHOST_ISystem.cpp.o.d -o intern/ghost/CMakeFiles/bf_intern_ghost.dir/intern/GHOST_ISystem.cpp.o -c /usr/ports/pobj/blender-2.90.1/blender-2.90.1/intern/ghost/intern/GHOST_ISystem.cpp In file included from /usr/ports/pobj/blender-2.90.1/blender-2.90.1/intern/ghost/intern/GHOST_ISystem.cpp:37: In file included from /usr/ports/pobj/blender-2.90.1/blender-2.90.1/intern/ghost/intern/GHOST_SystemX11.h:27: /usr/X11R6/include/X11/XKBlib.h:399:5: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister] register KeySym * /* sym_return */, ^~~~~~~~~ 1 error generated. ninja: build stopped: subcommand failed. *** Error 1 in /usr/ports/graphics/blender (/usr/ports/devel/cmake/cmake.port.mk:34 'do-build': @cd /usr/ports/pobj/blender-2.90.1/build-amd...) *** Error 2 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2921 '/usr/ports/pobj/blender-2.90.1/build-amd64/.build_done': @cd /usr/ports/gra...) *** Error 2 in /usr/ports/graphics/blender (/usr/ports/infrastructure/mk/bsd.port.mk:2584 'build': @lock=blender-2.90.1; export _LOCKS_HELD...) Is forcing -std=c++11 good enough? It goes past that error to FAILED: intern/libmv/CMakeFiles/bf_intern_libmv.dir/libmv/multiview/fundamental.cc.o /usr/ports/pobj/blender-2.90.1/bin/c++ -DCERES_STD_UNORDERED_MAP -DCERES_USE_CXX_THREADS -DGFLAGS_DLL_DECL="" -DGFLAGS_DLL_DECLARE_FLAG="" -DGFLAGS_DLL_DEFINE_FLAG="" -DGOOGLE_GLOG_DLL_DECL="" -DLIBMV_GFLAGS_NAMESPACE=gflags -DLIBMV_NO_FAST_DETECTOR="" -DNDEBUG -DWITH_ASSERT_ABORT -DWITH_LIBMV_GUARDED_ALLOC -DWITH_OPENGL -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -D__LITTLE_ENDIAN__ -I/usr/ports/pobj/blender-2.90.1/blender-2.90.1/intern/libmv -I/usr/ports/pobj/blender-2.90.1/blender-2.90.1/extern/gflags/src -I/usr/ports/pobj/blender-2.90.1/blender-2.90.1/extern/glog/include -I/usr/ports/pobj/blender-2.90.1/blender-2.90.1/extern/ceres/include -I/usr/ports/pobj/blender-2.90.1/blender-2.90.1/extern/ceres/config -I/usr/ports/pobj/blender-2.90.1/blender-2.90.1/intern/guardedalloc -isystem /usr/ports/pobj/blender-2.90.1/blender-2.90.1/extern/Eigen3 -Wall -Wno-tautological-compare -Wno-unknown-pragmas -Wno-char-subscripts -Wno-overloaded-virtual -Wno-sign-compare -Wno-invalid-offsetof -O2 -pipe -I/usr/local/include -I/usr/X11R6/include -pthread -std=c++17 -std=c++11 -pipe -fPIC -funsigned-char -fno-strict-aliasing -DNDEBUG -MD -MT intern/libmv/CMakeFiles/bf_intern_libmv.dir/libmv/multiview/fundamental.cc.o -MF intern/libmv/CMakeFiles/bf_intern_libmv.dir/libmv/multiview/fundamental.cc.o.d -o intern/libmv/CMakeFiles/bf_intern_libmv.dir/libmv/multiview/fundamental.cc.o -c /usr/ports/pobj/blender-2.90.1/blender-2.90.1/intern/libmv/libmv/multiview/fundamental.cc In file included from /usr/ports/pobj/blender-2.90.1/blender-2.90.1/intern/libmv/libmv/multiview/fundamental.cc:23: In file included from /usr/ports/pobj/blender-2.90.1/blender-2.90.1/extern/ceres/include/ceres/ceres.h:37: In file included from /usr/ports/pobj/blender-2.90.1/blender-2.90.1/extern/ceres/include/ceres/autodiff_cost_function.h:130: In file included from /usr/ports/pobj/blender-2.90.1/blender-2.90.1/extern/ceres/include/ceres/internal/autodiff.h:151: In file included from /usr/ports/pobj/blender-2.90.1/blender-2.90.1/extern/ceres/include/ceres/internal/parameter_dims.h:37: /usr/ports/pobj/blender-2.90.1/blender-2.90.1/extern/ceres/include/ceres/internal/integer_sequence_algorithm.h:64:21: error: no template named 'integer_sequence' in namespace 'std'; did you mean '__integer_sequence'? struct SumImpl<std::integer_sequence<T, N, Ns...>> { ~~~~~^~~~~~~~~~~~~~~~ __integer_sequence /usr/include/c++/v1/__tuple:93:8: note: '__integer_sequence' declared here