mirror of
https://github.com/MariaDB/server.git
synced 2025-01-22 06:44:16 +01:00
closes #5127 use jemalloc in the fractal tree always
git-svn-id: file:///svn/toku/tokudb@50680 c7de825b-a66e-492c-adef-691d508d4ae1
This commit is contained in:
parent
58c895e17e
commit
a5004f8bcf
3 changed files with 36 additions and 14 deletions
|
@ -1,8 +1,27 @@
|
|||
# TODO(leif): will need to be smarter about this when we do trunk/tags/branches
|
||||
set(TOKU_SVNROOT "${TokuDB_SOURCE_DIR}/../.." CACHE FILEPATH "The top of the tokudb source tree, usod to find xz sources.")
|
||||
set(TOKU_SVNROOT "${TokuDB_SOURCE_DIR}/../.." CACHE FILEPATH "The top of the tokudb source tree, usod to find xz sources, jemalloc sources, test data files, etc.")
|
||||
|
||||
include(ExternalProject)
|
||||
|
||||
## add jemalloc with an external project
|
||||
set(JEMALLOC_SOURCE_DIR "${TOKU_SVNROOT}/jemalloc-3.2.0" CACHE FILEPATH "Where to find jemalloc sources.")
|
||||
if (NOT EXISTS "${JEMALLOC_SOURCE_DIR}/configure")
|
||||
message(FATAL_ERROR "Can't find jemalloc sources. Please check them out to ${JEMALLOC_SOURCE_DIR} or modify TOKU_SVNROOT (${TOKU_SVNROOT}) or JEMALLOC_SOURCE_DIR.")
|
||||
endif ()
|
||||
ExternalProject_Add(build_jemalloc
|
||||
PREFIX jemalloc
|
||||
SOURCE_DIR "${JEMALLOC_SOURCE_DIR}"
|
||||
CONFIGURE_COMMAND
|
||||
"${JEMALLOC_SOURCE_DIR}/configure" "CC=${CMAKE_C_COMPILER}"
|
||||
"--prefix=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/jemalloc"
|
||||
)
|
||||
|
||||
add_library(jemalloc STATIC IMPORTED)
|
||||
set_target_properties(jemalloc PROPERTIES IMPORTED_LOCATION
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/jemalloc/lib/libjemalloc_pic.a")
|
||||
add_dependencies(jemalloc build_jemalloc)
|
||||
|
||||
## add lzma with an external project
|
||||
include(ExternalProject)
|
||||
set(xz_configure_opts --with-pic --enable-static)
|
||||
if (APPLE)
|
||||
## lzma has some assembly that doesn't work on darwin
|
||||
|
@ -14,9 +33,9 @@ if (NOT CMAKE_BUILD_TYPE MATCHES Release)
|
|||
list(APPEND xz_configure_opts --enable-debug)
|
||||
endif ()
|
||||
|
||||
set(XZ_SOURCE_DIR "${TOKU_SVNROOT}/xz-4.999.9beta")
|
||||
set(XZ_SOURCE_DIR "${TOKU_SVNROOT}/xz-4.999.9beta" CACHE FILEPATH "Where to find sources for xz (lzma).")
|
||||
if (NOT EXISTS "${XZ_SOURCE_DIR}/configure")
|
||||
message(FATAL_ERROR "Can't find the xz sources. Please check them out to ${XZ_SOURCE_DIR} or modify TOKU_SVNROOT.")
|
||||
message(FATAL_ERROR "Can't find the xz sources. Please check them out to ${XZ_SOURCE_DIR} or modify TOKU_SVNROOT (${TOKU_SVNROOT}) or XZ_SOURCE_DIR.")
|
||||
endif ()
|
||||
|
||||
if (CMAKE_GENERATOR STREQUAL Ninja)
|
||||
|
@ -72,5 +91,3 @@ add_library(lzma STATIC IMPORTED)
|
|||
set_target_properties(lzma PROPERTIES IMPORTED_LOCATION
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/xz/lib/liblzma.a")
|
||||
add_dependencies(lzma build_lzma)
|
||||
|
||||
# TODO(leif): jemalloc?
|
|
@ -11,12 +11,17 @@ set(tokuportability_srcs
|
|||
)
|
||||
|
||||
add_library(${LIBTOKUPORTABILITY} SHARED ${tokuportability_srcs})
|
||||
add_library(${LIBTOKUPORTABILITY}_static STATIC ${tokuportability_srcs})
|
||||
maybe_add_gcov_to_libraries(${LIBTOKUPORTABILITY} ${LIBTOKUPORTABILITY}_static)
|
||||
set_property(TARGET ${LIBTOKUPORTABILITY} ${LIBTOKUPORTABILITY}_static APPEND PROPERTY COMPILE_DEFINITIONS _GNU_SOURCE)
|
||||
set_target_properties(${LIBTOKUPORTABILITY}_static PROPERTIES POSITION_INDEPENDENT_CODE ON)
|
||||
target_link_libraries(${LIBTOKUPORTABILITY} LINK_PRIVATE jemalloc)
|
||||
target_link_libraries(${LIBTOKUPORTABILITY} LINK_PUBLIC ${CMAKE_THREAD_LIBS_INIT} ${EXTRA_SYSTEM_LIBS})
|
||||
|
||||
add_library(tokuportability_static_conv STATIC ${tokuportability_srcs})
|
||||
set_target_properties(tokuportability_static_conv PROPERTIES POSITION_INDEPENDENT_CODE ON)
|
||||
set(tokuportability_source_libs tokuportability_static_conv jemalloc ${CMAKE_THREAD_LIBS_INIT} ${EXTRA_SYSTEM_LIBS})
|
||||
merge_static_libs(${LIBTOKUPORTABILITY}_static ${LIBTOKUPORTABILITY}_static "${tokuportability_source_libs}")
|
||||
|
||||
maybe_add_gcov_to_libraries(${LIBTOKUPORTABILITY} tokuportability_static_conv)
|
||||
set_property(TARGET ${LIBTOKUPORTABILITY} tokuportability_static_conv APPEND PROPERTY COMPILE_DEFINITIONS _GNU_SOURCE)
|
||||
|
||||
set_property(SOURCE file memory os_malloc portability toku_assert toku_rwlock APPEND PROPERTY
|
||||
COMPILE_DEFINITIONS TOKU_ALLOW_DEPRECATED=1)
|
||||
|
||||
|
|
|
@ -27,6 +27,10 @@ set_target_properties(tokudb_static_conv PROPERTIES POSITION_INDEPENDENT_CODE ON
|
|||
set(tokudb_source_libs tokudb_static_conv locktree_static ft_static util_static lzma ${LIBTOKUPORTABILITY} z ${CMAKE_THREAD_LIBS_INIT} ${EXTRA_SYSTEM_LIBS})
|
||||
merge_static_libs(${LIBTOKUDB}_static ${LIBTOKUDB}_static "${tokudb_source_libs}")
|
||||
|
||||
## add gcov and define _GNU_SOURCE
|
||||
maybe_add_gcov_to_libraries(${LIBTOKUDB} tokudb_static_conv)
|
||||
set_property(TARGET ${LIBTOKUDB} tokudb_static_conv APPEND PROPERTY COMPILE_DEFINITIONS _GNU_SOURCE)
|
||||
|
||||
## add a version script and set -fvisibility=hidden for the shared library
|
||||
configure_file(export.map . COPYONLY)
|
||||
if (NOT CMAKE_SYSTEM_NAME STREQUAL Darwin)
|
||||
|
@ -34,10 +38,6 @@ if (NOT CMAKE_SYSTEM_NAME STREQUAL Darwin)
|
|||
add_space_separated_property(TARGET ${LIBTOKUDB} LINK_FLAGS "-Wl,--version-script=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/export.map")
|
||||
endif ()
|
||||
|
||||
## add gcov and define _GNU_SOURCE
|
||||
maybe_add_gcov_to_libraries(${LIBTOKUDB} ${LIBTOKUDB}_static)
|
||||
set_property(TARGET ${LIBTOKUDB} ${LIBTOKUDB}_static APPEND PROPERTY COMPILE_DEFINITIONS _GNU_SOURCE)
|
||||
|
||||
install(
|
||||
TARGETS ${LIBTOKUDB} ${LIBTOKUDB}_static
|
||||
DESTINATION lib
|
||||
|
|
Loading…
Add table
Reference in a new issue