mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-24 15:01:16 +01:00
Add a check for a shared polarssl library. This checks to see that the
system version is new enough, and is compiled with havege support.
This commit is contained in:
parent
6b1c8f9d17
commit
eb8e03fab5
@ -602,10 +602,17 @@ if(USE_UPNP)
|
|||||||
add_definitions(-DUSE_UPNP)
|
add_definitions(-DUSE_UPNP)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin" AND NOT ANDROID)
|
||||||
|
include(FindPolarSSL)
|
||||||
|
endif()
|
||||||
|
if(POLARSSL_FOUND AND POLARSSL_WORKS)
|
||||||
|
message("Using shared PolarSSL")
|
||||||
|
include_directories(${POLARSSL_INCLUDE_DIR})
|
||||||
|
else()
|
||||||
message("Using PolarSSL from Externals")
|
message("Using PolarSSL from Externals")
|
||||||
add_subdirectory(Externals/polarssl/)
|
add_subdirectory(Externals/polarssl/)
|
||||||
include_directories(Externals/polarssl/include)
|
include_directories(Externals/polarssl/include)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin" AND NOT ANDROID)
|
if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin" AND NOT ANDROID)
|
||||||
check_lib(SOIL SOIL SOIL/SOIL.h QUIET)
|
check_lib(SOIL SOIL SOIL/SOIL.h QUIET)
|
||||||
|
59
CMakeTests/FindPolarSSL.cmake
Normal file
59
CMakeTests/FindPolarSSL.cmake
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
# Locate polarssl library
|
||||||
|
# This module defines
|
||||||
|
# POLARSSL_FOUND
|
||||||
|
# POLARSSL_LIBRARY
|
||||||
|
# POLARSSL_INCLUDE_DIR
|
||||||
|
# POLARSSL_WORKS, this is true if polarssl is found and contains the methods
|
||||||
|
# needed by dolphin-emu
|
||||||
|
|
||||||
|
if(POLARSSL_INCLUDE_DIR AND POLARSSL_LIBRARY)
|
||||||
|
# Already in cache, be silent
|
||||||
|
set(POLARSSL_FIND_QUIETLY TRUE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_path(POLARSSL_INCLUDE_DIR polarssl/ssl.h)
|
||||||
|
find_library(POLARSSL_LIBRARY polarssl)
|
||||||
|
|
||||||
|
if (POLARSSL_INCLUDE_DIR AND POLARSSL_LIBRARY)
|
||||||
|
set (POLARSSL_FOUND TRUE)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (POLARSSL_FOUND)
|
||||||
|
if (NOT POLARSSL_FIND_QUIETLY)
|
||||||
|
message (STATUS "Found the polarssl libraries at ${POLARSSL_LIBRARY}")
|
||||||
|
message (STATUS "Found the polarssl headers at ${POLARSSL_INCLUDE_DIR}")
|
||||||
|
endif (NOT POLARSSL_FIND_QUIETLY)
|
||||||
|
|
||||||
|
message(STATUS "Checking to see if system version contains necessary methods")
|
||||||
|
|
||||||
|
set(CMAKE_REQUIRED_INCLUDES ${POLARSSL_INCLUDE_DIR})
|
||||||
|
set(CMAKE_REQUIRED_LIBRARIES ${POLARSSL_LIBRARY})
|
||||||
|
check_cxx_source_compiles("
|
||||||
|
#include <polarssl/net.h>
|
||||||
|
#include <polarssl/ssl.h>
|
||||||
|
#include <polarssl/havege.h>
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
ssl_context ctx;
|
||||||
|
ssl_session session;
|
||||||
|
havege_state hs;
|
||||||
|
|
||||||
|
ssl_init(&ctx);
|
||||||
|
havege_init(&hs);
|
||||||
|
ssl_set_rng(&ctx, havege_random, &hs);
|
||||||
|
ssl_set_session(&ctx, &session);
|
||||||
|
|
||||||
|
ssl_close_notify(&ctx);
|
||||||
|
ssl_session_free(&session);
|
||||||
|
ssl_free(&ctx);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}"
|
||||||
|
POLARSSL_WORKS)
|
||||||
|
|
||||||
|
else ()
|
||||||
|
message (STATUS "Could not find polarssl")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
MARK_AS_ADVANCED(POLARSSL_INCLUDE_DIR POLARSSL_LIBRARY)
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user