diff --git a/Modules/FindImageMagick.cmake b/Modules/FindImageMagick.cmake index 15593280f3..c34ebdb22d 100644 --- a/Modules/FindImageMagick.cmake +++ b/Modules/FindImageMagick.cmake @@ -298,23 +298,29 @@ function(_ImageMagick_GetVersion) ) foreach(dir IN LISTS ImageMagick_INCLUDE_DIRS) - if(EXISTS ${dir}/magick/version.h) - file(STRINGS "${dir}/magick/version.h" results REGEX "${regex}") + foreach(subdir IN ITEMS MagickCore magick) + if(EXISTS ${dir}/${subdir}/version.h) + file(STRINGS "${dir}/${subdir}/version.h" results REGEX "${regex}") - foreach(line ${results}) - if(line MATCHES "${regex}") - if(DEFINED version) - string(APPEND version "${CMAKE_MATCH_2}") - else() - set(version "${CMAKE_MATCH_2}") - endif() + foreach(line ${results}) + if(line MATCHES "${regex}") + if(DEFINED version) + string(APPEND version "${CMAKE_MATCH_2}") + else() + set(version "${CMAKE_MATCH_2}") + endif() - if(CMAKE_MATCH_1 STREQUAL "MagickLibAddendum") - break() + if(CMAKE_MATCH_1 STREQUAL "MagickLibAddendum") + break() + endif() endif() - endif() - endforeach() - endif() + endforeach() + endif() + + if(DEFINED version) + break() + endif() + endforeach() if(DEFINED version) break() diff --git a/Tests/FindImageMagick/Test/CMakeLists.txt b/Tests/FindImageMagick/Test/CMakeLists.txt index 06c561ec20..f60fe0cfeb 100644 --- a/Tests/FindImageMagick/Test/CMakeLists.txt +++ b/Tests/FindImageMagick/Test/CMakeLists.txt @@ -14,4 +14,7 @@ add_test(NAME test_magick++ COMMAND test_magick++) add_executable(test_magick_wand main_magick_wand.c) target_link_libraries(test_magick_wand ImageMagick::MagickWand) +if(ImageMagick_VERSION VERSION_GREATER_EQUAL 7) + target_compile_definitions(test_magick_wand PRIVATE TEST_IMAGE_MAGICK_7) +endif() add_test(NAME test_magick_wand COMMAND test_magick_wand) diff --git a/Tests/FindImageMagick/Test/main_magick_wand.c b/Tests/FindImageMagick/Test/main_magick_wand.c index 52d179d3d2..47352a03c9 100644 --- a/Tests/FindImageMagick/Test/main_magick_wand.c +++ b/Tests/FindImageMagick/Test/main_magick_wand.c @@ -1,4 +1,8 @@ -#include +#ifdef TEST_IMAGE_MAGICK_7 +# include +#else +# include +#endif int main(void) {