cgohlke / imagecodecs

Image transformation, compression, and decompression codecs
https://pypi.org/project/imagecodecs
BSD 3-Clause "New" or "Revised" License
111 stars 21 forks source link

JPEGXL support on Mac Release #68

Closed zhou13 closed 1 year ago

zhou13 commented 1 year ago

Hi @cgohlke, Thank you for releasing this software package. This is the best package for interacting with JXL files in python right now! However, I noticed that the MacOS release on PyPi does not have the JXL support compiled into it, although I already have libjxl installed through homebrew. On manylinux, everything works well. Is it possible to enable the JPEGXL support on the macos wheel package? Thank you!

cgohlke commented 1 year ago

OK, I try to enable it in the release. Last time libjxl would not build on macOS...

zhou13 commented 11 months ago

@cgohlke It seems that the JpegXL support is still not available on 2023.7.10 (Intel Mac, pip version).

cgohlke commented 11 months ago

libjxl still does not build on Intel Mac (Azure-pipelines), only ARM64 (locally).

zhou13 commented 11 months ago

@cgohlke Are the build scripts public? I could take a look. There is a link to https://github.com/Czaki/imagecodecs_build, but it seems that it is not up to date.

cgohlke commented 11 months ago

It's a vanilla CMake build:

git clone --depth 1 --branch v0.8.2 https://github.com/libjxl/libjxl "${download_dir}/libjxl"
echo "Build libjxl"
cd "${download_dir}/libjxl" || exit 1
mkdir -p _build
cd _build || exit 1
cmake \
    -DBUILD_TESTING=OFF \
    -DJPEGXL_ENABLE_BENCHMARK=OFF \
    -DJPEGXL_ENABLE_FUZZERS=OFF \
    -DJPEGXL_ENABLE_EXAMPLES=OFF \
    -DJPEGXL_ENABLE_JNI=OFF \
    -DJPEGXL_ENABLE_TOOLS=OFF \
    -DJPEGXL_ENABLE_DOXYGEN=OFF \
    -DJPEGXL_ENABLE_MANPAGES=OFF \
    -DJPEGXL_ENABLE_OPENEXR=OFF \
    -DBUILD_SHARED_LIBS=ON \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX="${build_dir}" \
    ..
make
make install
zhou13 commented 11 months ago

What are the errors you saw? I can execute your commands on my Intel Mac without issues. Only modification is that I executed "${download_dir}/libjxl"/deps.sh before running the cmake.

cgohlke commented 11 months ago

Found the logs. Looks like Xcode 13.2.1 with MacOSX 12.1 SDK. I did not look into the details of the errors...

Build libjxl
+ mkdir -p _build
+ cd _build
+ cmake -DBUILD_TESTING=OFF -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_FUZZERS=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF -DJPEGXL_ENABLE_JNI=OFF -DJPEGXL_ENABLE_TOOLS=OFF -DJPEGXL_ENABLE_DOXYGEN=OFF -DJPEGXL_ENABLE_MANPAGES=OFF -DJPEGXL_ENABLE_OPENEXR=OFF -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/Users/runner/work/1/s/build_utils/libs_build ..
-- The C compiler identification is AppleClang 13.0.0.13000029
-- The CXX compiler identification is AppleClang 13.0.0.13000029
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode_13.2.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang - 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: /Applications/Xcode_13.2.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test JPEGXL_EMSCRIPTEN
-- Performing Test JPEGXL_EMSCRIPTEN - Failed
-- CMAKE_SYSTEM_PROCESSOR is x86_64
-- Performing Test CXX_FUZZERS_SUPPORTED
-- Performing Test CXX_FUZZERS_SUPPORTED - Failed
-- Performing Test CXX_CONSTRUCTOR_ALIASES_SUPPORTED
-- Performing Test CXX_CONSTRUCTOR_ALIASES_SUPPORTED - Success
-- Performing Test CXX_MACRO_PREFIX_MAP
-- Performing Test CXX_MACRO_PREFIX_MAP - Success
-- Performing Test CXX_NO_RTTI_SUPPORTED
-- Performing Test CXX_NO_RTTI_SUPPORTED - Success
-- Found PkgConfig: /usr/local/bin/pkg-config (found version "0.29.2") 
-- Performing Test JXL_HWY_DISABLED_TARGETS_FORCED
-- Performing Test JXL_HWY_DISABLED_TARGETS_FORCED - Failed
-- Compiled IDs C:AppleClang, C++:AppleClang
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Performing Test ATOMICS_LOCK_FREE_INSTRUCTIONS
-- Performing Test ATOMICS_LOCK_FREE_INSTRUCTIONS - Success
Warning: HWY_SVE, HWY_SVE2, HWY_SVE_256, HWY_SVE2_128 and HWY_RVV CPU targets are disabled
-- Performing Test HWY_EMSCRIPTEN
-- Performing Test HWY_EMSCRIPTEN - Failed
-- Performing Test HWY_RISCV
-- Performing Test HWY_RISCV - Failed
-- Architecture: x86_64
CMake Deprecation Warning at third_party/brotli/CMakeLists.txt:5 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 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.

