Revive an old issue: Allow gmic-qt to link the shared libgmic

patching gmic done:

1 Like

I am curious … if we port gmic-qt from CImg<T> to gmic_image<T> would we still need CImg.h in the devel package?

That’s a good question indeed, and I cannot say (I’m not the author of the plug-in code).
Maybe G’MIC-Qt uses some of the features of CImg, maybe not.
I’ll ask Sébastien about that.

btw: with my 2 patches above + https://github.com/cryptomilk/gmic-qt/commits/asn-cmake

it should be possible to ship gmic and gmic-qt separately.

1 Like

would you also accept the part that will install CImg.h for now?

and while you are touching git. could it be you didnt push the tag?

Almost there…

/home/abuild/rpmbuild/BUILD/gmic-3.0.1/gmic-qt/src/Host/KritaPlugin/host.cpp: In function 'void GmicQtHost::getCroppedImages(cimg_library::CImgList<float>&, cimg_library::CImgList<char>&, double, double, double, double, GmicQt::InputMode)':
/home/abuild/rpmbuild/BUILD/gmic-3.0.1/gmic-qt/src/Host/KritaPlugin/host.cpp:110:23: error: 'string' is not a member of 'cimg_library::CImg<char>'
  110 |     gmic_image<char>::string(ba.constData()).move_to(imageNames[i]);
      |                       ^~~~~~
/home/abuild/rpmbuild/BUILD/gmic-3.0.1/gmic-qt/src/Host/KritaPlugin/host.cpp:126:12: error: 'struct cimg_library::CImg<float>' has no member named 'move_to'
  126 |       gimg.move_to(images[i]);
      |            ^~~~~~~
/home/abuild/rpmbuild/BUILD/gmic-3.0.1/gmic-qt/src/Host/KritaPlugin/host.cpp: In function 'void GmicQtHost::outputImages(cimg_library::CImgList<float>&, const cimg_library::CImgList<char>&, GmicQt::OutputMode)':
/home/abuild/rpmbuild/BUILD/gmic-3.0.1/gmic-qt/src/Host/KritaPlugin/host.cpp:151:31: error: 'struct cimg_library::CImgList<float>' has no member named 'size'
  151 |   for (uint i = 0; i < images.size(); ++i) {
      |                               ^~~~
/home/abuild/rpmbuild/BUILD/gmic-3.0.1/gmic-qt/src/Host/KritaPlugin/host.cpp:154:37: error: 'struct cimg_library::CImgList<float>' has no member named 'at'
  154 |     gmic_image<float> gimg = images.at(i);
      |                                     ^~

pinging the krita team as well

You mean, in the CMakeList file ?

I can’t. I’m not the owner of the gmic-qt plugin. He is actually away for a while (still a few days I think).

Those supposed missing declarations are actually well-known member functions of the CImg<T> class.

missing include for CImg.h. I fixed plain qmic-qt but not the krita part yet.

yes

Yes, why not.
I got a little tired of this file to say the least, because I don’t want to manage it, and I often receive contributions for it. I wonder if I should put it in gmic-community :slight_smile:

Outcome of todays work:

Next stop is upstreaming all the gmic-qt changes. Hopefully including the changes that krita needs. is Sébastien on the forum as well?

1 Like

No. He is not (and will probably never be there).

Upstreaming changes

1 Like

And here is why we did all the work:

Need to talk to krita upstream how to proceed with upstreaming this.

1 Like

@darix , just a note : macro gmic_build will be renamed gmic_core in the next version 3.0.2.

Thank you for the heads up. I dont think I use it anywhere. I mostly removed the flag from gmic-qt build.

I am kinda curious … if all the work is merged would you prefer to stay with a gmic tarball that contains both or split releases?

all parts are now merged and waiting for new releases https://github.com/c-koi/gmic-qt/pull/157#issuecomment-1169858572 :smiley:

now building the krita integration is a lot easier!

Thank you @David_Tschumperle

1 Like

Does that mean you would be interested by a quick 3.1.5 release of G’MIC ?

  • Version 3.1.5 has been released today.
3 Likes