From 143373018ef0443cf8c02b7f5bae8a393bfac819 Mon Sep 17 00:00:00 2001 From: Lu Date: Wed, 15 Aug 2018 11:02:12 +0800 Subject: 使用最新版本静态编译OpenSSL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/CMakeLists.txt | 11 +++++----- vendor/CMakeLists.txt | 48 ++++++++++++++++++++++++++++--------------- vendor/openssl-1.1.0h.tar.gz | Bin 0 -> 5422717 bytes 3 files changed, 36 insertions(+), 23 deletions(-) create mode 100644 vendor/openssl-1.1.0h.tar.gz diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 909fb73..8f6c432 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,5 +1,3 @@ -find_package(OpenSSL REQUIRED) - add_library(tfe-library base64.cc build.cc cache.cc cachemgr.cc cachessess.cc compat.cc easylogging++.cc cachedsess.cc cachetgcrt.cc cachefkcrt.cc cert.cc certstore.cc logger.cc cfgparser.cc dynbuf.cc nat.cc opts.cc privsep.cc proxy.cc pxythrmgr.cc pxysslshut.cc pxyconn.cc @@ -8,17 +6,18 @@ add_library(tfe-library base64.cc build.cc cache.cc cachemgr.cc cachessess.cc co #pxyconn.cc target_compile_definitions(tfe-library PUBLIC -DELPP_THREAD_SAFE -DELPP_FEATURE_ALL) -target_include_directories(tfe-library PRIVATE ${OPENSSL_INCLUDE_DIR}) -target_link_libraries(tfe-library ${OPENSSL_LIBRARIES}) target_link_libraries(tfe-library - pthread libevent-static + openssl-crypto-static + openssl-ssl-static + pthread + libevent-static libevent-static-openssl libevent-static-pthreads http-parser-static nghttp2-static MESA_prof_load-static MESA_field_stat2 - jsoncpp rdkafka pcrecpp ) + jsoncpp rdkafka pcrecpp) target_link_libraries(tfe-library maatframe MESA_handle_logger) diff --git a/vendor/CMakeLists.txt b/vendor/CMakeLists.txt index 9e535bc..00faebc 100644 --- a/vendor/CMakeLists.txt +++ b/vendor/CMakeLists.txt @@ -2,17 +2,38 @@ include(ExternalProject) +### OpenSSL 1.1.0h +ExternalProject_Add(OpenSSL PREFIX openssl + URL ${CMAKE_CURRENT_SOURCE_DIR}/openssl-1.1.0h.tar.gz + URL_MD5 5271477e4d93f4ea032b665ef095ff24 + CONFIGURE_COMMAND ./Configure linux-x86_64 --prefix= --openssldir=/lib/ssl + no-weak-ssl-ciphers enable-ec_nistp_64_gcc_128 no-shared + BUILD_IN_SOURCE 1) + +ExternalProject_Get_Property(OpenSSL INSTALL_DIR) +set(OPENSSL_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) +set(OPENSSL_LINK_DIRECTORIES ${INSTALL_DIR}/lib) +file(MAKE_DIRECTORY ${INSTALL_DIR}/include) + +add_library(openssl-crypto-static STATIC IMPORTED GLOBAL) +set_property(TARGET openssl-crypto-static PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libcrypto.a) +set_property(TARGET openssl-crypto-static PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) + +add_library(openssl-ssl-static STATIC IMPORTED GLOBAL) +set_property(TARGET openssl-ssl-static PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libssl.a) +set_property(TARGET openssl-ssl-static PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) + ### Libevent 2.1.8 -ExternalProject_Add(libevent - PREFIX libevent +### Use openssl 1.1.0h +ExternalProject_Add(libevent PREFIX libevent URL ${CMAKE_CURRENT_SOURCE_DIR}/libevent-2.1.8-stable.tar.gz URL_MD5 f3eeaed018542963b7d2416ef1135ecc CONFIGURE_COMMAND ./configure --prefix= --disable-shared + BUILD_COMMAND make "CPPFLAGS=-I${OPENSSL_INCLUDE_DIRECTORIES}" "LDFLAGS=-L${OPENSSL_LINK_DIRECTORIES} -ldl" BUILD_IN_SOURCE 1) ExternalProject_Get_Property(libevent INSTALL_DIR) -set(LIBEVENT_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) -file(MAKE_DIRECTORY ${LIBEVENT_INCLUDE_DIRECTORIES}) +file(MAKE_DIRECTORY ${INSTALL_DIR}/include) add_library(libevent-static STATIC IMPORTED GLOBAL) set_property(TARGET libevent-static PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libevent.a) @@ -30,8 +51,7 @@ set_property(TARGET libevent-static-pthreads PROPERTY IMPORTED_INTERFACE_LINK_LI set_property(TARGET libevent-static-pthreads PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) ### http parser -ExternalProject_Add(http-parser - PREFIX http-parser +ExternalProject_Add(http-parser PREFIX http-parser URL ${CMAKE_CURRENT_SOURCE_DIR}/http-parser-2.8.1.tar.gz URL_MD5 cb8cbe17d68c4101eebe80229e32efdb CONFIGURE_COMMAND "" @@ -48,23 +68,20 @@ set_property(TARGET http-parser-static PROPERTY IMPORTED_LOCATION ${SOURCE_DIR}/ set_property(TARGET http-parser-static PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${SOURCE_DIR}) ### libcheck -ExternalProject_Add(libcheck - PREFIX libcheck +ExternalProject_Add(libcheck PREFIX libcheck URL ${CMAKE_CURRENT_SOURCE_DIR}/check-0.12.0.tar.gz URL_MD5 31b17c6075820a434119592941186f70 CONFIGURE_COMMAND ./configure --prefix= --disable-shared BUILD_IN_SOURCE 1) ExternalProject_Get_Property(libcheck INSTALL_DIR) -set(LIBCHECK_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) -file(MAKE_DIRECTORY ${LIBCHECK_INCLUDE_DIRECTORIES}) +file(MAKE_DIRECTORY ${INSTALL_DIR}/include) add_library(libcheck-static STATIC IMPORTED GLOBAL) set_property(TARGET libcheck-static PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libcheck.a) set_property(TARGET libcheck-static PROPERTY IMPORTED_INTERFACE_LINK_LIBRARIES pthread rt m) set_property(TARGET libcheck-static PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) - ### nghttp2 ExternalProject_Add(nghttp2 PREFIX nghttp2 @@ -74,8 +91,7 @@ ExternalProject_Add(nghttp2 BUILD_IN_SOURCE 1) ExternalProject_Get_Property(nghttp2 INSTALL_DIR) -set(LIBCHECK_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) -file(MAKE_DIRECTORY ${LIBCHECK_INCLUDE_DIRECTORIES}) +file(MAKE_DIRECTORY ${INSTALL_DIR}/include) add_library(nghttp2-static STATIC IMPORTED GLOBAL) set_property(TARGET nghttp2-static PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libnghttp2.a) @@ -93,8 +109,7 @@ ExternalProject_Add(MESA_prof_load BUILD_IN_SOURCE 1) ExternalProject_Get_Property(MESA_prof_load SOURCE_DIR) -set(MESA_PROF_LOAD_INCLUDE_DIRECTORIES ${SOURCE_DIR}/include) -file(MAKE_DIRECTORY ${MESA_PROF_LOAD_INCLUDE_DIRECTORIES}) +file(MAKE_DIRECTORY ${SOURCE_DIR}/inc) add_library(MESA_prof_load-static STATIC IMPORTED GLOBAL) set_property(TARGET MESA_prof_load-static PROPERTY IMPORTED_LOCATION ${SOURCE_DIR}/lib/libMESA_prof_load.a) @@ -117,5 +132,4 @@ set_property(TARGET MESA_prof_load-static PROPERTY INTERFACE_INCLUDE_DIRECTORIES # #add_library(gmock STATIC IMPORTED GLOBAL) #set_property(TARGET gmock PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libgtest.a) -#set_property(TARGET gmock PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) - +#set_property(TARGET gmock PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) \ No newline at end of file diff --git a/vendor/openssl-1.1.0h.tar.gz b/vendor/openssl-1.1.0h.tar.gz new file mode 100644 index 0000000..8fb67f8 Binary files /dev/null and b/vendor/openssl-1.1.0h.tar.gz differ -- cgit v1.2.3