Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 1 | # - Find the ImageMagick binary suite. |
| 2 | # This module will search for a set of ImageMagick tools specified |
| 3 | # as components in the FIND_PACKAGE call. Typical components include, |
| 4 | # but are not limited to (future versions of ImageMagick might have |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 5 | # additional components not listed here): |
| 6 | # |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 7 | # animate |
| 8 | # compare |
| 9 | # composite |
| 10 | # conjure |
| 11 | # convert |
| 12 | # display |
| 13 | # identify |
| 14 | # import |
| 15 | # mogrify |
| 16 | # montage |
| 17 | # stream |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 18 | # |
| 19 | # If no component is specified in the FIND_PACKAGE call, then it only |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 20 | # searches for the ImageMagick executable directory. This code defines |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 21 | # the following variables: |
| 22 | # |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 23 | # ImageMagick_FOUND - TRUE if all components are found. |
| 24 | # ImageMagick_EXECUTABLE_DIR - Full path to executables directory. |
| 25 | # ImageMagick_<component>_FOUND - TRUE if <component> is found. |
| 26 | # ImageMagick_<component>_EXECUTABLE - Full path to <component> executable. |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 27 | # |
| 28 | # There are also components for the following ImageMagick APIs: |
| 29 | # |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 30 | # Magick++ |
| 31 | # MagickWand |
| 32 | # MagickCore |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 33 | # |
| 34 | # For these components the following variables are set: |
| 35 | # |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 36 | # ImageMagick_FOUND - TRUE if all components are found. |
| 37 | # ImageMagick_INCLUDE_DIRS - Full paths to all include dirs. |
| 38 | # ImageMagick_LIBRARIES - Full paths to all libraries. |
| 39 | # ImageMagick_<component>_FOUND - TRUE if <component> is found. |
| 40 | # ImageMagick_<component>_INCLUDE_DIRS - Full path to <component> include dirs. |
| 41 | # ImageMagick_<component>_LIBRARIES - Full path to <component> libraries. |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 42 | # |
| 43 | # Example Usages: |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 44 | # FIND_PACKAGE(ImageMagick) |
| 45 | # FIND_PACKAGE(ImageMagick COMPONENTS convert) |
| 46 | # FIND_PACKAGE(ImageMagick COMPONENTS convert mogrify display) |
| 47 | # FIND_PACKAGE(ImageMagick COMPONENTS Magick++) |
| 48 | # FIND_PACKAGE(ImageMagick COMPONENTS Magick++ convert) |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 49 | # |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 50 | # Note that the standard FIND_PACKAGE features are supported |
| 51 | # (i.e., QUIET, REQUIRED, etc.). |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 52 | |
| 53 | #============================================================================= |
| 54 | # Copyright 2007-2009 Kitware, Inc. |
| 55 | # Copyright 2007-2008 Miguel A. Figueroa-Villanueva <miguelf at ieee dot org> |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 56 | # |
| 57 | # Distributed under the OSI-approved BSD License (the "License"); |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 58 | # see accompanying file Copyright_cmake.txt for details. |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 59 | # |
| 60 | # This software is distributed WITHOUT ANY WARRANTY; without even the |
| 61 | # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| 62 | # See the License for more information. |
| 63 | #============================================================================= |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 64 | # (To distributed this file outside of CMake, substitute the full |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 65 | # License text for the above reference.) |
| 66 | |
| 67 | find_package(PkgConfig QUIET) |
| 68 | |
| 69 | function(FIND_REGISTRY) |
| 70 | if (WIN32) |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 71 | |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 72 | # If a 64-bit compile, it can only appear in "[HKLM]\\software\\ImageMagick" |
| 73 | if (CMAKE_CL_64) |
Mark Young | e91eee5 | 2016-01-22 15:06:43 -0700 | [diff] [blame] | 74 | |
| 75 | GET_FILENAME_COMPONENT(IM_BIN_PATH |
| 76 | [HKEY_LOCAL_MACHINE\\SOFTWARE\\ImageMagick\\Current;BinPath] |
| 77 | ABSOLUTE CACHE) |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 78 | |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 79 | else() |
| 80 | |
| 81 | # This is dumb, but it's the only way I've been able to get this to work. CMake has no knowledge of the systems architecture. |
| 82 | # So, if we want to detect if we're running a 32-bit compile on a 64-bit OS, we need to manually check for the existence of |
| 83 | # ImageMagick in the WOW6432Node of the registry first. If that fails, assume they want the 64-bit version. |
| 84 | GET_FILENAME_COMPONENT(TESTING |
| 85 | [HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\ImageMagick\\Current;BinPath] |
| 86 | PATH) |
| 87 | |
Mark Young | e91eee5 | 2016-01-22 15:06:43 -0700 | [diff] [blame] | 88 | # If the WOW6432Node reg string returns empty, assume 32-bit OS, and look in the standard reg path. |
| 89 | if (TESTING STREQUAL "") |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 90 | |
Mark Young | e91eee5 | 2016-01-22 15:06:43 -0700 | [diff] [blame] | 91 | GET_FILENAME_COMPONENT(IM_BIN_PATH |
| 92 | [HKEY_LOCAL_MACHINE\\SOFTWARE\\ImageMagick\\Current;BinPath] |
| 93 | ABSOLUTE CACHE) |
Mark Young | 5a0c0c2 | 2016-09-16 10:21:31 -0600 | [diff] [blame] | 94 | |
Mark Young | e91eee5 | 2016-01-22 15:06:43 -0700 | [diff] [blame] | 95 | # Otherwise, the WOW6432Node returned a string, assume 32-bit build on 64-bit OS and use that string. |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 96 | else() |
Mark Young | e91eee5 | 2016-01-22 15:06:43 -0700 | [diff] [blame] | 97 | |
| 98 | GET_FILENAME_COMPONENT(IM_BIN_PATH |
| 99 | [HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\ImageMagick\\Current;BinPath] |
| 100 | ABSOLUTE CACHE) |
Mark Young | 5a0c0c2 | 2016-09-16 10:21:31 -0600 | [diff] [blame] | 101 | |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 102 | endif() |
Mark Young | 5a0c0c2 | 2016-09-16 10:21:31 -0600 | [diff] [blame] | 103 | |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 104 | endif() |
Mark Young | e91eee5 | 2016-01-22 15:06:43 -0700 | [diff] [blame] | 105 | |
| 106 | set (IMAGEMAGIC_REG_PATH ${IM_BIN_PATH} PARENT_SCOPE) |
| 107 | set (IMAGEMAGIC_REGINCLUDE_PATH ${IM_BIN_PATH}/include PARENT_SCOPE) |
| 108 | set (IMAGEMAGIC_REGLIB_PATH ${IM_BIN_PATH}/lib PARENT_SCOPE) |
| 109 | |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 110 | else() |
Mark Young | 3f9e9d1 | 2016-01-26 09:29:29 -0700 | [diff] [blame] | 111 | |
| 112 | # No registry exists for Linux. So, just set these to empty strings. |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 113 | set (IMAGEMAGIC_REG_PATH "" PARENT_SCOPE) |
| 114 | set (IMAGEMAGIC_REGINCLUDE_PATH "" PARENT_SCOPE) |
| 115 | set (IMAGEMAGIC_REGLIB_PATH "" PARENT_SCOPE) |
Mark Young | 5a0c0c2 | 2016-09-16 10:21:31 -0600 | [diff] [blame] | 116 | |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 117 | endif() |
Mark Young | 5a0c0c2 | 2016-09-16 10:21:31 -0600 | [diff] [blame] | 118 | |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 119 | endfunction() |
| 120 | |
| 121 | |
| 122 | #--------------------------------------------------------------------- |
| 123 | # Helper functions |
| 124 | #--------------------------------------------------------------------- |
Mark Young | 5a0c0c2 | 2016-09-16 10:21:31 -0600 | [diff] [blame] | 125 | FUNCTION(FIND_IMAGEMAGICK_API component path header) |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 126 | SET(ImageMagick_${component}_FOUND FALSE PARENT_SCOPE) |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 127 | |
Mark Young | 5a0c0c2 | 2016-09-16 10:21:31 -0600 | [diff] [blame] | 128 | # NOTE: My experience is that Windows uses the PATHs |
| 129 | # variables, while Linux uses the PATH_SUFFIXES. |
| 130 | # You can't add sub-directories to the PATH_SUFFIXES |
| 131 | # because it messes up the ImageMagick Include |
| 132 | # paths that are returned. Instead, you have to |
| 133 | # call this FIND_IMAGEMAGICK_API for each separate |
| 134 | # possible sub-folder. |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 135 | FIND_PATH(ImageMagick_${component}_INCLUDE_DIR |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 136 | NAMES ${header} |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 137 | PATHS |
| 138 | ${ImageMagick_INCLUDE_DIRS} |
| 139 | ${IMAGEMAGIC_REGINCLUDE_PATH} |
| 140 | PATH_SUFFIXES |
Mark Young | 5a0c0c2 | 2016-09-16 10:21:31 -0600 | [diff] [blame] | 141 | ImageMagick ImageMagick-6 ImageMagick-7 |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 142 | DOC "Path to the ImageMagick include dir." |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 143 | ) |
Mark Young | 3f9e9d1 | 2016-01-26 09:29:29 -0700 | [diff] [blame] | 144 | FIND_PATH(ImageMagick_${component}_ARCH_INCLUDE_DIR |
| 145 | NAMES magick/magick-baseconfig.h |
| 146 | PATHS |
| 147 | ${ImageMagick_INCLUDE_DIRS} |
| 148 | ${IMAGEMAGIC_REGINCLUDE_PATH} |
| 149 | PATH_SUFFIXES |
Mark Young | 5a0c0c2 | 2016-09-16 10:21:31 -0600 | [diff] [blame] | 150 | ImageMagick ImageMagick-6 ImageMagick-7 |
Mark Young | 3f9e9d1 | 2016-01-26 09:29:29 -0700 | [diff] [blame] | 151 | DOC "Path to the ImageMagick arch-specific include dir." |
| 152 | ) |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 153 | FIND_LIBRARY(ImageMagick_${component}_LIBRARY |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 154 | NAMES ${ARGN} |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 155 | PATHS |
| 156 | ${IMAGEMAGIC_REGLIB_PATH} |
| 157 | DOC "Path to the ImageMagick Magick++ library." |
| 158 | ) |
| 159 | |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 160 | |
Mark Young | 5a0c0c2 | 2016-09-16 10:21:31 -0600 | [diff] [blame] | 161 | IF (ImageMagick_${component}_INCLUDE_DIR AND ImageMagick_${component}_LIBRARY) |
Mark Young | 3f9e9d1 | 2016-01-26 09:29:29 -0700 | [diff] [blame] | 162 | SET(ImageMagick_${component}_FOUND TRUE PARENT_SCOPE) |
Mark Young | 5a0c0c2 | 2016-09-16 10:21:31 -0600 | [diff] [blame] | 163 | |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 164 | LIST(APPEND ImageMagick_INCLUDE_DIRS |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 165 | ${ImageMagick_${component}_INCLUDE_DIR} |
| 166 | ) |
Mark Young | 5a0c0c2 | 2016-09-16 10:21:31 -0600 | [diff] [blame] | 167 | |
| 168 | # Only add the path if it's not the special string "<NONE>" |
| 169 | IF(NOT path STREQUAL "<NONE>") |
| 170 | LIST(APPEND ImageMagick_INCLUDE_DIRS |
| 171 | ${ImageMagick_${component}_INCLUDE_DIR}/${path} |
| 172 | ) |
| 173 | ENDIF() |
| 174 | |
| 175 | # Add the architecture include path if it exists |
| 176 | IF (ImageMagick_${component}_ARCH_INCLUDE_DIR) |
Mark Young | 9345096 | 2016-01-26 11:27:09 -0700 | [diff] [blame] | 177 | LIST(APPEND ImageMagick_INCLUDE_DIRS |
| 178 | ${ImageMagick_${component}_ARCH_INCLUDE_DIR} |
| 179 | ) |
Mark Young | 5a0c0c2 | 2016-09-16 10:21:31 -0600 | [diff] [blame] | 180 | ENDIF() |
| 181 | |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 182 | LIST(REMOVE_DUPLICATES ImageMagick_INCLUDE_DIRS) |
| 183 | SET(ImageMagick_INCLUDE_DIRS ${ImageMagick_INCLUDE_DIRS} PARENT_SCOPE) |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 184 | |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 185 | LIST(APPEND ImageMagick_LIBRARIES |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 186 | ${ImageMagick_${component}_LIBRARY} |
| 187 | ) |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 188 | SET(ImageMagick_LIBRARIES ${ImageMagick_LIBRARIES} PARENT_SCOPE) |
Mark Young | 5a0c0c2 | 2016-09-16 10:21:31 -0600 | [diff] [blame] | 189 | ENDIF() |
Mark Young | 3f9e9d1 | 2016-01-26 09:29:29 -0700 | [diff] [blame] | 190 | |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 191 | ENDFUNCTION(FIND_IMAGEMAGICK_API) |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 192 | |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 193 | FUNCTION(FIND_IMAGEMAGICK_EXE component) |
| 194 | SET(_IMAGEMAGICK_EXECUTABLE |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 195 | ${ImageMagick_EXECUTABLE_DIR}/${component}${CMAKE_EXECUTABLE_SUFFIX}) |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 196 | IF(EXISTS ${_IMAGEMAGICK_EXECUTABLE}) |
| 197 | SET(ImageMagick_${component}_EXECUTABLE |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 198 | ${_IMAGEMAGICK_EXECUTABLE} |
| 199 | PARENT_SCOPE |
| 200 | ) |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 201 | SET(ImageMagick_${component}_FOUND TRUE PARENT_SCOPE) |
| 202 | ELSE(EXISTS ${_IMAGEMAGICK_EXECUTABLE}) |
| 203 | SET(ImageMagick_${component}_FOUND FALSE PARENT_SCOPE) |
| 204 | ENDIF(EXISTS ${_IMAGEMAGICK_EXECUTABLE}) |
| 205 | ENDFUNCTION(FIND_IMAGEMAGICK_EXE) |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 206 | |
| 207 | #--------------------------------------------------------------------- |
| 208 | # Start Actual Work |
| 209 | #--------------------------------------------------------------------- |
| 210 | FIND_REGISTRY() |
| 211 | |
| 212 | # Try to find a ImageMagick installation binary path. |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 213 | FIND_PATH(ImageMagick_EXECUTABLE_DIR |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 214 | NAMES mogrify${CMAKE_EXECUTABLE_SUFFIX} |
| 215 | PATHS |
| 216 | ${IMAGEMAGIC_REG_PATH} |
| 217 | DOC "Path to the ImageMagick binary directory." |
| 218 | NO_DEFAULT_PATH |
| 219 | ) |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 220 | FIND_PATH(ImageMagick_EXECUTABLE_DIR |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 221 | NAMES mogrify${CMAKE_EXECUTABLE_SUFFIX} |
| 222 | ) |
| 223 | |
| 224 | # Find each component. Search for all tools in same dir |
| 225 | # <ImageMagick_EXECUTABLE_DIR>; otherwise they should be found |
| 226 | # independently and not in a cohesive module such as this one. |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 227 | SET(ImageMagick_FOUND TRUE) |
| 228 | FOREACH(component ${ImageMagick_FIND_COMPONENTS} |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 229 | # DEPRECATED: forced components for backward compatibility |
| 230 | convert mogrify import montage composite |
| 231 | ) |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 232 | |
Mark Young | 5a0c0c2 | 2016-09-16 10:21:31 -0600 | [diff] [blame] | 233 | IF(component STREQUAL "Magick++") |
Mike Stroyan | 4cd3dfd | 2016-09-20 09:05:28 -0600 | [diff] [blame] | 234 | # unset cached variable that assumes header parameter never changes |
| 235 | UNSET(ImageMagick_MagickWand_INCLUDE_DIR CACHE) |
Mark Young | 5a0c0c2 | 2016-09-16 10:21:31 -0600 | [diff] [blame] | 236 | |
| 237 | # Try top folder first |
| 238 | FIND_IMAGEMAGICK_API(Magick++ <NONE> Magick++.h |
| 239 | Magick++ CORE_RL_Magick++_ Magick++-6.Q16 Magick++-Q16 Magick++-6.Q8 Magick++-Q8 Magick++-6.Q16HDRI Magick++-Q16HDRI Magick++-6.Q8HDRI Magick++-Q8HDRI |
| 240 | ) |
| 241 | |
| 242 | IF(NOT ImageMagick_Magick++_INCLUDE_DIR OR NOT ImageMagick_Magick++_LIBRARY) |
| 243 | # Look for Magick++.h, in the magick++ sub-folder |
| 244 | FIND_IMAGEMAGICK_API(Magick++ magick++ magick++/Magick++.h |
| 245 | Magick++ CORE_RL_Magick++_ Magick++-6.Q16 Magick++-Q16 Magick++-6.Q8 Magick++-Q8 Magick++-6.Q16HDRI Magick++-Q16HDRI Magick++-6.Q8HDRI Magick++-Q8HDRI |
| 246 | ) |
| 247 | ENDIF() |
| 248 | |
Mike Stroyan | 03c37e6 | 2016-09-20 09:08:18 -0600 | [diff] [blame] | 249 | IF(NOT ImageMagick_Magick++_INCLUDE_DIR OR NOT ImageMagick_Magick++_LIBRARY) |
Mark Young | 5a0c0c2 | 2016-09-16 10:21:31 -0600 | [diff] [blame] | 250 | # Look for Magick++.h, in the magick sub-folder |
| 251 | FIND_IMAGEMAGICK_API(Magick++ magick magick/Magick++.h |
| 252 | Magick++ CORE_RL_Magick++_ Magick++-6.Q16 Magick++-Q16 Magick++-6.Q8 Magick++-Q8 Magick++-6.Q16HDRI Magick++-Q16HDRI Magick++-6.Q8HDRI Magick++-Q8HDRI |
| 253 | ) |
| 254 | ENDIF() |
| 255 | |
| 256 | ELSEIF(component STREQUAL "MagickWand") |
Mike Stroyan | 4cd3dfd | 2016-09-20 09:05:28 -0600 | [diff] [blame] | 257 | # unset cached variable that assumes header parameter never changes |
| 258 | UNSET(ImageMagick_MagickWand_INCLUDE_DIR CACHE) |
Mark Young | 5a0c0c2 | 2016-09-16 10:21:31 -0600 | [diff] [blame] | 259 | |
| 260 | # Try top folder first |
| 261 | FIND_IMAGEMAGICK_API(MagickWand <NONE> MagickWand.h |
| 262 | Wand MagickWand CORE_RL_wand_ CORE_RL_MagickWand_ MagickWand-6.Q16 MagickWand-Q16 MagickWand-6.Q8 MagickWand-Q8 MagickWand-6.Q16HDRI MagickWand-Q16HDRI MagickWand-6.Q8HDRI MagickWand-Q8HDRI |
| 263 | ) |
| 264 | |
| 265 | IF(NOT ImageMagick_MagickWand_INCLUDE_DIR OR NOT ImageMagick_MagickWand_LIBRARY) |
| 266 | # Look for MagickWand.h in the wand sub-folder |
| 267 | FIND_IMAGEMAGICK_API(MagickWand wand wand/MagickWand.h |
| 268 | Wand MagickWand CORE_RL_wand_ CORE_RL_MagickWand_ MagickWand-6.Q16 MagickWand-Q16 MagickWand-6.Q8 MagickWand-Q8 MagickWand-6.Q16HDRI MagickWand-Q16HDRI MagickWand-6.Q8HDRI MagickWand-Q8HDRI |
| 269 | ) |
| 270 | ENDIF() |
| 271 | |
| 272 | IF(NOT ImageMagick_MagickWand_INCLUDE_DIR OR NOT ImageMagick_MagickWand_LIBRARY) |
| 273 | # Look for MagickWand.h he MagickWand sub-folder |
| 274 | FIND_IMAGEMAGICK_API(MagickWand MagickWand MagickWand/MagickWand.h |
| 275 | Wand MagickWand CORE_RL_wand_ CORE_RL_MagickWand_ MagickWand-6.Q16 MagickWand-Q16 MagickWand-6.Q8 MagickWand-Q8 MagickWand-6.Q16HDRI MagickWand-Q16HDRI MagickWand-6.Q8HDRI MagickWand-Q8HDRI |
| 276 | ) |
| 277 | ENDIF() |
| 278 | |
| 279 | IF(NOT ImageMagick_MagickWand_INCLUDE_DIR OR NOT ImageMagick_MagickWand_LIBRARY) |
| 280 | # Look for MagickWand.h he magick sub-folder |
| 281 | FIND_IMAGEMAGICK_API(MagickWand magick magick/MagickWand.h |
| 282 | Wand MagickWand CORE_RL_wand_ CORE_RL_MagickWand_ MagickWand-6.Q16 MagickWand-Q16 MagickWand-6.Q8 MagickWand-Q8 MagickWand-6.Q16HDRI MagickWand-Q16HDRI MagickWand-6.Q8HDRI MagickWand-Q8HDRI |
| 283 | ) |
| 284 | ENDIF() |
| 285 | |
| 286 | ELSEIF(component STREQUAL "MagickCore") |
| 287 | |
| 288 | # Try top folder first |
| 289 | FIND_IMAGEMAGICK_API(MagickCore <NONE> MagickCore.h |
| 290 | Magick MagickCore CORE_RL_magick_ CORE_RL_MagickCore_ MagickCore-6.Q16 MagickCore-Q16 MagickCore-6.Q8 MagickCore-Q8 MagickCore-6.Q16HDRI MagickCore-Q16HDRI MagickCore-6.Q8HDRI MagickCore-Q8HDRI |
| 291 | ) |
| 292 | |
| 293 | IF(NOT ImageMagick_MagickCore_INCLUDE_DIR OR NOT ImageMagick_MagickCore_LIBRARY) |
| 294 | # Look for MagickCore.h, in the MagickCore sub-folder |
| 295 | FIND_IMAGEMAGICK_API(MagickCore MagickCore MagickCore/MagickCore.h |
| 296 | Magick MagickCore CORE_RL_magick_ CORE_RL_MagickCore_ MagickCore-6.Q16 MagickCore-Q16 MagickCore-6.Q8 MagickCore-Q8 MagickCore-6.Q16HDRI MagickCore-Q16HDRI MagickCore-6.Q8HDRI MagickCore-Q8HDRI |
| 297 | ) |
| 298 | ENDIF() |
| 299 | |
| 300 | IF(NOT ImageMagick_MagickCore_INCLUDE_DIR OR NOT ImageMagick_MagickCore_LIBRARY) |
| 301 | # Look for MagickCore.h, in the magick sub-folder |
| 302 | FIND_IMAGEMAGICK_API(MagickCore magick magick/MagickCore.h |
| 303 | Magick MagickCore CORE_RL_magick_ CORE_RL_MagickCore_ MagickCore-6.Q16 MagickCore-Q16 MagickCore-6.Q8 MagickCore-Q8 MagickCore-6.Q16HDRI MagickCore-Q16HDRI MagickCore-6.Q8HDRI MagickCore-Q8HDRI |
| 304 | ) |
| 305 | ENDIF() |
| 306 | |
| 307 | ENDIF() |
| 308 | |
| 309 | IF(NOT ImageMagick_${component}_FOUND) |
| 310 | |
| 311 | LIST(FIND ImageMagick_FIND_COMPONENTS ${component} is_requested) |
| 312 | IF(is_requested GREATER -1) |
| 313 | SET(ImageMagick_FOUND FALSE) |
| 314 | ENDIF(is_requested GREATER -1) |
| 315 | |
| 316 | ENDIF(NOT ImageMagick_${component}_FOUND) |
| 317 | ENDFOREACH(component) |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 318 | |
| 319 | #--------------------------------------------------------------------- |
| 320 | # Standard Package Output |
| 321 | #--------------------------------------------------------------------- |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 322 | INCLUDE(FindPackageHandleStandardArgs) |
| 323 | FIND_PACKAGE_HANDLE_STANDARD_ARGS( |
| 324 | ImageMagick DEFAULT_MSG ImageMagick_FOUND |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 325 | ) |
| 326 | # Maintain consistency with all other variables. |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 327 | SET(ImageMagick_FOUND ${IMAGEMAGICK_FOUND}) |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 328 | |
| 329 | #--------------------------------------------------------------------- |
| 330 | # DEPRECATED: Setting variables for backward compatibility. |
| 331 | #--------------------------------------------------------------------- |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 332 | SET(IMAGEMAGICK_BINARY_PATH ${ImageMagick_EXECUTABLE_DIR} |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 333 | CACHE PATH "Path to the ImageMagick binary directory.") |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 334 | SET(IMAGEMAGICK_CONVERT_EXECUTABLE ${ImageMagick_convert_EXECUTABLE} |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 335 | CACHE FILEPATH "Path to ImageMagick's convert executable.") |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 336 | SET(IMAGEMAGICK_MOGRIFY_EXECUTABLE ${ImageMagick_mogrify_EXECUTABLE} |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 337 | CACHE FILEPATH "Path to ImageMagick's mogrify executable.") |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 338 | SET(IMAGEMAGICK_IMPORT_EXECUTABLE ${ImageMagick_import_EXECUTABLE} |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 339 | CACHE FILEPATH "Path to ImageMagick's import executable.") |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 340 | SET(IMAGEMAGICK_MONTAGE_EXECUTABLE ${ImageMagick_montage_EXECUTABLE} |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 341 | CACHE FILEPATH "Path to ImageMagick's montage executable.") |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 342 | SET(IMAGEMAGICK_COMPOSITE_EXECUTABLE ${ImageMagick_composite_EXECUTABLE} |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 343 | CACHE FILEPATH "Path to ImageMagick's composite executable.") |
Mark Young | 5a0c0c2 | 2016-09-16 10:21:31 -0600 | [diff] [blame] | 344 | |
Mark Young | b5ed985 | 2016-01-25 16:02:08 -0700 | [diff] [blame] | 345 | MARK_AS_ADVANCED( |
Mark Young | 93ecb1d | 2016-01-13 13:47:16 -0700 | [diff] [blame] | 346 | IMAGEMAGICK_BINARY_PATH |
| 347 | IMAGEMAGICK_CONVERT_EXECUTABLE |
| 348 | IMAGEMAGICK_MOGRIFY_EXECUTABLE |
| 349 | IMAGEMAGICK_IMPORT_EXECUTABLE |
| 350 | IMAGEMAGICK_MONTAGE_EXECUTABLE |
| 351 | IMAGEMAGICK_COMPOSITE_EXECUTABLE |
| 352 | ) |