From 135a263fb2218badef145343b5681e69ed616c1b Mon Sep 17 00:00:00 2001 From: Rashad Kanavath <rashad.kanavath@c-s.fr> Date: Thu, 18 Jun 2015 17:14:49 +0200 Subject: [PATCH] ENH: add openssl --- SuperBuild/CMake/External_curl.cmake | 3 ++ SuperBuild/CMake/External_openssl.cmake | 58 +++++++++++++++++++++++++ SuperBuild/CMakeLists.txt | 5 +++ 3 files changed, 66 insertions(+) create mode 100644 SuperBuild/CMake/External_openssl.cmake diff --git a/SuperBuild/CMake/External_curl.cmake b/SuperBuild/CMake/External_curl.cmake index b9cbc0bd07..c6fba774ce 100644 --- a/SuperBuild/CMake/External_curl.cmake +++ b/SuperBuild/CMake/External_curl.cmake @@ -15,6 +15,9 @@ else() # declare dependencies set(${proj}_DEPENDENCIES ZLIB) + if(NOT USE_SYSTEM_OPENSSL) + list(APPEND ${proj}_DEPENDENCIES OPENSSL) + endif() INCLUDE_SUPERBUILD_DEPENDENCIES(${${proj}_DEPENDENCIES}) # set proj back to its original value set(proj CURL) diff --git a/SuperBuild/CMake/External_openssl.cmake b/SuperBuild/CMake/External_openssl.cmake new file mode 100644 index 0000000000..a4c908a4e3 --- /dev/null +++ b/SuperBuild/CMake/External_openssl.cmake @@ -0,0 +1,58 @@ +set(proj OPENSSL) + +if(NOT __EXTERNAL_${proj}__) +set(__EXTERNAL_${proj}__ 1) + +message(STATUS "Setup OpenSSL ...") + +if(USE_SYSTEM_OPENSSL) + find_package ( OPENSSL ) + add_custom_target(${proj}) + message(STATUS " Using OpenSSL system version") +else() + SETUP_SUPERBUILD(PROJECT ${proj}) + message(STATUS " Using OpenSSL SuperBuild version") + + # declare dependencies + set(${proj}_DEPENDENCIES ZLIB) + INCLUDE_SUPERBUILD_DEPENDENCIES(${${proj}_DEPENDENCIES}) + # 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(MSVC) + message(FATAL_ERROR "No build rules added yet.") + else(UNIX) + ExternalProject_Add(${proj} + PREFIX ${proj} + DEPENDS ${${proj}_DEPENDENCIES} + URL "http://openssl.org/source/openssl-1.0.2c.tar.gz" + URL_MD5 8c8d81a9ae7005276e486702edbcd4b6 + 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} ./Configure ${OPENSSL_BUILD_ARCH} + --prefix=${SB_INSTALL_PREFIX} shared zlib zlib-dynamic -I${SB_INSTALL_PREFIX}/include -L${SB_INSTALL_PREFIX}/lib + BUILD_COMMAND $(MAKE) + INSTALL_COMMAND $(MAKE) install + ) + endif() + + set(_SB_${proj}_INCLUDE_DIR ${SB_INSTALL_PREFIX}/include) + if(WIN32) + message(FATAL_ERROR "No build rules added yet.") + elseif(UNIX) + set(_SB_${proj}_LIBRARY ${SB_INSTALL_PREFIX}/lib/libssl${CMAKE_SHARED_LIBRARY_SUFFIX}) + endif() + +endif() +endif() + + + + diff --git a/SuperBuild/CMakeLists.txt b/SuperBuild/CMakeLists.txt index f6b42039e0..d7d7ffd772 100644 --- a/SuperBuild/CMakeLists.txt +++ b/SuperBuild/CMakeLists.txt @@ -102,6 +102,11 @@ SETUP_SYSTEM_LIBRARY(PROJECT OPENJPEG DEFAULT OFF) SETUP_SYSTEM_LIBRARY(PROJECT BOOST DEFAULT ON) SETUP_SYSTEM_LIBRARY(PROJECT LIBKML DEFAULT OFF) SETUP_SYSTEM_LIBRARY(PROJECT CURL DEFAULT ON) +if(WIN32) + SETUP_SYSTEM_LIBRARY(PROJECT OPENSSL DEFAULT OFF) +else() + SETUP_SYSTEM_LIBRARY(PROJECT OPENSSL DEFAULT ON) +endif() SETUP_SYSTEM_LIBRARY(PROJECT GDAL DEFAULT OFF) SETUP_SYSTEM_LIBRARY(PROJECT FFTW DEFAULT OFF) SETUP_SYSTEM_LIBRARY(PROJECT ITK DEFAULT OFF) -- GitLab