diff --git a/.gitattributes b/.gitattributes index 176a458..db5eef7 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,5 @@ -* text=auto +*.cpp text eol=lf +*.c text eol=lf +*.h text eol=lf +*.txt text eol=lf +*.tar.gz binary diff --git a/CMakeLists.txt b/CMakeLists.txt index 6ff77a1..f8055bb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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) \ No newline at end of file +add_subdirectory(cache) diff --git a/vendor/CMakeLists.txt b/vendor/CMakeLists.txt new file mode 100644 index 0000000..4bd5f81 --- /dev/null +++ b/vendor/CMakeLists.txt @@ -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= --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 +### 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) +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= --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= --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= -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) \ No newline at end of file diff --git a/vendor/MESA_prof_load-3b2bfd.tar.gz b/vendor/MESA_prof_load-3b2bfd.tar.gz new file mode 100644 index 0000000..8004fa3 Binary files /dev/null and b/vendor/MESA_prof_load-3b2bfd.tar.gz differ diff --git a/vendor/check-0.12.0.tar.gz b/vendor/check-0.12.0.tar.gz new file mode 100644 index 0000000..375dbce Binary files /dev/null and b/vendor/check-0.12.0.tar.gz differ diff --git a/vendor/googletest-release-1.8.0.tar.gz b/vendor/googletest-release-1.8.0.tar.gz new file mode 100644 index 0000000..a40df33 Binary files /dev/null and b/vendor/googletest-release-1.8.0.tar.gz differ diff --git a/vendor/http-parser-2.8.1.tar.gz b/vendor/http-parser-2.8.1.tar.gz new file mode 100644 index 0000000..85d2b5a Binary files /dev/null and b/vendor/http-parser-2.8.1.tar.gz differ diff --git a/vendor/libevent-2.1.8-stable.tar.gz b/vendor/libevent-2.1.8-stable.tar.gz new file mode 100644 index 0000000..2004f84 Binary files /dev/null and b/vendor/libevent-2.1.8-stable.tar.gz differ diff --git a/vendor/nghttp2-1.32.0.tar.gz b/vendor/nghttp2-1.32.0.tar.gz new file mode 100644 index 0000000..582eabb Binary files /dev/null and b/vendor/nghttp2-1.32.0.tar.gz differ 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