OGRECave/ogre-next

Build script fails on Ubuntu 23.10 with error: ISO C++17 does not allow dynamic exception specifications

Closed this issue · 3 comments

System Information

  • Ogre Version: Master
  • Operating System / Platform: Ubuntu 23.10, g++ (conda-forge gcc 13.2.0-3) 13.2.0
  • RenderSystem: N/A
  • GPU: N/A

Detailled description

Build script fails. The only error I saw was error: ISO C++17 does not allow dynamic exception specifications. It seems to be either an error with freeimage or with my enviroment. My best guess is that this is recently disallowed behavior in the freeimage plugin.

Ogre.log

mkdir: cannot create directory ‘Ogre’: File exists
--- ogre-next-deps repo detected. Cloning skipped ---
--- Building ogre-next-deps ---
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


-- The C compiler identification is GNU 13.2.0
-- The CXX compiler identification is GNU 13.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/elefant/miniconda3/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /home/elefant/miniconda3/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check size of void*
-- Check size of void* - done
CMake Deprecation Warning at src/zlib/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


-- Configuring done (0.4s)
-- Generating done (0.0s)
-- Build files have been written to: /home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/build
[32/527] Building CXX object src/FreeImage/CMakeFiles/FreeImage.dir/Source/FreeImage/MultiPage.cpp.o
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/MultiPage.cpp: In function 'FIMULTIBITMAP* FreeImage_OpenMultiBitmap(FREE_IMAGE_FORMAT, const char*, BOOL, BOOL, BOOL, int)':
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/MultiPage.cpp:274:38: warning: 'template<class> class std::auto_ptr' is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  274 |                                 std::auto_ptr<FIMULTIBITMAP> bitmap (new FIMULTIBITMAP);
      |                                      ^~~~~~~~
In file included from /home/elefant/miniconda3/x86_64-conda-linux-gnu/include/c++/13.2.0/memory:78,
                 from /home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/Utilities.h:53,
                 from /home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/CacheFile.h:28,
                 from /home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/MultiPage.cpp:34:
/home/elefant/miniconda3/x86_64-conda-linux-gnu/include/c++/13.2.0/bits/unique_ptr.h:65:28: note: declared here
   65 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/MultiPage.cpp:275:38: warning: 'template<class> class std::auto_ptr' is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  275 |                                 std::auto_ptr<MULTIBITMAPHEADER> header (new MULTIBITMAPHEADER);
      |                                      ^~~~~~~~
/home/elefant/miniconda3/x86_64-conda-linux-gnu/include/c++/13.2.0/bits/unique_ptr.h:65:28: note: declared here
   65 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/MultiPage.cpp: In function 'FIMULTIBITMAP* FreeImage_OpenMultiBitmapFromHandle(FREE_IMAGE_FORMAT, FreeImageIO*, fi_handle, int)':
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/MultiPage.cpp:340:46: warning: 'template<class> class std::auto_ptr' is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  340 |                                         std::auto_ptr<FIMULTIBITMAP> bitmap (new FIMULTIBITMAP);
      |                                              ^~~~~~~~
/home/elefant/miniconda3/x86_64-conda-linux-gnu/include/c++/13.2.0/bits/unique_ptr.h:65:28: note: declared here
   65 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/MultiPage.cpp:341:46: warning: 'template<class> class std::auto_ptr' is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  341 |                                         std::auto_ptr<MULTIBITMAPHEADER> header (new MULTIBITMAPHEADER);
      |                                              ^~~~~~~~
/home/elefant/miniconda3/x86_64-conda-linux-gnu/include/c++/13.2.0/bits/unique_ptr.h:65:28: note: declared here
   65 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
