# 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 # validate cached values (but use them as hints) set(POLARSSL_INCLUDE_DIR_HINT POLARSSL_INCLUDE_DIR) set(POLARSSL_LIBRARY_HINT POLARSSL_LIBRARY) unset(POLARSSL_INCLUDE_DIR CACHE) unset(POLARSSL_LIBRARY CACHE) find_path(POLARSSL_INCLUDE_DIR polarssl/ssl.h HINTS ${POLARSSL_INCLUDE_DIR_HINT}) find_library(POLARSSL_LIBRARY polarssl HINTS ${POLARSSL_LIBRARY_HINT}) if(POLARSSL_INCLUDE_DIR STREQUAL POLARSSL_INCLUDE_DIR_HINT AND POLARSSL_LIBRARY STREQUAL POLARSSL_LIBRARY_HINT) # using cached values, be silent set(POLARSSL_FIND_QUIETLY TRUE) endif() 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 #include #include int main() { ssl_context ctx; ssl_session session; entropy_context entropy; ssl_init(&ctx); entropy_init(&entropy); ssl_set_rng(&ctx, entropy_func, &entropy); 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)