AcademySoftwareFoundation / OpenColorIO

A color management framework for visual effects and animation.
https://opencolorio.org
BSD 3-Clause "New" or "Revised" License
1.76k stars 438 forks source link

opencolorio-2.3.2 fails compile with gcc:15 error: ‘uint8_t’ was not declared #2015

Closed t-dr closed 3 weeks ago

t-dr commented 1 month ago

OpenColorIO.h needs to include cstdint to build with gcc version 15.0.0 20240804 reported downstream as https://bugs.gentoo.org/937478

installation

small patch to correct

OpenColorIO.h2-gcc15-fix.patch

Error Encountered


FAILED: src/OpenColorIO/CMakeFiles/OpenColorIO.dir/Config.cpp.o
/usr/bin/x86_64-pc-linux-gnu-g++ -DOpenColorIO_EXPORTS -I/var/tmp/portage/media-libs/opencolorio-2.3.2/work/OpenColorIO-2.3.2/include/OpenColorIO/.. -I/var/tmp/portage/media-libs/opencolorio-2.3.2/work/OpenColorIO-2.3.2/include/OpenColorIO -I/var/tmp/portage/media-libs/opencolorio-2.3.2/work/OpenColorIO-2.3.2/src/OpenColorIO -I/var/tmp/portage/media-libs/opencolorio-2.3.2/work/OpenColorIO-2.3.2_build/include/OpenColorIO -I/var/tmp/portage/media-libs/opencolorio-2.3.2/work/OpenColorIO-2.3.2_build/src/OpenColorIO -I/var/tmp/portage/media-libs/opencolorio-2.3.2/work/OpenColorIO-2.3.2_build/generated_include -isystem /usr/include/Imath -isystem /usr/include/pystring -isystem /var/tmp/portage/media-libs/opencolorio-2.3.2/work/OpenColorIO-2.3.2/ext/sampleicc/src/include -isystem /var/tmp/portage/media-libs/opencolorio-2.3.2/work/OpenColorIO-2.3.2/src/utils/.. -isystem /var/tmp/portage/media-libs/opencolorio-2.3.2/work/OpenColorIO-2.3.2/ext/xxHash/src/include -isystem /usr/include/minizip-ng  -march=native -O3 -flto=jobserver -mprefer-vector-width=512 -fno-vect-cost-model -pipe -std=c++14 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -DUSE_GCC -Wall -Wextra -Wswitch-enum -MD -MT src/OpenColorIO/CMakeFiles/OpenColorIO.dir/Config.cpp.o -MF src/OpenColorIO/CMakeFiles/OpenColorIO.dir/Config.cpp.o.d -o src/OpenColorIO/CMakeFiles/OpenColorIO.dir/Config.cpp.o -c /var/tmp/portage/media-libs/opencolorio-2.3.2/work/OpenColorIO-2.3.2/src/OpenColorIO/Config.cpp
In file included from /var/tmp/portage/media-libs/opencolorio-2.3.2/work/OpenColorIO-2.3.2/src/OpenColorIO/Config.cpp:17:
/var/tmp/portage/media-libs/opencolorio-2.3.2/work/OpenColorIO-2.3.2/include/OpenColorIO/../OpenColorIO/OpenColorIO.h:3276:10: error: use of enum ‘TextureDimensions’ without previous declaration
 3276 |     enum TextureDimensions : uint8_t {
      |          ^~~~~~~~~~~~~~~~~
/var/tmp/portage/media-libs/opencolorio-2.3.2/work/OpenColorIO-2.3.2/include/OpenColorIO/../OpenColorIO/OpenColorIO.h:3276:30: error: ‘uint8_t’ was not declared in this scope
 3276 |     enum TextureDimensions : uint8_t {
      |                              ^~~~~~~
/var/tmp/portage/media-libs/opencolorio-2.3.2/work/OpenColorIO-2.3.2/include/OpenColorIO/../OpenColorIO/OpenColorIO.h:20:1: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
''''
KevinJW commented 1 month ago

Fix suggested looks correct, as the type is used directly in that header.

We may also want to look at all the headers for similar errors - looks like we should also add <functional> to OpenColorIO.h

OpenColorTransforms.h should include <cstddef> for size_t and it may need to do something like <iosfwd> for the uses of std::ostream

etc.

Kevin