[36/527] Building CXX object src/FreeImage/CMakeFiles/FreeImage.dir/Source/FreeImage/PluginEXR.cpp.o
FAILED: src/FreeImage/CMakeFiles/FreeImage.dir/Source/FreeImage/PluginEXR.cpp.o 
/home/elefant/miniconda3/bin/c++ -DFREEIMAGE_LIB -DLIBRAW_LIBRARY_BUILD -DLIBRAW_NODLL -DNO_LCMS -DOPJ_STATIC -DPNG_INTEL_SSE_OPT=1 -I/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source -I/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImageToolkit -I/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/LibJPEG -I/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/LibMNG -I/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/LibOpenJPEG -I/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/LibPNG -I/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/LibRawLite -I/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/LibTIFF -I/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/LibWebP -I/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR -I/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Half -I/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Iex -I/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/IexMath -I/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/IlmImf -I/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/IlmThread -I/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Imath -I/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/ZLib -O3 -DNDEBUG   -fPIC -MD -MT src/FreeImage/CMakeFiles/FreeImage.dir/Source/FreeImage/PluginEXR.cpp.o -MF src/FreeImage/CMakeFiles/FreeImage.dir/Source/FreeImage/PluginEXR.cpp.o.d -o src/FreeImage/CMakeFiles/FreeImage.dir/Source/FreeImage/PluginEXR.cpp.o -c /home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/PluginEXR.cpp
In file included from /home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/../OpenEXR/IlmImf/ImfHeader.h:51,
                 from /home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/../OpenEXR/IlmImf/ImfOutputFile.h:46,
                 from /home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/PluginEXR.cpp:33:
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Imath/ImathVec.h:228:41: error: ISO C++17 does not allow dynamic exception specifications
  228 |     const Vec2 &        normalizeExc () throw (IEX_NAMESPACE::MathExc);
      |                                         ^~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Imath/ImathVec.h:232:48: error: ISO C++17 does not allow dynamic exception specifications
  232 |     Vec2<T>             normalizedExc () const throw (IEX_NAMESPACE::MathExc);
      |                                                ^~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Imath/ImathVec.h:440:41: error: ISO C++17 does not allow dynamic exception specifications
  440 |     const Vec3 &        normalizeExc () throw (IEX_NAMESPACE::MathExc);
      |                                         ^~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Imath/ImathVec.h:444:48: error: ISO C++17 does not allow dynamic exception specifications
  444 |     Vec3<T>             normalizedExc () const throw (IEX_NAMESPACE::MathExc);
      |                                                ^~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Imath/ImathVec.h:622:37: error: ISO C++17 does not allow dynamic exception specifications
  622 |     const Vec4 &    normalizeExc () throw (IEX_NAMESPACE::MathExc);
      |                                     ^~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Imath/ImathVec.h:626:44: error: ISO C++17 does not allow dynamic exception specifications
  626 |     Vec4<T>         normalizedExc () const throw (IEX_NAMESPACE::MathExc);
      |                                            ^~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Imath/ImathVec.h:714:30: error: ISO C++17 does not allow dynamic exception specifications
  714 | Vec2<short>::normalizeExc () throw (IEX_NAMESPACE::MathExc);
      |                              ^~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Imath/ImathVec.h:723:37: error: ISO C++17 does not allow dynamic exception specifications
  723 | Vec2<short>::normalizedExc () const throw (IEX_NAMESPACE::MathExc);
      |                                     ^~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Imath/ImathVec.h:738:28: error: ISO C++17 does not allow dynamic exception specifications
  738 | Vec2<int>::normalizeExc () throw (IEX_NAMESPACE::MathExc);
      |                            ^~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Imath/ImathVec.h:747:35: error: ISO C++17 does not allow dynamic exception specifications
  747 | Vec2<int>::normalizedExc () const throw (IEX_NAMESPACE::MathExc);
      |                                   ^~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Imath/ImathVec.h:762:30: error: ISO C++17 does not allow dynamic exception specifications
  762 | Vec3<short>::normalizeExc () throw (IEX_NAMESPACE::MathExc);
      |                              ^~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Imath/ImathVec.h:771:37: error: ISO C++17 does not allow dynamic exception specifications
  771 | Vec3<short>::normalizedExc () const throw (IEX_NAMESPACE::MathExc);
      |                                     ^~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Imath/ImathVec.h:786:28: error: ISO C++17 does not allow dynamic exception specifications
  786 | Vec3<int>::normalizeExc () throw (IEX_NAMESPACE::MathExc);
      |                            ^~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Imath/ImathVec.h:795:35: error: ISO C++17 does not allow dynamic exception specifications
  795 | Vec3<int>::normalizedExc () const throw (IEX_NAMESPACE::MathExc);
      |                                   ^~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Imath/ImathVec.h:809:30: error: ISO C++17 does not allow dynamic exception specifications
  809 | Vec4<short>::normalizeExc () throw (IEX_NAMESPACE::MathExc);
      |                              ^~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Imath/ImathVec.h:818:37: error: ISO C++17 does not allow dynamic exception specifications
  818 | Vec4<short>::normalizedExc () const throw (IEX_NAMESPACE::MathExc);
      |                                     ^~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Imath/ImathVec.h:833:28: error: ISO C++17 does not allow dynamic exception specifications
  833 | Vec4<int>::normalizeExc () throw (IEX_NAMESPACE::MathExc);
      |                            ^~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Imath/ImathVec.h:842:35: error: ISO C++17 does not allow dynamic exception specifications
  842 | Vec4<int>::normalizedExc () const throw (IEX_NAMESPACE::MathExc);
      |                                   ^~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Imath/ImathVec.h:1212:26: error: ISO C++17 does not allow dynamic exception specifications
 1212 | Vec2<T>::normalizeExc () throw (IEX_NAMESPACE::MathExc)
      |                          ^~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Imath/ImathVec.h:1249:33: error: ISO C++17 does not allow dynamic exception specifications
 1249 | Vec2<T>::normalizedExc () const throw (IEX_NAMESPACE::MathExc)
      |                                 ^~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Imath/ImathVec.h:1704:26: error: ISO C++17 does not allow dynamic exception specifications
 1704 | Vec3<T>::normalizeExc () throw (IEX_NAMESPACE::MathExc)
      |                          ^~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Imath/ImathVec.h:1743:33: error: ISO C++17 does not allow dynamic exception specifications
 1743 | Vec3<T>::normalizedExc () const throw (IEX_NAMESPACE::MathExc)
      |                                 ^~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Imath/ImathVec.h:2109:26: error: ISO C++17 does not allow dynamic exception specifications
 2109 | Vec4<T>::normalizeExc () throw (IEX_NAMESPACE::MathExc)
      |                          ^~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Imath/ImathVec.h:2150:33: error: ISO C++17 does not allow dynamic exception specifications
 2150 | Vec4<T>::normalizedExc () const throw (IEX_NAMESPACE::MathExc)
      |                                 ^~~~~
