From ccf961756eb149614eb6cd0c433d9553bfa87c23 Mon Sep 17 00:00:00 2001 From: Mark Young Date: Fri, 22 Jan 2016 15:06:43 -0700 Subject: Loader: Fix 32-bit Cmake detection of ImageMagick Older versions of Cmake didn't like the newer script. --- cmake/FindImageMagick.cmake | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/cmake/FindImageMagick.cmake b/cmake/FindImageMagick.cmake index c0b88518..f1552b1c 100644 --- a/cmake/FindImageMagick.cmake +++ b/cmake/FindImageMagick.cmake @@ -101,10 +101,10 @@ function(FIND_REGISTRY) if (WIN32) # If a 64-bit compile, it can only appear in "[HKLM]\\software\\ImageMagick" if (CMAKE_CL_64) - - set (IMAGEMAGIC_REG_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ImageMagick\\Current;BinPath]" PARENT_SCOPE) - set (IMAGEMAGIC_REGINCLUDE_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ImageMagick\\Current;BinPath]/include" PARENT_SCOPE) - set (IMAGEMAGIC_REGLIB_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ImageMagick\\Current;BinPath]/lib" PARENT_SCOPE) + + GET_FILENAME_COMPONENT(IM_BIN_PATH + [HKEY_LOCAL_MACHINE\\SOFTWARE\\ImageMagick\\Current;BinPath] + ABSOLUTE CACHE) else() @@ -115,23 +115,28 @@ function(FIND_REGISTRY) [HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\ImageMagick\\Current;BinPath] PATH) - # If a 32-bit compile on a 64-bit Windows, it appears in "[HKLM]\\software\\WOW6432Node\\ImageMagick" - if (TESTING STREQUAL "C:/Program Files (x86)") + # If the WOW6432Node reg string returns empty, assume 32-bit OS, and look in the standard reg path. + if (TESTING STREQUAL "") - set (IMAGEMAGIC_REG_PATH [HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\ImageMagick\\Current;BinPath] PARENT_SCOPE) - set (IMAGEMAGIC_REGINCLUDE_PATH [HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\ImageMagick\\Current;BinPath]/include PARENT_SCOPE) - set (IMAGEMAGIC_REGLIB_PATH [HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\ImageMagick\\Current;BinPath]/lib PARENT_SCOPE) - - # If a 32-bit compile on a 32-bit Windows, it appears in "[HKLM]\\software\\ImageMagick" + GET_FILENAME_COMPONENT(IM_BIN_PATH + [HKEY_LOCAL_MACHINE\\SOFTWARE\\ImageMagick\\Current;BinPath] + ABSOLUTE CACHE) + + # Otherwise, the WOW6432Node returned a string, assume 32-bit build on 64-bit OS and use that string. else() - - set (IMAGEMAGIC_REG_PATH [HKEY_LOCAL_MACHINE\\SOFTWARE\\ImageMagick\\Current;BinPath] PARENT_SCOPE) - set (IMAGEMAGIC_REGINCLUDE_PATH [HKEY_LOCAL_MACHINE\\SOFTWARE\\ImageMagick\\Current;BinPath]/include PARENT_SCOPE) - set (IMAGEMAGIC_REGLIB_PATH [HKEY_LOCAL_MACHINE\\SOFTWARE\\ImageMagick\\Current;BinPath]/lib PARENT_SCOPE) + + GET_FILENAME_COMPONENT(IM_BIN_PATH + [HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\ImageMagick\\Current;BinPath] + ABSOLUTE CACHE) endif() endif() + + set (IMAGEMAGIC_REG_PATH ${IM_BIN_PATH} PARENT_SCOPE) + set (IMAGEMAGIC_REGINCLUDE_PATH ${IM_BIN_PATH}/include PARENT_SCOPE) + set (IMAGEMAGIC_REGLIB_PATH ${IM_BIN_PATH}/lib PARENT_SCOPE) + else() message(WARNING "In FIND_REGISTRY: LINUX_BUILD") -- cgit v1.2.3