diff --git a/SuperBuild/CMake/External_curl.cmake b/SuperBuild/CMake/External_curl.cmake index b9cbc0bd072175a953699f9e7a22ec49ebb71a21..c6fba774cea0c5e70e3435cb7940479c88263a88 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 0000000000000000000000000000000000000000..a4c908a4e32b2ab472da64f0162eb3451d4eff2d --- /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 f6b42039e01ed3079fdba2e82f1e618dab78914a..d7d7ffd77293089cf064b2b6031fc42e3eb670c0 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)