# CMakeFiles for 3rd vendor library include(ExternalProject) #libevent if(LIBEVENT_ENABLED) ExternalProject_Add(libevent PREFIX libevent URL ${CMAKE_CURRENT_SOURCE_DIR}/libevent-2.1.10-stable.tar.gz URL_MD5 999caf86f52943af2363bc8077f00167 CONFIGURE_COMMAND ./configure --prefix= --enable-shared CFLAGS=-fPIC --disable-samples --disable-openssl BUILD_COMMAND make LDFLAGS="-ldl" -j${CPU_COUNT} BUILD_IN_SOURCE 1) ExternalProject_Get_Property(libevent INSTALL_DIR) file(MAKE_DIRECTORY ${INSTALL_DIR}/include) add_library(libevent-static STATIC IMPORTED GLOBAL) add_dependencies(libevent-static libevent) 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) endif() ### jemalloc if(MEM_POOL STREQUAL "JEMALLOC_STATIC") ExternalProject_Add(libjemalloc PREFIX libjemalloc URL ${CMAKE_CURRENT_SOURCE_DIR}/jemalloc-5.3.0.tar.gz URL_MD5 594dd8e0a1e8c1ef8a1b210a1a5aff5b CONFIGURE_COMMAND ./autogen.sh CFLAGS=-fPIC CXXFLAGS=-fPIC --disable-shared --enable-prof #$,--enable-prof,> --prefix= BUILD_COMMAND make -j${CPU_COUNT} BUILD_IN_SOURCE 1 INSTALL_COMMAND make install prefix=) ExternalProject_Get_Property(libjemalloc INSTALL_DIR) file(MAKE_DIRECTORY ${INSTALL_DIR}/include) add_library(libjemalloc-static STATIC IMPORTED GLOBAL) add_dependencies(libjemalloc-static libjemalloc) set_property(TARGET libjemalloc-static PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libjemalloc.a) set_property(TARGET libjemalloc-static PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) endif() ### mimalloc if(MEM_POOL STREQUAL "MIMALLOC") ExternalProject_Add(libmimalloc PREFIX libmimalloc URL ${CMAKE_CURRENT_SOURCE_DIR}/mimalloc-2.1.2.tar.gz URL_MD5 5179c8f5cf1237d2300e2d8559a7bc55 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX= -DCMAKE_BUILD_TYPE=RELWITHDEBINFO BUILD_IN_SOURCE 1 BUILD_COMMAND make -j${CPU_COUNT}) ExternalProject_Get_Property(libmimalloc INSTALL_DIR) file(MAKE_DIRECTORY ${INSTALL_DIR}/include/mimalloc-2.1) add_library(libmimalloc-static STATIC IMPORTED GLOBAL) add_dependencies(libmimalloc-static libmimalloc) set_property(TARGET libmimalloc-static PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib64/mimalloc-2.1/libmimalloc.a) set_property(TARGET libmimalloc-static PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include/mimalloc-2.1) add_library(libmimalloc-dynamic STATIC IMPORTED GLOBAL) add_dependencies(libmimalloc-dynamic libmimalloc) set_property(TARGET libmimalloc-dynamic PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib64/mimalloc-2.1/libmimalloc.so) set_property(TARGET libmimalloc-dynamic PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include/mimalloc-1.8) endif()