Skip to content

439990 GMic: update to 2.9.8

Amy spark requested to merge lsegovia/krita:work/amyspark/gmic-update into master

This update rolls all existing updates into a single patch and integrates the following new changes:

  • Update the plugin to the new GMic-Qt API (while also ignoring it, because to implement the plugin architecture it needs to run within our QCoreApplication)
  • Add support for compiling under MSVC (this includes support for FFTW3, LTO, Control Flow Guard, the MinGW stack size increase, and a fix to the CreateThread callback signature in GMic)
  • Add support for Android (future proof)
  • Make FFTW3 a truly optional library (the GMic-Qt toggle is a dud at present, this patch fixes it)
  • Increase the minimum on-launch update timeout to 60s (as soon as you have some ping, the update will spuriously fail)
  • Restore compatibility with stock GMic-Qt settings (previously, due to an oversight on my part, it wrote them willy-nilly in the Krita namespace)

It also adds new defines that allow to disable the following:

  • Dark Theme mode
  • Internet access by default
  • GMic-Qt's own i18n management, thus respecting the host app's language
  • All updates altogether

Note for reviewers: this update is implemented against GMic-Qt's official tarball. This means that we no longer need to download separate tarballs, I've had to increase the minimum CMake version to 3.7 to use SOURCE_SUBDIR; something that already matches the Krita main project.

BUG: 439990

Test Plan

This MR was tested with MSVC 16.10.3 and MinGW GCC 7.3.

Please build Krita with any of the existing supported OSes (MinGW, MSVC, macOS, Linux). Android build support is in !848 (merged) (see the changes to packaging).

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.
Edited by Amy spark

Merge request reports