Comments (15)
Here, swap()
refers to CImgList<>::swap()
, which are methods of the CImg Library (defined in file CImg.h
). These methods exist in the library since a long time
(see: http://cimg.eu/reference/structcimg__library_1_1CImgList.html#a6c12806e432683b06fbc8919daa0a3d7).
Could it be be that CImg has not been updated from your side?
from gmic-qt.
@peterhoeg I am completely unable to do this, I have never been interested in cmake (and I honestly don't have the time to spend on it). Maybe @c-koi could help, he knows cmake surely a lot more than me.
Or anyone else interested, of course ;)
from gmic-qt.
Yes the API has changed, but the code of the G'MIC-Qt plug-in as well.
Did you also update the code of the plug-in ?
from gmic-qt.
Yes, we bumped to the v.3.2.0 tag.
Looking at the source code, the culprit seems to be this swap()
call here: https://github.com/c-koi/gmic-qt/blob/master/src/FilterSyncRunner.cpp#L77
There's no such function anymore in the gmic 3.2.0 codebase: https://github.com/GreycLab/gmic/blob/master/src/gmic.h#L137
That being said, I can't find the swap operation either on the 3.1.9 codebase https://github.com/GreycLab/gmic/blob/v.218/src/gmic.h#L105 . I assume I'm missing something here 🤔
from gmic-qt.
Nix packs the latest stable version 3.2.0 (freshly updated last week from 3.1.6).
EDIT: Sorry, I misread the log without realizing hydra was still building the old gmic-qt package, I removed my comment regarding hydra's error message.
from gmic-qt.
^ please ignore the above message. This is the pre-bump build log. I'll paste the new one once the recently merged NixOS/nixpkgs#211600 (containing the gmic-qt update) hits our CI.
[edit]: np Tobias :)
Ack for the CImgList
reference. I'll try digging more into that soon. The issue probably comes from our end.
Here's the full build log: https://pastebin.aquilenet.fr/?0aa186b0b11956fc#DwxVLPoTs4Ae2SyFqnxJ9BLc6eLGDNAavCy4QcqdJpiH
We're building the package with these dependencies in scope:
bash-5.2-p15
pkg-config-wrapper-0.29.2
zlib-1.2.13
fftw-double-3.3.10
ninja-1.11.1
cmake-3.24.3
cimg-3.2.0
openexr-2.5.8
libjpeg-turbo-2.1.4
libpng-apng-1.6.39
libtiff-4.5.0
graphicsmagick-1.3.39
gmic-3.2.0
qtbase-5.15.8
qttools-5.15.8
curl-7.87.0
opencv-3.4.18
from gmic-qt.
Ah I see you are using cmake
.
I'm not sure this is working anymore. I use qmake
to build the plug-in.
I'll try to see if I get the same errors.
from gmic-qt.
OK, this doesn't work for me, for another reason:
Building for target host application: gimp
CMake Error at CMakeLists.txt:145 (find_package):
Could not find a package configuration file provided by "Gmic" with any of
the following names:
GmicConfig.cmake
gmic-config.cmake
Add the installation prefix of "Gmic" to CMAKE_PREFIX_PATH or set
"Gmic_DIR" to a directory containing one of the above files. If "Gmic"
provides a separate development package or SDK, be sure it has been
installed.
-- Configuring incomplete, errors occurred!
I have no clue how to make it work, I must say :)
from gmic-qt.
Ack. No worries :)
I'll migrate this to qmake tonight. Thanks for the help!
from gmic-qt.
Isn't qmake deprecated in qt6?
from gmic-qt.
Yes, that’s one of the reasons I switched the Nixpkgs build to CMake in the first place. In addition to qmake having even worse developer experience than CMake.
from gmic-qt.
So we need to appeal to @dtschump to do the qmake -> cmake move then.
from gmic-qt.
The issue is that GMic will now substitute CImg definitions with its own broken stubs when gmic_core
preprocessor variable is not defined.
That is the case when building gmic-qt
with -DENABLE_SYSTEM_GMIC=on
since d7cb84a.
Unfortunately, it is hard to tell why that decision was made on gmic
side due to horrible engineering practices. git blame
just points to https://github.com/GreycLab/gmic/blame/c3b2009a44bbf5afa993e4674624564c801bbbec/src/gmic.h#L81.
from gmic-qt.
Unfortunately, it is hard to tell why that decision was made on gmic side due to horrible engineering practices.
Honestly, this is a very awkward way to approach the discussion.
This decision was made for certain reasons, which you may find wrong (but I doubt you have all the cards in your hands to properly analyze the situation as a whole). In any case, it is a decision that has been made and it will probably not be reversed.
Your opinion on this issue is therefors irrelevant. I'd prefer we try to move forward rather than questioning what has already been done, and which works for other contexts than the compilation of the plug-in.
I, for one, will not participate in this kind of discussion if it goes in this direction.
from gmic-qt.
Sorry, I could have probably phrased that better. I have only mentioned the practice of destroying git repository history because it is harmful to trying to debug issues like this. I was hoping that by bringing out this problem we could not repeat it in the future.
I tried digging deeper starting with v.3.1.0
tag but it looks like the #ifndef gmic_core
was already there in 3.1.0. Since 3.1.5 compiled successfully for us, the issue is probably something different.
from gmic-qt.
Related Issues (20)
- Cannot build with Gimp3 HOT 2
- Feature Request: Layer Module
- Bad aspect ratio in error messages HOT 1
- Font selection
- Port to Qt6 ?
- [request] Copy as command HOT 2
- gmic.git repository is password protected
- Despeckle leaves pink areas HOT 10
- [GIMP 3] Wayland support
- Has the Qt4 support ever existed?
- Feature Request: New Preview Mode which requires user to code a way to update preview and new global variable '_preview_manual' HOT 1
- gmic-qt: Linux file save as dialog is extension case sensitive
- Build issue *, const GimpValueArray*, gpointer)
- Feature request: Cylinderize
- Make notes selectable HOT 2
- Photoshop CC can no longer find G'MIC
- Feature Request: Copying and Pasting clipboard data or dragging and dropping files into GMIC main window HOT 2
- Crash with Qt6 not Qt5... HOT 1
- Boundary-Related bug HOT 1
- cmake fails to compile package
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gmic-qt.