In file included from /home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/../OpenEXR/IlmImf/ImfXdr.h:108,
                 from /home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/../OpenEXR/IlmImf/ImfGenericOutputFile.h:40,
                 from /home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/../OpenEXR/IlmImf/ImfOutputFile.h:49:
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Half/half.h: In constructor 'half::half(float)':
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Half/half.h:462:22: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  462 |         register int e = (x.i >> 23) & 0x000001ff;
      |                      ^
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/OpenEXR/Half/half.h:473:26: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  473 |             register int m = x.i & 0x007fffff;
      |                          ^
[38/527] Building CXX object src/FreeImage/CMakeFiles/FreeImage.dir/Source/FreeImage/PSDParser.cpp.o
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/PSDParser.cpp: In static member function 'static int PSDGetValue<N>::get(const BYTE*)':
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/PSDParser.cpp:100:56: warning: no return statement in function returning non-void [-Wreturn-type]
  100 |         static inline int get(const BYTE * iprBuffer) {} // error
      |                                                        ^
[51/527] Building CXX object src/FreeImage/CMakeFiles/FreeImage.dir/Source/FreeImage/PluginPSD.cpp.o
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/PluginPSD.cpp: In function 'BOOL Save(FreeImageIO*, FIBITMAP*, fi_handle, int, int, void*)':
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/PluginPSD.cpp:130:24: warning: converting to non-pointer type 'BOOL' {aka 'int'} from NULL [-Wconversion-null]
  130 |                 return NULL;
      |                        ^~~~
