浏览代码

FindOpenSSL: cleanup path hints

-only use Windows-specific paths on Windows
-recode the contents of $ENV{PROGRAMFILES} to be a valid CMake path before
 using it
Rolf Eike Beer 13 年之前
父节点
当前提交
fc798ed64f
共有 1 个文件被更改,包括 28 次插入19 次删除
  1. 28 19
      Modules/FindOpenSSL.cmake

+ 28 - 19
Modules/FindOpenSSL.cmake

@@ -29,25 +29,34 @@ if (UNIX)
   pkg_check_modules(_OPENSSL QUIET openssl)
 endif (UNIX)
 
-# http://www.slproweb.com/products/Win32OpenSSL.html
-SET(_OPENSSL_ROOT_HINTS
-  ${OPENSSL_ROOT_DIR}
-  "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;Inno Setup: App Path]"
-  "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (64-bit)_is1;Inno Setup: App Path]"
-  ENV OPENSSL_ROOT_DIR
-  )
-SET(_OPENSSL_ROOT_PATHS
-  "$ENV{PROGRAMFILES}/OpenSSL"
-  "$ENV{PROGRAMFILES}/OpenSSL-Win32"
-  "$ENV{PROGRAMFILES}/OpenSSL-Win64"
-  "C:/OpenSSL/"
-  "C:/OpenSSL-Win32/"
-  "C:/OpenSSL-Win64/"
-  )
-SET(_OPENSSL_ROOT_HINTS_AND_PATHS
-  HINTS ${_OPENSSL_ROOT_HINTS}
-  PATHS ${_OPENSSL_ROOT_PATHS}
-  )
+IF (WIN32)
+  # http://www.slproweb.com/products/Win32OpenSSL.html
+  SET(_OPENSSL_ROOT_HINTS
+    ${OPENSSL_ROOT_DIR}
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;Inno Setup: App Path]"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (64-bit)_is1;Inno Setup: App Path]"
+    ENV OPENSSL_ROOT_DIR
+    )
+  FILE(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _programfiles)
+  SET(_OPENSSL_ROOT_PATHS
+    "${_programfiles}/OpenSSL"
+    "${_programfiles}/OpenSSL-Win32"
+    "${_programfiles}/OpenSSL-Win64"
+    "C:/OpenSSL/"
+    "C:/OpenSSL-Win32/"
+    "C:/OpenSSL-Win64/"
+    )
+  UNSET(_programfiles)
+  SET(_OPENSSL_ROOT_HINTS_AND_PATHS
+    HINTS ${_OPENSSL_ROOT_HINTS}
+    PATHS ${_OPENSSL_ROOT_PATHS}
+    )
+ELSE ()
+  SET(_OPENSSL_ROOT_HINTS
+    ${OPENSSL_ROOT_DIR}
+    ENV OPENSSL_ROOT_DIR
+    )
+ENDIF ()
 
 FIND_PATH(OPENSSL_INCLUDE_DIR
   NAMES