aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSpp <spp@jorge.gr>2012-11-10 13:15:09 +0100
committerSpp <spp@jorge.gr>2012-11-10 13:15:09 +0100
commita91d59f37c9e3e8261aabf06fe12ab0c474516f4 (patch)
tree1c6a8ecf452bc97d0b5e436c141cb8e06ded76c8
parent2d0dddfcbe26b2febf7e9418c519f8a7fde64c1e (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.cmake180
-rw-r--r--dep/g3dlite/include/G3D/platform.h2
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