Commit 1f12fc68 authored by Dominik Charousset's avatar Dominik Charousset

Print found version on OpenSSL version mismatch

parent e97b041b
cmake_minimum_required(VERSION 2.8.12)
project(caf C CXX)
include(CheckCSourceCompiles)
include(CheckCSourceRuns)
project(caf CXX)
# Set default install paths.
# See https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html
......@@ -601,21 +598,18 @@ elseif(NOT CAF_NO_OPENSSL)
else()
if(NOT CMAKE_CROSSCOMPILING)
# Check if openssl headers and library versions match
set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_LIBRARIES})
set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
check_c_source_runs("
#include <openssl/opensslv.h>
#include <openssl/crypto.h>
int main() {
if (SSLeay() == OPENSSL_VERSION_NUMBER) {
return 0;
}
return -1;
}
" OPENSSL_CORRECT_VERSION_NUMBER)
if (NOT OPENSSL_CORRECT_VERSION_NUMBER)
try_run(sslRunResult sslCompileResult
"${CMAKE_CURRENT_BINARY_DIR}"
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/openssl-check.cpp"
CMAKE_FLAGS "-DINCLUDE_DIRECTORIES=${OPENSSL_INCLUDE_DIR}"
LINK_LIBRARIES ${OPENSSL_LIBRARIES}
OUTPUT_VARIABLE sslOutput)
if (NOT sslCompileResult)
message(FATAL_ERROR "failed to compile/link against OpenSSL")
endif()
if(NOT sslRunResult EQUAL 0)
message(FATAL_ERROR
"OpenSSL library version does not match headers")
"OpenSSL version does not match headers: ${sslOutput}")
endif()
endif()
include_directories(BEFORE ${OPENSSL_INCLUDE_DIR})
......
#include <openssl/crypto.h>
#include <openssl/opensslv.h>
#include <cstdio>
#include <cstdlib>
int main() {
long have = SSLeay();
long want = OPENSSL_VERSION_NUMBER;
printf("have OpenSSL %lx, want %lx\n", have, want);
if (have == want)
return EXIT_SUCCESS;
return EXIT_FAILURE;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment