From a624794bef4bcae12465ef78bc7490fee167bdb7 Mon Sep 17 00:00:00 2001
From: Rashad Kanavath <rashad.kanavath@c-s.fr>
Date: Fri, 26 Jun 2015 15:28:30 +0200
Subject: [PATCH] SuperBuild: build openssl on windows

---
 SuperBuild/CMake/External_openssl.cmake | 35 +++++++++++++++++++------
 1 file changed, 27 insertions(+), 8 deletions(-)

diff --git a/SuperBuild/CMake/External_openssl.cmake b/SuperBuild/CMake/External_openssl.cmake
index a4c908a4e3..bdcf4cf119 100644
--- a/SuperBuild/CMake/External_openssl.cmake
+++ b/SuperBuild/CMake/External_openssl.cmake
@@ -19,19 +19,38 @@ else()
   # set proj back to its original value
   set(proj OPENSSL)
 
-  set(OPENSSL_BUILD_ARCH "linux-x32")
-  if(CMAKE_SIZEOF_VOID_P EQUAL 8)
-    set(OPENSSL_BUILD_ARCH "linux-x86_64")
-  endif()
+  if(WIN32)
+    set(OPENSSL_BUILD_ARCH "linux-x32")
+    set(OPENSSL_BUILD_ARCH "VC-WIN32")
+    if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+      set(OPENSSL_BUILD_ARCH "linux-x86_64")
+      set(OPENSSL_BUILD_ARCH "VC-WIN64A")
+    endif()
+  endif() 
   
   if(MSVC)
-    message(FATAL_ERROR "No build rules added yet.")  
+      STRING(REGEX REPLACE "/$" "" CMAKE_WIN_INSTALL_PREFIX ${SB_INSTALL_PREFIX})    
+    STRING(REGEX REPLACE "/" "\\\\" CMAKE_WIN_INSTALL_PREFIX ${CMAKE_WIN_INSTALL_PREFIX})
+    ExternalProject_Add(${proj}
+        PREFIX ${proj}
+        URL "https://github.com/openssl/openssl/archive/OpenSSL_1_0_1e.zip"
+        URL_MD5 de0f06b07dad7ec8b220336530be1feb
+        DEPENDS ${${proj}_DEPENDENCIES}
+        BINARY_DIR ${OPENSSL_SB_BUILD_DIR}
+        INSTALL_DIR ${SB_INSTALL_PREFIX}
+        DOWNLOAD_DIR ${DOWNLOAD_LOCATION}
+         PATCH_COMMAND  ${CMAKE_COMMAND} -E copy_directory ${OPENSSL_SB_SRC} ${OPENSSL_SB_BUILD_DIR}
+        CONFIGURE_COMMAND ${CMAKE_COMMAND} -E chdir ${OPENSSL_SB_BUILD_DIR} perl Configure ${OPENSSL_BUILD_ARCH} no-asm  --prefix=${CMAKE_WIN_INSTALL_PREFIX} --openssldir=${CMAKE_WIN_INSTALL_PREFIX}
+      BUILD_COMMAND ms/do_ms.bat
+      INSTALL_COMMAND nmake -f ms/ntdll.mak install
+    )
+    
   else(UNIX)
     ExternalProject_Add(${proj}
       PREFIX ${proj}
       DEPENDS ${${proj}_DEPENDENCIES}
-      URL "http://openssl.org/source/openssl-1.0.2c.tar.gz"
-      URL_MD5 8c8d81a9ae7005276e486702edbcd4b6
+      URL "https://github.com/openssl/openssl/archive/OpenSSL_1_0_1e.zip"
+      URL_MD5 de0f06b07dad7ec8b220336530be1feb
       BINARY_DIR ${OPENSSL_SB_BUILD_DIR}
       INSTALL_DIR ${SB_INSTALL_PREFIX}
       DOWNLOAD_DIR ${DOWNLOAD_LOCATION}
@@ -45,7 +64,7 @@ else()
   
   set(_SB_${proj}_INCLUDE_DIR ${SB_INSTALL_PREFIX}/include)
   if(WIN32)
-    message(FATAL_ERROR "No build rules added yet.")  
+    set(_SB_${proj}_LIBRARY ${SB_INSTALL_PREFIX}/lib/libcurl.lib)
   elseif(UNIX)
     set(_SB_${proj}_LIBRARY ${SB_INSTALL_PREFIX}/lib/libssl${CMAKE_SHARED_LIBRARY_SUFFIX})
   endif()
-- 
GitLab