[63/527] Building CXX object src/FreeImage/CMakeFiles/FreeImage.dir/Source/FreeImage/PluginRAW.cpp.o
In file included from /home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/../LibRawLite/libraw/libraw_datastream.h:35,
                 from /home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/../LibRawLite/libraw/libraw.h:35,
                 from /home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/PluginRAW.cpp:22:
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/../LibRawLite/libraw/libraw_types.h:82: warning: "NO_LCMS" redefined
   82 | #define NO_LCMS
      | 
<command-line>: note: this is the location of the previous definition
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/../LibRawLite/libraw/libraw_datastream.h:121:8: warning: 'template<class> class std::auto_ptr' is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  121 |   std::auto_ptr<std::streambuf> f;       /* will close() automatically through dtor */
      |        ^~~~~~~~
In file included from /home/elefant/miniconda3/x86_64-conda-linux-gnu/include/c++/13.2.0/memory:78,
                 from /home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/../LibRawLite/libraw/libraw_datastream.h:37:
/home/elefant/miniconda3/x86_64-conda-linux-gnu/include/c++/13.2.0/bits/unique_ptr.h:65:28: note: declared here
   65 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/../LibRawLite/libraw/libraw_datastream.h:122:8: warning: 'template<class> class std::auto_ptr' is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  122 |   std::auto_ptr<std::streambuf> saved_f; /* when *f is a subfile, *saved_f is the master file */
      |        ^~~~~~~~
/home/elefant/miniconda3/x86_64-conda-linux-gnu/include/c++/13.2.0/bits/unique_ptr.h:65:28: note: declared here
   65 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
[68/527] Building CXX object src/FreeImage/CMakeFiles/FreeImage.dir/Source/FreeImage/PluginTIFF.cpp.o
In file included from /home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/PluginTIFF.cpp:42:
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/../OpenEXR/Half/half.h: In constructor 'half::half(float)':
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/../OpenEXR/Half/half.h:462:22: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  462 |         register int e = (x.i >> 23) & 0x000001ff;
      |                      ^
/home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/src/FreeImage/Source/FreeImage/../OpenEXR/Half/half.h:473:26: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  473 |             register int m = x.i & 0x007fffff;
      |                          ^
[69/527] Performing configure step for 'shaderc'
CMake Deprecation Warning at CMakeLists.txt:15 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


-- The C compiler identification is GNU 13.2.0
-- The CXX compiler identification is GNU 13.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/elefant/miniconda3/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /home/elefant/miniconda3/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Shaderc: build type is "Release".
-- Configuring Shaderc to avoid building tests.
CMake Warning (dev) at cmake/setup_build.cmake:52 (find_package):
  Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
  are removed.  Run "cmake --help-policy CMP0148" for policy details.  Use
  the cmake_policy command to set the policy and suppress this warning.

Call Stack (most recent call first):
  CMakeLists.txt:59 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found PythonInterp: /home/elefant/miniconda3/bin/python3 (found suitable version "3.11.4", minimum required is "3") 
-- Performing Test COMPILER_SUPPORTS_FALLTHROUGH_WARNING
-- Performing Test COMPILER_SUPPORTS_FALLTHROUGH_WARNING - Success
-- Performing Test COMPILER_SUPPORTS_EXTRA_SEMI_WARNING
-- Performing Test COMPILER_SUPPORTS_EXTRA_SEMI_WARNING - Success
CMake Warning (dev) at cmake/setup_build.cmake:17 (find_package):
  Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
  are removed.  Run "cmake --help-policy CMP0148" for policy details.  Use
  the cmake_policy command to set the policy and suppress this warning.

