From bea0cec8b3f02a8e6317aba2ba5f40c16b927266 Mon Sep 17 00:00:00 2001 From: Gabriele Contini <contini.mailing@gmail.com> Date: 周日, 01 12月 2019 13:44:00 +0800 Subject: [PATCH] fix centos --- src/library/locate/CMakeLists.txt | 1 - src/library/os/openssl/signature_verifier.cpp | 4 ++++ CMakeLists.txt | 16 +++++++++++----- src/library/os/CMakeLists.txt | 24 +++++++++++------------- 4 files changed, 26 insertions(+), 19 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 882174e..acd00fb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,17 +52,23 @@ add_definitions("/D _CRT_SECURE_NO_WARNINGS") else(MSVC) if(MINGW) - list(APPEND EXTERNAL_LIBS "-lcrypt32 -lws2_32 -liphlpapi") + list(APPEND EXTERNAL_LIBS "-lcrypt32 -lbcrypt -lws2_32 -liphlpapi") SET(CMAKE_EXE_LINKER_FLAGS "-static") endif(MINGW) endif(MSVC) -if(UNIX) #this is true for all the linux systems but not for cross compiling "linux->windows" - #find a static version of openssl crypto library - SET ( OPENSSL_USE_STATIC_LIBS ON ) - find_package(OpenSSL REQUIRED COMPONENTS Crypto) +SET ( OPENSSL_USE_STATIC_LIBS ON ) +find_package(OpenSSL COMPONENTS Crypto) +IF(OPENSSL_FOUND) + add_definitions(-DHAS_OPENSSL) include_directories(${OPENSSL_INCLUDE_DIR}) MESSAGE(STATUS "Found openssl version ${OPENSSL_VERSION} ") +ENDIF(OPENSSL_FOUND) + +if(UNIX) #this is true for all the linux systems but not for cross compiling "linux->windows" + IF(NOT OPENSSL_FOUND) + MESSAGE(SEND_ERROR "Openssl not found - required in Linux") + ENDIF(NOT OPENSSL_FOUND) find_package(Threads) if(THREADS_HAVE_PTHREAD_ARG) diff --git a/src/library/locate/CMakeLists.txt b/src/library/locate/CMakeLists.txt index 2c10950..6c19298 100644 --- a/src/library/locate/CMakeLists.txt +++ b/src/library/locate/CMakeLists.txt @@ -1,4 +1,3 @@ - ADD_LIBRARY(locators STATIC ApplicationFolder.cpp EnvironmentVarLocation.cpp diff --git a/src/library/os/CMakeLists.txt b/src/library/os/CMakeLists.txt index fc525b4..f2dc67b 100644 --- a/src/library/os/CMakeLists.txt +++ b/src/library/os/CMakeLists.txt @@ -1,20 +1,17 @@ -IF(UNIX) +IF(UNIX OR OPENSSL_FOUND) ADD_LIBRARY(os STATIC openssl/signature_verifier.cpp os.c os-linux.c network_id.c) - - target_link_libraries( - os - base - OpenSSL::Crypto - ${EXTERNAL_LIBS} - ${CMAKE_DL_LIBS} - ##ZLIB::ZLIB - ) - -ELSE(UNIX) + + if (CMAKE_VERSION VERSION_GREATER 3.5) + target_link_libraries(os base OpenSSL::Crypto ${EXTERNAL_LIBS} ${CMAKE_DL_LIBS}) + #patch for old cmake in Centos 7 + ELSE(CMAKE_VERSION VERSION_GREATER 3.5) + target_link_libraries(os base ${OPENSSL_CRYPTO_LIBRARY} ${EXTERNAL_LIBS} ${CMAKE_DL_LIBS}) + ENDIF(CMAKE_VERSION VERSION_GREATER 3.5) +ELSE(UNIX OR OPENSSL_FOUND) ADD_LIBRARY(os STATIC windows/signature_verifier.cpp os.c @@ -23,7 +20,8 @@ target_link_libraries( os base + ${EXTERNAL_LIBS} ) -ENDIF(UNIX) +ENDIF(UNIX OR OPENSSL_FOUND) install(TARGETS os ARCHIVE DESTINATION lib/${PROJECT_NAME}/${LCC_PROJECT_NAME}) diff --git a/src/library/os/openssl/signature_verifier.cpp b/src/library/os/openssl/signature_verifier.cpp index 9c9f9fb..700210b 100644 --- a/src/library/os/openssl/signature_verifier.cpp +++ b/src/library/os/openssl/signature_verifier.cpp @@ -10,6 +10,10 @@ #include <stdlib.h> #include <errno.h> +#ifdef _WIN32 +#include <windows.h> +#endif + #include <public_key.h> #include "../signature_verifier.h" -- Gitblit v1.9.1