[cmake-developers] FindImageMagick.cmake backwards compatibility

Miguel A. Figueroa-Villanueva miguelf at ieee.org
Sun Jan 29 17:39:43 EST 2012


On Sun, Jan 29, 2012 at 5:58 PM, Rolf Eike Beer wrote:
> While hacking on various Find*.cmake modules I also made some changes to the
> ImageMagick module, and one of them is not really backwards compatible. I
> would consider it a bugfix, but you may judge yourself.
>
> ImageMagick_FOUND was set to true if all requested components were found. Not
> surprising on the first look. But that also means: if you requested no
> components and no components were found that means none is missing:
> ImageMagick_FOUND was TRUE. It is not anymore as you may have guessed.
>
> So when ImageMagick is installed everything behaves as always. But if no
> ImageMagick is installed behaviour was this:
>
> find_package(ImageMagick) -> ImageMagick_FOUND = TRUE
> find_package(ImageMagick mogrigy) -> FALSE
>
> and now it is:
>
> find_package(ImageMagick) -> ImageMagick_FOUND = FALSE
> find_package(ImageMagick mogrigy) -> FALSE
>
> Any objections?
>
> Eike

Hello All,

I am the current maintainer of this module, but I haven't been able to
keep up with CMake's development in the past couple of years. So, I am
not sure how to handle this case.

To add a bit to this discussion, the basic problem is that code
similar to the following would break:

include(FindImageMagick)
if(NOT IMAGEMAGICK_FOUND)
 message(FATAL_ERROR "don't have the FindImageMagick module")
endif()
...
if(IMAGEMAGICK_MOGRIFY_EXECUTABLE)
 # do something
else()
 # do something else
endif()

However, the old module that this is being derived from:

http://cmake.org/gitweb?p=cmake.git;a=blob;f=Modules/FindImageMagick.cmake;h=66e54bcfee27508c8124c5cd033de779473b3b4b;hb=d2689c95a1591fd7bc5bc8a2f1515a2db1d88b72

doesn't have an IMAGEMAGICK_FOUND variable. So, this seems to be an
oversight on my part when implementing the code to use components and
extending to libraries, etc.

In summary, I support the change that Eike is presenting, but I would
like to have the go ahead from CMake developers.

Thanks,
--Miguel



More information about the cmake-developers mailing list