增加Vendor目录,支持源码编译并静态链接第三方库。
This commit is contained in:
6
.gitattributes
vendored
6
.gitattributes
vendored
@@ -1 +1,5 @@
|
||||
* text=auto
|
||||
*.cpp text eol=lf
|
||||
*.c text eol=lf
|
||||
*.h text eol=lf
|
||||
*.txt text eol=lf
|
||||
*.tar.gz binary
|
||||
|
||||
@@ -4,7 +4,7 @@ project(tfe)
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
|
||||
add_subdirectory(support)
|
||||
add_subdirectory(vendor)
|
||||
add_subdirectory(common)
|
||||
add_subdirectory(platform)
|
||||
add_subdirectory(cache)
|
||||
add_subdirectory(cache)
|
||||
|
||||
135
vendor/CMakeLists.txt
vendored
Normal file
135
vendor/CMakeLists.txt
vendored
Normal file
@@ -0,0 +1,135 @@
|
||||
# CMakeFiles for 3rd vendor library
|
||||
|
||||
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=<INSTALL_DIR> --openssldir=<INSTALL_DIR>/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
|
||||
### 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=<INSTALL_DIR> --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)
|
||||
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)
|
||||
set_property(TARGET libevent-static PROPERTY IMPORTED_INTERFACE_LINK_LIBRARIES pthread crypto)
|
||||
set_property(TARGET libevent-static PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include)
|
||||
|
||||
add_library(libevent-static-openssl STATIC IMPORTED GLOBAL)
|
||||
set_property(TARGET libevent-static-openssl PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libevent_openssl.a)
|
||||
set_property(TARGET libevent-static-openssl PROPERTY IMPORTED_INTERFACE_LINK_LIBRARIES pthread crypto)
|
||||
set_property(TARGET libevent-static-openssl PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include)
|
||||
|
||||
add_library(libevent-static-pthreads STATIC IMPORTED GLOBAL)
|
||||
set_property(TARGET libevent-static-pthreads PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libevent_pthreads.a)
|
||||
set_property(TARGET libevent-static-pthreads PROPERTY IMPORTED_INTERFACE_LINK_LIBRARIES pthread crypto)
|
||||
set_property(TARGET libevent-static-pthreads PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include)
|
||||
|
||||
### 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 ""
|
||||
BUILD_COMMAND make package
|
||||
INSTALL_COMMAND ""
|
||||
BUILD_IN_SOURCE 1)
|
||||
|
||||
ExternalProject_Get_Property(http-parser SOURCE_DIR)
|
||||
set(HTTP_PARSER_INCLUDE_DIRECTORIES ${SOURCE_DIR})
|
||||
file(MAKE_DIRECTORY ${HTTP_PARSER_INCLUDE_DIRECTORIES})
|
||||
|
||||
add_library(http-parser-static STATIC IMPORTED GLOBAL)
|
||||
set_property(TARGET http-parser-static PROPERTY IMPORTED_LOCATION ${SOURCE_DIR}/libhttp_parser.a)
|
||||
set_property(TARGET http-parser-static PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${SOURCE_DIR})
|
||||
|
||||
### libcheck
|
||||
ExternalProject_Add(libcheck PREFIX libcheck
|
||||
URL ${CMAKE_CURRENT_SOURCE_DIR}/check-0.12.0.tar.gz
|
||||
URL_MD5 31b17c6075820a434119592941186f70
|
||||
CONFIGURE_COMMAND ./configure --prefix=<INSTALL_DIR> --disable-shared
|
||||
BUILD_IN_SOURCE 1)
|
||||
|
||||
ExternalProject_Get_Property(libcheck INSTALL_DIR)
|
||||
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
|
||||
URL ${CMAKE_CURRENT_SOURCE_DIR}/nghttp2-1.32.0.tar.gz
|
||||
URL_MD5 35944dff48a2d823774c9ed15344d25b
|
||||
CONFIGURE_COMMAND ./configure --prefix=<INSTALL_DIR> --disable-shared
|
||||
BUILD_IN_SOURCE 1)
|
||||
|
||||
ExternalProject_Get_Property(nghttp2 INSTALL_DIR)
|
||||
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)
|
||||
set_property(TARGET nghttp2-static PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include)
|
||||
|
||||
|
||||
### MESA Prof Load
|
||||
ExternalProject_Add(MESA_prof_load
|
||||
PREFIX MESA_prof_load
|
||||
URL ${CMAKE_CURRENT_SOURCE_DIR}/MESA_prof_load-3b2bfd.tar.gz
|
||||
URL_MD5 411eedec773e6265bf9185846cab0f15
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_COMMAND make
|
||||
INSTALL_COMMAND ""
|
||||
BUILD_IN_SOURCE 1)
|
||||
|
||||
ExternalProject_Get_Property(MESA_prof_load SOURCE_DIR)
|
||||
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)
|
||||
set_property(TARGET MESA_prof_load-static PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${SOURCE_DIR}/inc)
|
||||
|
||||
#### GoogleTest
|
||||
#ExternalProject_Add(googletest
|
||||
# PREFIX googletest
|
||||
# URL ${CMAKE_CURRENT_SOURCE_DIR}/googletest-release-1.8.0.tar.gz
|
||||
# URL_MD5 16877098823401d1bf2ed7891d7dce36
|
||||
# CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE})
|
||||
#
|
||||
#ExternalProject_Get_Property(googletest INSTALL_DIR)
|
||||
#set(GTEST_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include)
|
||||
#file(MAKE_DIRECTORY ${GTEST_INCLUDE_DIRECTORIES})
|
||||
#
|
||||
#add_library(gtest STATIC IMPORTED GLOBAL)
|
||||
#set_property(TARGET gtest PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libgtest.a)
|
||||
#set_property(TARGET gtest PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include)
|
||||
#
|
||||
#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)
|
||||
BIN
vendor/MESA_prof_load-3b2bfd.tar.gz
vendored
Normal file
BIN
vendor/MESA_prof_load-3b2bfd.tar.gz
vendored
Normal file
Binary file not shown.
BIN
vendor/check-0.12.0.tar.gz
vendored
Normal file
BIN
vendor/check-0.12.0.tar.gz
vendored
Normal file
Binary file not shown.
BIN
vendor/googletest-release-1.8.0.tar.gz
vendored
Normal file
BIN
vendor/googletest-release-1.8.0.tar.gz
vendored
Normal file
Binary file not shown.
BIN
vendor/http-parser-2.8.1.tar.gz
vendored
Normal file
BIN
vendor/http-parser-2.8.1.tar.gz
vendored
Normal file
Binary file not shown.
BIN
vendor/libevent-2.1.8-stable.tar.gz
vendored
Normal file
BIN
vendor/libevent-2.1.8-stable.tar.gz
vendored
Normal file
Binary file not shown.
BIN
vendor/nghttp2-1.32.0.tar.gz
vendored
Normal file
BIN
vendor/nghttp2-1.32.0.tar.gz
vendored
Normal file
Binary file not shown.
BIN
vendor/openssl-1.1.0h.tar.gz
vendored
Normal file
BIN
vendor/openssl-1.1.0h.tar.gz
vendored
Normal file
Binary file not shown.
Reference in New Issue
Block a user