mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-13 09:52:38 +00:00
b4339f266d
* Fix shared build * Major default libs refactor * Fix build with gcc_eh * Link all libraries as a big group. * Use global interface library as a group * Build capnproto using our cmake * Use only internal libunwind
65 lines
2.0 KiB
CMake
65 lines
2.0 KiB
CMake
set(JEMALLOC_SOURCE_DIR ${ClickHouse_SOURCE_DIR}/contrib/jemalloc)
|
|
|
|
set(SRCS
|
|
${JEMALLOC_SOURCE_DIR}/src/arena.c
|
|
${JEMALLOC_SOURCE_DIR}/src/background_thread.c
|
|
${JEMALLOC_SOURCE_DIR}/src/base.c
|
|
${JEMALLOC_SOURCE_DIR}/src/bin.c
|
|
${JEMALLOC_SOURCE_DIR}/src/bitmap.c
|
|
${JEMALLOC_SOURCE_DIR}/src/ckh.c
|
|
${JEMALLOC_SOURCE_DIR}/src/ctl.c
|
|
${JEMALLOC_SOURCE_DIR}/src/div.c
|
|
${JEMALLOC_SOURCE_DIR}/src/extent.c
|
|
${JEMALLOC_SOURCE_DIR}/src/extent_dss.c
|
|
${JEMALLOC_SOURCE_DIR}/src/extent_mmap.c
|
|
${JEMALLOC_SOURCE_DIR}/src/hash.c
|
|
${JEMALLOC_SOURCE_DIR}/src/hook.c
|
|
${JEMALLOC_SOURCE_DIR}/src/jemalloc.c
|
|
${JEMALLOC_SOURCE_DIR}/src/large.c
|
|
${JEMALLOC_SOURCE_DIR}/src/log.c
|
|
${JEMALLOC_SOURCE_DIR}/src/malloc_io.c
|
|
${JEMALLOC_SOURCE_DIR}/src/mutex.c
|
|
${JEMALLOC_SOURCE_DIR}/src/mutex_pool.c
|
|
${JEMALLOC_SOURCE_DIR}/src/nstime.c
|
|
${JEMALLOC_SOURCE_DIR}/src/pages.c
|
|
${JEMALLOC_SOURCE_DIR}/src/prng.c
|
|
${JEMALLOC_SOURCE_DIR}/src/prof.c
|
|
${JEMALLOC_SOURCE_DIR}/src/rtree.c
|
|
${JEMALLOC_SOURCE_DIR}/src/sc.c
|
|
${JEMALLOC_SOURCE_DIR}/src/stats.c
|
|
${JEMALLOC_SOURCE_DIR}/src/sz.c
|
|
${JEMALLOC_SOURCE_DIR}/src/tcache.c
|
|
${JEMALLOC_SOURCE_DIR}/src/test_hooks.c
|
|
${JEMALLOC_SOURCE_DIR}/src/ticker.c
|
|
${JEMALLOC_SOURCE_DIR}/src/tsd.c
|
|
${JEMALLOC_SOURCE_DIR}/src/witness.c
|
|
)
|
|
|
|
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
|
list(APPEND SRCS ${JEMALLOC_SOURCE_DIR}/src/zone.c)
|
|
endif()
|
|
|
|
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
|
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
|
|
endif ()
|
|
|
|
add_library(jemalloc STATIC ${SRCS})
|
|
|
|
target_include_directories(jemalloc PUBLIC
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include_linux_x86_64) # jemalloc.h
|
|
|
|
target_include_directories(jemalloc PRIVATE
|
|
${JEMALLOC_SOURCE_DIR}/include)
|
|
|
|
target_compile_definitions(jemalloc PRIVATE -DJEMALLOC_NO_PRIVATE_NAMESPACE)
|
|
|
|
if (CMAKE_BUILD_TYPE_UC STREQUAL "DEBUG")
|
|
target_compile_definitions(jemalloc PRIVATE -DJEMALLOC_DEBUG=1 -DJEMALLOC_PROF=1)
|
|
|
|
if (USE_UNWIND)
|
|
target_compile_definitions (jemalloc PRIVATE -DJEMALLOC_PROF_LIBUNWIND=1)
|
|
target_link_libraries (jemalloc PRIVATE ${UNWIND_LIBRARIES})
|
|
endif ()
|
|
endif ()
|