-- Performing Test BROTLI_EMSCRIPTEN
-- Performing Test BROTLI_EMSCRIPTEN - Failed
-- Compiler is not EMSCRIPTEN
-- Looking for log2
-- Looking for log2 - found
-- Performing Test CXX_WPSABI_SUPPORTED
-- Performing Test CXX_WPSABI_SUPPORTED - Success
-- Found ZLIB: /Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/lib/libz.tbd (found version "1.2.11")  
-- Found PNG: /usr/local/lib/libpng.dylib (found version "1.4.12") 
CMake Deprecation Warning at third_party/sjpeg/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 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/sjpeg/CMakeLists.txt:12 (set):
  implicitly converting 'Build type: Release, Debug or RelWithDebInfo' to
  'STRING' type.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Performing Test SJPEG_HAVE_FLAG___SSE2__
-- Performing Test SJPEG_HAVE_FLAG___SSE2__ - Success
-- Performing Test SJPEG_HAVE_FLAG___ARM_NEON__
-- Performing Test SJPEG_HAVE_FLAG___ARM_NEON__ - Failed
-- Performing Test SJPEG_HAVE_FLAG___ARM_NEON__
-- Performing Test SJPEG_HAVE_FLAG___ARM_NEON__ - Failed
-- Found JPEG: /usr/local/lib/libjpeg.dylib (found version "80") 
-- Found OpenGL: /Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/OpenGL.framework   
-- Found GLUT: /Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/GLUT.framework  
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
-- Performing Test LINKER_SUPPORT_EXCLUDE_LIBS
-- Performing Test LINKER_SUPPORT_EXCLUDE_LIBS - Failed
-- Building with JPEGXL_VERSION=954b460 (auto-updated)
-- Building tools: 
-- Configuring done (9.1s)
-- Generating done (0.4s)
-- Build files have been written to: /Users/runner/work/1/s/build_utils/libs_src/libjxl/_build
+ make
[  1%] Building CXX object third_party/highway/CMakeFiles/hwy.dir/hwy/aligned_allocator.cc.o
[  1%] Building C object third_party/brotli/CMakeFiles/brotlicommon.dir/c/common/dictionary.c.o
[  1%] Building C object third_party/brotli/CMakeFiles/brotlicommon-static.dir/c/common/dictionary.c.o
[  1%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/ac_strategy.cc.o
[  3%] Building C object third_party/brotli/CMakeFiles/brotlicommon.dir/c/common/transform.c.o
[  3%] Building C object third_party/brotli/CMakeFiles/brotlicommon-static.dir/c/common/transform.c.o
[  3%] Linking C static library libbrotlicommon-static.a
[  3%] Linking C shared library libbrotlicommon.dylib
[  3%] Built target brotlicommon-static
[  3%] Building CXX object third_party/highway/CMakeFiles/hwy.dir/hwy/nanobenchmark.cc.o
[  3%] Built target brotlicommon
[  5%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/alpha.cc.o
[  6%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/butteraugli/butteraugli.cc.o
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/alpha.cc:10:
In file included from /Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/algorithm:653:
In file included from /Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/memory:673:
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:245:3: error: 'operator delete' is unavailable: introduced in macOS 10.12
  __builtin_operator_delete(__args...);
  ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:271:10: note: in instantiation of function template specialization 'std::__libcpp_operator_delete<void *, unsigned long>' requested here
  return __libcpp_operator_delete(__ptr, __size, __args...);
         ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:279:12: note: in instantiation of function template specialization 'std::__do_deallocate_handle_size<>' requested here
    return __do_deallocate_handle_size(__ptr, __size);
           ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:185:74: note: 'operator delete' has been explicitly marked unavailable here
_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;
                                                                         ^
1 error generated.
make[2]: *** [lib/CMakeFiles/jxl_dec-obj.dir/jxl/alpha.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[  6%] Building CXX object third_party/highway/CMakeFiles/hwy.dir/hwy/per_target.cc.o
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/ac_strategy.cc:6:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/ac_strategy.h:16:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/common.h:16:
In file included from /Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/memory:673:
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:245:3: error: 'operator delete' is unavailable: introduced in macOS 10.12
  __builtin_operator_delete(__args...);
  ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:271:10: note: in instantiation of function template specialization 'std::__libcpp_operator_delete<void *, unsigned long>' requested here
  return __libcpp_operator_delete(__ptr, __size, __args...);
         ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:279:12: note: in instantiation of function template specialization 'std::__do_deallocate_handle_size<>' requested here
    return __do_deallocate_handle_size(__ptr, __size);
           ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:185:74: note: 'operator delete' has been explicitly marked unavailable here
_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;
                                                                         ^
1 error generated.
make[2]: *** [lib/CMakeFiles/jxl_dec-obj.dir/jxl/ac_strategy.cc.o] Error 1
make[1]: *** [lib/CMakeFiles/jxl_dec-obj.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[  6%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/butteraugli_wrapper.cc.o
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/butteraugli_wrapper.cc:18:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/enc_butteraugli_comparator.h:16:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/codec_in_out.h:19:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/frame_header.h:26:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/fields.h:29:
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/field_encodings.h:34:11: error: 'operator delete' is unavailable: introduced in macOS 10.12
  virtual ~Fields() = default;
          ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/jpeg/jpeg_data.h:166:3: note: in defaulted destructor for 'jxl::Fields' first required here
  JPEGData()
  ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:185:74: note: 'operator delete' has been explicitly marked unavailable here
_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;
                                                                         ^
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/butteraugli_wrapper.cc:18:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/enc_butteraugli_comparator.h:16:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/codec_in_out.h:22:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_bundle.h:33:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/quantizer.h:31:
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/quant_weights.h:227:7: error: 'operator delete' is unavailable: introduced in macOS 10.12
      delete qraw.qtable;
      ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:185:74: note: 'operator delete' has been explicitly marked unavailable here
_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;
                                                                         ^
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/butteraugli_wrapper.cc:18:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/enc_butteraugli_comparator.h:16:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/codec_in_out.h:22:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_bundle.h:33:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/quantizer.h:31:
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/quant_weights.h:240:7: error: 'operator delete' is unavailable: introduced in macOS 10.12
      delete qraw.qtable;
      ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:185:74: note: 'operator delete' has been explicitly marked unavailable here
_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;
                                                                         ^
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/butteraugli_wrapper.cc:18:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/enc_butteraugli_comparator.h:16:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/codec_in_out.h:19:
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/frame_header.h:77:8: error: 'operator delete' is unavailable: introduced in macOS 10.12
struct YCbCrChromaSubsampling : public Fields {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_bundle.h:41:3: note: in implicit destructor for 'jxl::YCbCrChromaSubsampling' first required here
  ImageBundle() : metadata_(nullptr) {}
  ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:185:74: note: 'operator delete' has been explicitly marked unavailable here
_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;
                                                                         ^
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/butteraugli_wrapper.cc:18:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/enc_butteraugli_comparator.h:16:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/codec_in_out.h:19:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/frame_header.h:27:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:19:
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/color_encoding_internal.h:155:8: error: 'operator delete' is unavailable: introduced in macOS 10.12
struct CustomTransferFunction : public Fields {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/color_encoding_internal.h:230:8: note: in implicit destructor for 'jxl::CustomTransferFunction' first required here
struct ColorEncoding : public Fields {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_bundle.h:41:3: note: in implicit destructor for 'jxl::ColorEncoding' first required here
  ImageBundle() : metadata_(nullptr) {}
  ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:185:74: note: 'operator delete' has been explicitly marked unavailable here
_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;
                                                                         ^
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/butteraugli_wrapper.cc:18:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/enc_butteraugli_comparator.h:16:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/codec_in_out.h:19:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/frame_header.h:27:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:19:
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/color_encoding_internal.h:141:8: error: 'operator delete' is unavailable: introduced in macOS 10.12
struct Customxy : public Fields {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/color_encoding_internal.h:230:8: note: in implicit destructor for 'jxl::Customxy' first required here
struct ColorEncoding : public Fields {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_bundle.h:41:3: note: in implicit destructor for 'jxl::ColorEncoding' first required here
  ImageBundle() : metadata_(nullptr) {}
  ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:185:74: note: 'operator delete' has been explicitly marked unavailable here
_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;
                                                                         ^
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/butteraugli_wrapper.cc:18:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/enc_butteraugli_comparator.h:16:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/codec_in_out.h:19:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/frame_header.h:27:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:19:
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/color_encoding_internal.h:230:8: error: 'operator delete' is unavailable: introduced in macOS 10.12
struct ColorEncoding : public Fields {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_bundle.h:41:3: note: in implicit destructor for 'jxl::ColorEncoding' first required here
  ImageBundle() : metadata_(nullptr) {}
  ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:185:74: note: 'operator delete' has been explicitly marked unavailable here
_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;
                                                                         ^
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/butteraugli_wrapper.cc:18:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/enc_butteraugli_comparator.h:16:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/codec_in_out.h:19:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/frame_header.h:27:
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:77:8: error: 'operator delete' is unavailable: introduced in macOS 10.12
struct BitDepth : public Fields {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:195:8: note: in implicit destructor for 'jxl::BitDepth' first required here
struct ImageMetadata : public Fields {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:376:8: note: in implicit destructor for 'jxl::ImageMetadata' first required here
struct CodecMetadata {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/codec_in_out.h:70:3: note: in implicit default constructor for 'jxl::CodecMetadata' first required here
  CodecInOut() : preview_frame(&metadata.m) {
  ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:185:74: note: 'operator delete' has been explicitly marked unavailable here
_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;
                                                                         ^
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/butteraugli_wrapper.cc:18:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/enc_butteraugli_comparator.h:16:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/codec_in_out.h:19:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/frame_header.h:27:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:21:
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/headers.h:30:7: error: 'operator delete' is unavailable: introduced in macOS 10.12
class SizeHeader : public Fields {
      ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:195:8: note: in implicit destructor for 'jxl::SizeHeader' first required here
struct ImageMetadata : public Fields {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:376:8: note: in implicit destructor for 'jxl::ImageMetadata' first required here
struct CodecMetadata {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/codec_in_out.h:70:3: note: in implicit default constructor for 'jxl::CodecMetadata' first required here
  CodecInOut() : preview_frame(&metadata.m) {
  ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:185:74: note: 'operator delete' has been explicitly marked unavailable here
_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;
                                                                         ^
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/butteraugli_wrapper.cc:18:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/enc_butteraugli_comparator.h:16:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/codec_in_out.h:19:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/frame_header.h:27:
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:143:8: error: 'operator delete' is unavailable: introduced in macOS 10.12
struct ToneMapping : public Fields {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:195:8: note: in implicit destructor for 'jxl::ToneMapping' first required here
struct ImageMetadata : public Fields {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:376:8: note: in implicit destructor for 'jxl::ImageMetadata' first required here
struct CodecMetadata {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/codec_in_out.h:70:3: note: in implicit default constructor for 'jxl::CodecMetadata' first required here
  CodecInOut() : preview_frame(&metadata.m) {
  ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:185:74: note: 'operator delete' has been explicitly marked unavailable here
_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;
                                                                         ^
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/butteraugli_wrapper.cc:18:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/enc_butteraugli_comparator.h:16:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/codec_in_out.h:19:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/frame_header.h:27:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:21:
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/headers.h:56:7: error: 'operator delete' is unavailable: introduced in macOS 10.12
class PreviewHeader : public Fields {
      ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:195:8: note: in implicit destructor for 'jxl::PreviewHeader' first required here
struct ImageMetadata : public Fields {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:376:8: note: in implicit destructor for 'jxl::ImageMetadata' first required here
struct CodecMetadata {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/codec_in_out.h:70:3: note: in implicit default constructor for 'jxl::CodecMetadata' first required here
  CodecInOut() : preview_frame(&metadata.m) {
  ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:185:74: note: 'operator delete' has been explicitly marked unavailable here
_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;
                                                                         ^
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/butteraugli_wrapper.cc:18:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/enc_butteraugli_comparator.h:16:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/codec_in_out.h:19:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/frame_header.h:27:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:21:
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/headers.h:79:8: error: 'operator delete' is unavailable: introduced in macOS 10.12
struct AnimationHeader : public Fields {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:195:8: note: in implicit destructor for 'jxl::AnimationHeader' first required here
struct ImageMetadata : public Fields {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:376:8: note: in implicit destructor for 'jxl::ImageMetadata' first required here
struct CodecMetadata {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/codec_in_out.h:70:3: note: in implicit default constructor for 'jxl::CodecMetadata' first required here
  CodecInOut() : preview_frame(&metadata.m) {
  ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:185:74: note: 'operator delete' has been explicitly marked unavailable here
_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;
                                                                         ^
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/butteraugli_wrapper.cc:18:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/enc_butteraugli_comparator.h:16:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/codec_in_out.h:19:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/frame_header.h:27:
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:195:8: error: 'operator delete' is unavailable: introduced in macOS 10.12
struct ImageMetadata : public Fields {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:376:8: note: in implicit destructor for 'jxl::ImageMetadata' first required here
struct CodecMetadata {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/codec_in_out.h:70:3: note: in implicit default constructor for 'jxl::CodecMetadata' first required here
  CodecInOut() : preview_frame(&metadata.m) {
  ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:185:74: note: 'operator delete' has been explicitly marked unavailable here
_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;
                                                                         ^
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/butteraugli_wrapper.cc:18:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/enc_butteraugli_comparator.h:16:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/codec_in_out.h:19:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/frame_header.h:27:
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:129:8: error: 'operator delete' is unavailable: introduced in macOS 10.12
struct OpsinInverseMatrix : public Fields {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:173:8: note: in implicit destructor for 'jxl::OpsinInverseMatrix' first required here
struct CustomTransformData : public Fields {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:376:8: note: in implicit destructor for 'jxl::CustomTransformData' first required here
struct CodecMetadata {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/codec_in_out.h:70:3: note: in implicit default constructor for 'jxl::CodecMetadata' first required here
  CodecInOut() : preview_frame(&metadata.m) {
  ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:185:74: note: 'operator delete' has been explicitly marked unavailable here
_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;
                                                                         ^
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/butteraugli_wrapper.cc:18:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/enc_butteraugli_comparator.h:16:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/codec_in_out.h:19:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/frame_header.h:27:
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:173:8: error: 'operator delete' is unavailable: introduced in macOS 10.12
struct CustomTransformData : public Fields {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:376:8: note: in implicit destructor for 'jxl::CustomTransformData' first required here
struct CodecMetadata {
       ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/codec_in_out.h:70:3: note: in implicit default constructor for 'jxl::CodecMetadata' first required here
  CodecInOut() : preview_frame(&metadata.m) {
  ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:185:74: note: 'operator delete' has been explicitly marked unavailable here
_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;
                                                                         ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:245:3: error: 'operator delete' is unavailable: introduced in macOS 10.12
  __builtin_operator_delete(__args...);
  ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:271:10: note: in instantiation of function template specialization 'std::__libcpp_operator_delete<void *, unsigned long>' requested here
  return __libcpp_operator_delete(__ptr, __size, __args...);
         ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:279:12: note: in instantiation of function template specialization 'std::__do_deallocate_handle_size<>' requested here
    return __do_deallocate_handle_size(__ptr, __size);
           ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:185:74: note: 'operator delete' has been explicitly marked unavailable here
_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;
                                                                         ^
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/butteraugli_wrapper.cc:18:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/enc_butteraugli_comparator.h:16:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/codec_in_out.h:19:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/frame_header.h:27:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:22:
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/jpeg/jpeg_data.h:165:8: error: 'operator delete' is unavailable: introduced in macOS 10.12
struct JPEGData : public Fields {
       ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/memory:1428:5: note: in implicit destructor for 'jxl::jpeg::JPEGData' first required here
    delete __ptr;
    ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/memory:1689:7: note: in instantiation of member function 'std::default_delete<jxl::jpeg::JPEGData>::operator()' requested here
      __ptr_.second()(__tmp);
      ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/memory:1643:19: note: in instantiation of member function 'std::unique_ptr<jxl::jpeg::JPEGData>::reset' requested here
  ~unique_ptr() { reset(); }
                  ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_bundle.h:41:3: note: in instantiation of member function 'std::unique_ptr<jxl::jpeg::JPEGData>::~unique_ptr' requested here
  ImageBundle() : metadata_(nullptr) {}
  ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:185:74: note: 'operator delete' has been explicitly marked unavailable here
_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;
                                                                         ^
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/butteraugli_wrapper.cc:16:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/butteraugli/butteraugli.h:18:
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/memory:1428:5: error: 'operator delete' is unavailable: introduced in macOS 10.12
    delete __ptr;
    ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/memory:1689:7: note: in instantiation of member function 'std::default_delete<jxl::jpeg::JPEGData>::operator()' requested here
      __ptr_.second()(__tmp);
      ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/memory:1643:19: note: in instantiation of member function 'std::unique_ptr<jxl::jpeg::JPEGData>::reset' requested here
  ~unique_ptr() { reset(); }
                  ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_bundle.h:41:3: note: in instantiation of member function 'std::unique_ptr<jxl::jpeg::JPEGData>::~unique_ptr' requested here
  ImageBundle() : metadata_(nullptr) {}
  ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:185:74: note: 'operator delete' has been explicitly marked unavailable here
_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;
                                                                         ^
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/butteraugli_wrapper.cc:18:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/enc_butteraugli_comparator.h:16:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/codec_in_out.h:19:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/frame_header.h:27:
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:107:8: error: 'operator delete' is unavailable: introduced in macOS 10.12
struct ExtraChannelInfo : public Fields {
       ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/memory:921:15: note: in implicit destructor for 'jxl::ExtraChannelInfo' first required here
        __p->~_Tp();
              ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/__memory/allocator_traits.h:307:13: note: in instantiation of member function 'std::allocator<jxl::ExtraChannelInfo>::destroy' requested here
        __a.destroy(__p);
            ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/vector:428:25: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<jxl::ExtraChannelInfo>>::destroy<jxl::ExtraChannelInfo, void>' requested here
        __alloc_traits::destroy(__alloc(), _VSTD::__to_address(--__soon_to_be_end));
                        ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/vector:371:29: note: in instantiation of member function 'std::__vector_base<jxl::ExtraChannelInfo, std::allocator<jxl::ExtraChannelInfo>>::__destruct_at_end' requested here
    void clear() _NOEXCEPT {__destruct_at_end(__begin_);}
                            ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/vector:465:9: note: in instantiation of member function 'std::__vector_base<jxl::ExtraChannelInfo, std::allocator<jxl::ExtraChannelInfo>>::clear' requested here
        clear();
        ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/vector:551:5: note: in instantiation of member function 'std::__vector_base<jxl::ExtraChannelInfo, std::allocator<jxl::ExtraChannelInfo>>::~__vector_base' requested here
    ~vector()
    ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/image_metadata.h:195:8: note: in instantiation of member function 'std::vector<jxl::ExtraChannelInfo>::~vector' requested here
struct ImageMetadata : public Fields {
       ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:185:74: note: 'operator delete' has been explicitly marked unavailable here
_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;
                                                                         ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[2]: *** [lib/CMakeFiles/jxl_enc-obj.dir/jxl/butteraugli_wrapper.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[  7%] Building CXX object third_party/highway/CMakeFiles/hwy.dir/hwy/print.cc.o
[  7%] Building CXX object third_party/highway/CMakeFiles/hwy.dir/hwy/targets.cc.o
[  7%] Linking CXX static library libhwy.a
[  7%] Built target hwy
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/butteraugli/butteraugli.cc:23:
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/butteraugli/butteraugli.h:161:11: error: 'operator delete' is unavailable: introduced in macOS 10.12
  virtual ~ButteraugliComparator() = default;
          ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/butteraugli/butteraugli.cc:1854:25: note: in defaulted destructor for 'jxl::ButteraugliComparator' first required here
  ButteraugliComparator butteraugli(rgb0, params);
                        ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:185:74: note: 'operator delete' has been explicitly marked unavailable here
_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;
                                                                         ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:245:3: error: 'operator delete' is unavailable: introduced in macOS 10.12
  __builtin_operator_delete(__args...);
  ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:271:10: note: in instantiation of function template specialization 'std::__libcpp_operator_delete<void *, unsigned long>' requested here
  return __libcpp_operator_delete(__ptr, __size, __args...);
         ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:279:12: note: in instantiation of function template specialization 'std::__do_deallocate_handle_size<>' requested here
    return __do_deallocate_handle_size(__ptr, __size);
           ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:185:74: note: 'operator delete' has been explicitly marked unavailable here
_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;
                                                                         ^
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/butteraugli/butteraugli.cc:23:
In file included from /Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/butteraugli/butteraugli.h:18:
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/memory:1428:5: error: 'operator delete' is unavailable: introduced in macOS 10.12
    delete __ptr;
    ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/memory:1689:7: note: in instantiation of member function 'std::default_delete<jxl::ButteraugliComparator>::operator()' requested here
      __ptr_.second()(__tmp);
      ^
/Users/runner/work/1/s/build_utils/libs_src/libjxl/lib/jxl/butteraugli/butteraugli.cc:1640:8: note: in instantiation of member function 'std::unique_ptr<jxl::ButteraugliComparator>::reset' requested here
  sub_.reset(new ButteraugliComparator(SubSample2x(rgb0), params));
       ^
/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/c++/v1/new:185:74: note: 'operator delete' has been explicitly marked unavailable here
_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;
                                                                         ^
3 errors generated.
make[2]: *** [lib/CMakeFiles/jxl_enc-obj.dir/jxl/butteraugli/butteraugli.cc.o] Error 1
make[1]: *** [lib/CMakeFiles/jxl_enc-obj.dir/all] Error 2
make: *** [all] Error 2
##[error]Bash exited with code '2'.
zhou13 commented 11 months ago

Yeah, I think it is probably because Xcode is too old. I am on Xcode 14.3.

zhou13 commented 11 months ago

If you are using https://github.com/Czaki/imagecodecs_build/blob/master/azure-pipelines.yaml, maybe just changing

        pool: { vmImage: "macos-11" }

to

        pool: { vmImage: "macos-13" }
cgohlke commented 11 months ago

Will try with macos-13 next time...

cgohlke commented 11 months ago

Using { vmImage: "macos-13" } fails with the same errors with Xcode 14.2 and MacOSX 13.1 sdk.

cgohlke commented 11 months ago

Got it building with the following patch. Too late for today's release...

diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index 8af6ae9..5584ab4 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -103,7 +103,6 @@ if (WIN32)
   endif()  # Clang
 else()  # WIN32
   list(APPEND JPEGXL_INTERNAL_FLAGS
-    -fsized-deallocation
     -fno-exceptions

     # Language flags
cgohlke commented 10 months ago

I uploaded the JPEGXL enabled wheels to PyPI with a different build number, imagecodecs-2023.8.12-1.

zhou13 commented 10 months ago

Thank you @cgohlke! I just tested and it works great for me!