CMakeLists.txt 1.62 KB
Newer Older
1
include_directories(${CMAKE_CURRENT_SOURCE_DIR} "${CMAKE_CURRENT_BINARY_DIR}/..")
2 3

set(tokudb_srcs
4 5 6 7 8 9 10 11 12 13 14
  ydb
  ydb_cursor
  ydb_db
  ydb_env_func
  ydb_row_lock
  ydb_txn
  ydb_write
  errors
  loader
  indexer
  indexer-undo-do
15 16
  )

17
## make the shared library
18
add_library(${LIBTOKUDB} SHARED ${tokudb_srcs})
19
add_dependencies(${LIBTOKUDB} install_tdb_h generate_log_code)
20
target_link_libraries(${LIBTOKUDB} LINK_PRIVATE locktree_static ft_static util_static lzma ${LIBTOKUPORTABILITY})
21
target_link_libraries(${LIBTOKUDB} LINK_PUBLIC z)
22

23
## make the static library
24 25
add_library(tokudb_static_conv STATIC ${tokudb_srcs})
add_dependencies(tokudb_static_conv install_tdb_h generate_log_code)
26
set_target_properties(tokudb_static_conv PROPERTIES POSITION_INDEPENDENT_CODE ON)
27
set(tokudb_source_libs tokudb_static_conv locktree_static ft_static util_static lzma)
28
merge_static_libs(${LIBTOKUDB}_static ${LIBTOKUDB}_static "${tokudb_source_libs}")
29

30 31 32 33
## 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)

34
## add a version script and set -fvisibility=hidden for the shared library
Leif Walsh's avatar
Leif Walsh committed
35
configure_file(export.map . COPYONLY)
36
if (NOT CMAKE_SYSTEM_NAME STREQUAL Darwin)
37
  add_space_separated_property(TARGET ${LIBTOKUDB} COMPILE_FLAGS -fvisibility=hidden -fvisibility-inlines-hidden)
38
  add_space_separated_property(TARGET ${LIBTOKUDB} LINK_FLAGS "-Wl,--version-script=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/export.map")
39
endif ()
Leif Walsh's avatar
Leif Walsh committed
40

41
install(
42
  TARGETS ${LIBTOKUDB} ${LIBTOKUDB}_static
43 44 45 46
  DESTINATION lib
  )

add_subdirectory(tests)