diff options
author | Spp <spp@jorge.gr> | 2012-11-10 13:15:09 +0100 |
---|---|---|
committer | Spp <spp@jorge.gr> | 2012-11-10 13:15:09 +0100 |
commit | a91d59f37c9e3e8261aabf06fe12ab0c474516f4 (patch) | |
tree | 1c6a8ecf452bc97d0b5e436c141cb8e06ded76c8 | |
parent | 2d0dddfcbe26b2febf7e9418c519f8a7fde64c1e (diff) |
Core/Build: Restore FindOpenSSL, even when it's provided by cmake, this file also provides newbie-check (warns if you trying to use wrong libs)
- Also, apply the hack needed to make g3dlite compile in OS X
-rw-r--r-- | cmake/macros/FindOpenSSL.cmake | 180 | ||||
-rw-r--r-- | dep/g3dlite/include/G3D/platform.h | 2 |
2 files changed, 181 insertions, 1 deletions
diff --git a/cmake/macros/FindOpenSSL.cmake b/cmake/macros/FindOpenSSL.cmake new file mode 100644 index 00000000000..245a91d4199 --- /dev/null +++ b/cmake/macros/FindOpenSSL.cmake @@ -0,0 +1,180 @@ +# - Try to find the OpenSSL encryption library +# Once done this will define +# +# OPENSSL_ROOT_DIR - Set this variable to the root installation of OpenSSL +# +# Read-Only variables: +# OPENSSL_FOUND - system has the OpenSSL library +# OPENSSL_INCLUDE_DIR - the OpenSSL include directory +# OPENSSL_LIBRARIES - The libraries needed to use OpenSSL + +#============================================================================= +# Copyright 2006-2009 Kitware, Inc. +# Copyright 2006 Alexander Neundorf <neundorf@kde.org> +# Copyright 2009-2010 Mathieu Malaterre <mathieu.malaterre@gmail.com> +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distributed this file outside of CMake, substitute the full +# License text for the above reference.) + +# http://www.slproweb.com/products/Win32OpenSSL.html + +SET(_OPENSSL_ROOT_HINTS + "[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]" + ) + +IF(PLATFORM EQUAL 64) + SET(_OPENSSL_ROOT_PATHS + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (64-bit)_is1;InstallLocation]" + "C:/OpenSSL-Win64/" + "C:/OpenSSL/" + ) +ELSE() + SET(_OPENSSL_ROOT_PATHS + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;InstallLocation]" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;InstallLocation]" + "C:/OpenSSL/" + ) +ENDIF() + +FIND_PATH(OPENSSL_ROOT_DIR + NAMES + include/openssl/ssl.h + HINTS + ${_OPENSSL_ROOT_HINTS} + PATHS + ${_OPENSSL_ROOT_PATHS} +) +MARK_AS_ADVANCED(OPENSSL_ROOT_DIR) + +# Re-use the previous path: +FIND_PATH(OPENSSL_INCLUDE_DIR openssl/ssl.h + ${OPENSSL_ROOT_DIR}/include +) + +IF(WIN32 AND NOT CYGWIN) + # MINGW should go here too + IF(MSVC) + # /MD and /MDd are the standard values - if someone wants to use + # others, the libnames have to change here too + # use also ssl and ssleay32 in debug as fallback for openssl < 0.9.8b + # TODO: handle /MT and static lib + # In Visual C++ naming convention each of these four kinds of Windows libraries has it's standard suffix: + # * MD for dynamic-release + # * MDd for dynamic-debug + # * MT for static-release + # * MTd for static-debug + + # Implementation details: + # We are using the libraries located in the VC subdir instead of the parent directory eventhough : + # libeay32MD.lib is identical to ../libeay32.lib, and + # ssleay32MD.lib is identical to ../ssleay32.lib + + FIND_LIBRARY(LIB_EAY_DEBUG + NAMES + libeay32MDd libeay32 + PATHS + ${OPENSSL_ROOT_DIR}/lib/VC + ) + + FIND_LIBRARY(LIB_EAY_RELEASE + NAMES + libeay32MD libeay32 + PATHS + ${OPENSSL_ROOT_DIR}/lib/VC + ) + + FIND_LIBRARY(SSL_EAY_DEBUG + NAMES + ssleay32MDd ssleay32 ssl + PATHS + ${OPENSSL_ROOT_DIR}/lib/VC + ) + + FIND_LIBRARY(SSL_EAY_RELEASE + NAMES + ssleay32MD ssleay32 ssl + PATHS + ${OPENSSL_ROOT_DIR}/lib/VC + ) + + if( CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE ) + set( OPENSSL_LIBRARIES + optimized ${SSL_EAY_RELEASE} ${LIB_EAY_RELEASE} + debug ${SSL_EAY_DEBUG} ${LIB_EAY_DEBUG} + ) + else() + set( OPENSSL_LIBRARIES + ${SSL_EAY_RELEASE} + ${LIB_EAY_RELEASE} + ) + endif() + + MARK_AS_ADVANCED(SSL_EAY_DEBUG SSL_EAY_RELEASE LIB_EAY_DEBUG LIB_EAY_RELEASE) + ELSEIF(MINGW) + + # same player, for MingW + FIND_LIBRARY(LIB_EAY + NAMES + libeay32 + PATHS + ${OPENSSL_ROOT_DIR}/lib/MinGW + ) + + FIND_LIBRARY(SSL_EAY NAMES + NAMES + ssleay32 + PATHS + ${OPENSSL_ROOT_DIR}/lib/MinGW + ) + + MARK_AS_ADVANCED(SSL_EAY LIB_EAY) + + set( OPENSSL_LIBRARIES + ${SSL_EAY} + ${LIB_EAY} + ) + ELSE(MSVC) + # Not sure what to pick for -say- intel, let's use the toplevel ones and hope someone report issues: + FIND_LIBRARY(LIB_EAY + NAMES + libeay32 + PATHS + ${OPENSSL_ROOT_DIR}/lib + ${OPENSSL_ROOT_DIR}/lib/VC + ) + + FIND_LIBRARY(SSL_EAY + NAMES + ssleay32 + PATHS + ${OPENSSL_ROOT_DIR}/lib + ${OPENSSL_ROOT_DIR}/lib/VC + ) + MARK_AS_ADVANCED(SSL_EAY LIB_EAY) + + SET( OPENSSL_LIBRARIES ${SSL_EAY} ${LIB_EAY} ) + ENDIF(MSVC) +ELSE(WIN32 AND NOT CYGWIN) + FIND_LIBRARY(OPENSSL_SSL_LIBRARIES NAMES ssl ssleay32 ssleay32MD) + FIND_LIBRARY(OPENSSL_CRYPTO_LIBRARIES NAMES crypto) + MARK_AS_ADVANCED(OPENSSL_CRYPTO_LIBRARIES OPENSSL_SSL_LIBRARIES) + + SET(OPENSSL_LIBRARIES ${OPENSSL_SSL_LIBRARIES} ${OPENSSL_CRYPTO_LIBRARIES}) + +ENDIF(WIN32 AND NOT CYGWIN) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(OpenSSL DEFAULT_MSG + OPENSSL_LIBRARIES + OPENSSL_INCLUDE_DIR +) + +MARK_AS_ADVANCED(OPENSSL_INCLUDE_DIR OPENSSL_LIBRARIES) diff --git a/dep/g3dlite/include/G3D/platform.h b/dep/g3dlite/include/G3D/platform.h index c8d2f0b6534..11093f4a6ce 100644 --- a/dep/g3dlite/include/G3D/platform.h +++ b/dep/g3dlite/include/G3D/platform.h @@ -57,7 +57,7 @@ #elif defined(__linux__) #define G3D_LINUX #elif defined(__APPLE__) - #define G3D_OSX + #define G3D_LINUX // Prevent OS X fp.h header from being included; it defines // pi as a constant, which creates a conflict with G3D |