Faster3ck / Converseen

Converseen is a batch image converter and resizer
https://converseen.fasterland.net/
GNU General Public License v3.0
424 stars 32 forks source link

Converseen 0.9.5.2 build failure: 'FilterTypes' has not been declared #34

Closed GvMariani closed 8 months ago

GvMariani commented 7 years ago

Trying to build converseen 0.9.5.2 for the upcoming Rosa Linux 2016.1 distro: gcc 5.3.1, Miagick++ 7.0.3 The build fails with a few errors about "FilterTypes" (see the full log attached) BuildFailed.txt:


error: 'FilterTypes' has not been declared error: 'FilterTypes' does not name a type error: template argument 1 is invalid


Pulfer commented 7 years ago

I used this quick patch to fix build with ImageMagick 7: https://abf.rosalinux.ru/import/converseen/raw/rosa2016.1/converseen-0.9.5.2-imagemagick7.patch

But it's not good enough to be merged upstream. There should be support for both IM6 and IM7 via "#if ... < 7".

Faster3ck commented 7 years ago

Hi,

Thank you for the bug report and for the help with the patch. It was very useful to me for speeding up the porting to IM7. I've almost finished to fix the code. Hoping to test and release the final code the sooner possible. :)

The macro for retrieving the version of the IM library is MagickLibVersion defined in MagickCore/version.h. :)

Faster3ck commented 7 years ago

Hi,

I've released a new version of the program and now is possible to build it using ImageMagick 7. Let me know if there are other problems when compiling Converseen with IM7.

Pulfer commented 7 years ago

Thanx, I updated Converseen package in ROSA Desktop 2016.1 repository to 0.9.6.

The only issue I still had was linkage. Fixed with:

-TARGET_LINK_LIBRARIES(${GUI} ${Qt5Network_LIBRARIES} ${Qt5Widgets_LIBRARIES} ${ImageMagick_LIBRARIES} ${ImageMagick_Magick++_LIBRARIES} ${ImageMagick_MagickCore_LIBRARIES})
+TARGET_LINK_LIBRARIES(${GUI} ${Qt5Network_LIBRARIES} ${Qt5Widgets_LIBRARIES} ${ImageMagick_LIBRARIES} ${ImageMagick_Magick++_LIBRARY} ${ImageMagick_MagickCore_LIBRARY})

From cmake 3.6.1 file FindImageMagick.cmake it seems that cmake sets _LIBRARY, not _LIBRARIES variable for IM components:

list(APPEND ImageMagick_REQUIRED_VARS ImageMagick_Magick++_LIBRARY)
list(APPEND ImageMagick_REQUIRED_VARS ImageMagick_MagickWand_LIBRARY)
list(APPEND ImageMagick_REQUIRED_VARS ImageMagick_MagickCore_LIBRARY)

They all should be included in ${ImageMagick_LIBRARIES} but for some reasons only Magick++ was (but that's cmake/IM issue, maybe already fixed in 3.7.1).

rezso commented 7 years ago

I tried to compile 0.9.6 release with imagemagick 7. qmake: src/main.cpp:26:22: fatal error: Magick++.h: No such file or directory

cmake 3.7.0 (and 3.7.2): -- Found ImageMagick: /usr/bin/convert (found version "7.0.2-4") -- Could NOT find ImageMagick (missing: ImageMagick_Magick++_LIBRARY) (found version "7.0.2-4") -- Could NOT find ImageMagick (missing: ImageMagick_MagickWand_LIBRARY) (found version "7.0.2-4") -- Could NOT find ImageMagick (missing: ImageMagick_MagickCore_LIBRARY) (found version "7.0.2-4") and: src/main.cpp:26:22: fatal error: Magick++.h: No such file or directory

rezso commented 7 years ago

Oops... the relased 0.9.6 tarball contains the 0.9.5.2: the v0.9.6 tag added for commit ec7e7eb, instead of 46cd088.

rezso commented 7 years ago

I downloaded the real 0.9.6 version from git. I cannot compile it with cmake (the error us same than https://github.com/Faster3ck/Converseen/issues/34#issuecomment-275549509), but after modifying the .pro file, I can compile it with qmake.

Faster3ck commented 7 years ago

@rezso @Pulfer I think cmake, at the moment, have no support for ImageMagick 7. I've taken a look to the current FindImageMagick.cmake module and, at line 105, I found the module is able only to recognize headers indluded in folders named ImageMagick or ImageMagick-6.