Call Stack (most recent call first):
  CMakeLists.txt:84 (find_host_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Performing Test COMPILER_SUPPORTS_PIC
-- Performing Test COMPILER_SUPPORTS_PIC - Success
CMake Deprecation Warning at third_party/spirv-tools/CMakeLists.txt:15 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Warning (dev) at third_party/spirv-tools/CMakeLists.txt:71 (option):
  Policy CMP0077 is not set: option() honors normal variables.  Run "cmake
  --help-policy CMP0077" for policy details.  Use the cmake_policy command to
  set the policy and suppress this warning.

  For compatibility with older versions of CMake, option is clearing the
  normal variable 'SKIP_SPIRV_TOOLS_INSTALL'.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at cmake/setup_build.cmake:17 (find_package):
  Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
  are removed.  Run "cmake --help-policy CMP0148" for policy details.  Use
  the cmake_policy command to set the policy and suppress this warning.

Call Stack (most recent call first):
  third_party/spirv-tools/CMakeLists.txt:191 (find_host_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Deprecation Warning at third_party/spirv-tools/external/spirv-headers/CMakeLists.txt:31 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Warning (dev) at third_party/spirv-tools/external/spirv-headers/CMakeLists.txt:52 (option):
  Policy CMP0077 is not set: option() honors normal variables.  Run "cmake
  --help-policy CMP0077" for policy details.  Use the cmake_policy command to
  set the policy and suppress this warning.

  For compatibility with older versions of CMake, option is clearing the
  normal variable 'SPIRV_HEADERS_SKIP_EXAMPLES'.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at third_party/spirv-tools/external/spirv-headers/CMakeLists.txt:55 (option):
  Policy CMP0077 is not set: option() honors normal variables.  Run "cmake
  --help-policy CMP0077" for policy details.  Use the cmake_policy command to
  set the policy and suppress this warning.

  For compatibility with older versions of CMake, option is clearing the
  normal variable 'SPIRV_HEADERS_SKIP_INSTALL'.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Deprecation Warning at third_party/glslang/CMakeLists.txt:39 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Warning (dev) at third_party/glslang/CMakeLists.txt:71 (option):
  Policy CMP0077 is not set: option() honors normal variables.  Run "cmake
  --help-policy CMP0077" for policy details.  Use the cmake_policy command to
  set the policy and suppress this warning.

  For compatibility with older versions of CMake, option is clearing the
  normal variable 'SKIP_GLSLANG_INSTALL'.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at third_party/glslang/CMakeLists.txt:233 (find_package):
  Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
  are removed.  Run "cmake --help-policy CMP0148" for policy details.  Use
  the cmake_policy command to set the policy and suppress this warning.

This warning is for project developers.  Use -Wno-dev to suppress it.

-- Google Mock was not found - tests based on that will not build
-- optimizer enabled
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE  
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Configuring done (1.8s)
-- Generating done (0.0s)
-- Build files have been written to: /home/elefant/Documents/Ogre/OgreClient/Ogre/ogre-next-deps/build/src/shaderc-prefix/src/shaderc-build
ninja: build stopped: subcommand failed.


Callstack

Just as an update, I'm working on this since you reported it.

FreeImage hasn't been updated since 2018 and it's starting to rot, so we're in the process of updating everything using a forked version.

Ok. Thanks.

Thanks for the ticket!

After a ton of work, we replaced FreeImage with FreeImageRe fork which is much more up to date.

We've also updated OgreNext to fix build errors with FreeImageRe.

Branches v2.2, v2.3 & master were updated with these fixes. For branch v2.1 we just updated the build scripts to the last working version of ogre-next-deps since it's EOL.

Let us know if there are issues.
Cheers