Skip to content

Fix OCIO and libheif compilation on ARM and MinGW

This MR fixes the following issues:

  • OpenColorIO has a patch on v2 that skips SSE if the architecture doesn't support it. It wasn't backported to 1.1, so I bring it in here. This also fixes (properly) compilation on Apple's M1.

  • During GSoC, I upstreamed a patch to libde265 that detects and disables SSE if the architecture does not support it. Updated it to the latest release, which also fixes compilation on M1 and MinGW, properly.

  • libx265 also has a patch in 3.4+ that fixes armhf primitives. I backported the patch from the busybox distro.

  • libheif was updated to 1.11, which removes the need for all our patches. (I do not add AVIF support, as Wolthera said there were a few performance issues a while ago.)

  • GStreamer should not be fixed to x86_64, that's why I added the $TRIPLET variable on the previous fix (!435 (merged)).

There is a further workaround needed to accelerate compilation, every BUILD_COMMAND make needs to be replaced with BUILD_COMMAND $(MAKE) for it to pick up the job number flag. If that is allowed, I can add another commit with said fixes.

Test Plan

Compile Krita on M1 Mac. Alternatively, compile Krita on an armhf platform, following the instructions on my GSoC blog post (update coming Soon).

Formalities Checklist

  • I confirmed this builds.
  • I confirmed Krita ran and the relevant functions work.
  • I tested the relevant unit tests and can confirm they are not broken. (If not possible, don't hesitate to ask for help!)
  • I made sure my commits build individually and have good descriptions as per KDE guidelines.
  • I made sure my code conforms to the standards set in the HACKING file.
  • I can confirm the code is licensed and attributed appropriately, and that unattributed code is mine, as per KDE Licensing Policy.

/cc @ivany /cc @dkazakov

Edited by Amy spark

Merge request reports