From de11d68a48e397b555731be04ba695b2ba1a0ccf Mon Sep 17 00:00:00 2001 From: Roman Tsisyk <roman@tarantool.org> Date: Fri, 21 Jul 2017 14:08:43 +0300 Subject: [PATCH] CMake: refactor dependencies of internal libraries Follow up #2507, needed fir unit tests --- src/CMakeLists.txt | 46 +++++++++-------- src/box/CMakeLists.txt | 14 ++++-- test/unit/CMakeLists.txt | 104 ++++++++++++++++++--------------------- 3 files changed, 84 insertions(+), 80 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 7e02de070d..2df141024b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -70,19 +70,25 @@ set (core_sources diag.c say.c memory.c + clock.c fiber.c fiber_pool.c fiber_cond.c fiber_channel.c + latch.c + sio.cc + evio.cc + coio.cc + coio_task.c + coio_file.c + coio_buf.cc + fio.c cbus.c exception.cc reflection.c assoc.c - rmean.c - latency.c - histogram.c util.c - path_lock.c + random.c ) if (TARGET_OS_NETBSD) @@ -96,9 +102,13 @@ add_library(core STATIC ${core_sources}) target_link_libraries(core salad small pthread ${LIBEV_LIBRARIES} + ${LIBEIO_LIBRARIES} ${LIBCORO_LIBRARIES} ) +add_library(stat STATIC rmean.c latency.c histogram.c) +target_link_libraries(stat core) + if (CC_HAS_WNO_IMPLICIT_FALLTHROUGH) # Suppress noise warnings for autogenerated Ragel code set_source_files_properties(uri.c PROPERTIES COMPILE_FLAGS @@ -106,32 +116,27 @@ if (CC_HAS_WNO_IMPLICIT_FALLTHROUGH) endif() add_library(uri STATIC uri.c) +add_library(uuid STATIC tt_uuid.c) +target_link_libraries(uuid core bit) + +add_library(scramble STATIC scramble.c) +target_link_libraries(scramble core misc) + +add_library(crc32 STATIC crc32.c cpu_feature.c) + set (server_sources find_path.c - sio.cc - evio.cc - coio.cc - coio_task.c - coio_file.c iobuf.cc httpc.c - coio_buf.cc pickle.c - latch.c errinj.c - fio.c - crc32.c - random.c - scramble.c opts.c cfg.c cpu_feature.c - tt_uuid.c - uri.c backtrace.cc title.c proc_title.c - clock.c + path_lock.c systemd.c version.c lua/digest.c @@ -192,7 +197,7 @@ endif() set_source_files_compile_flags(${server_sources}) add_library(server STATIC ${server_sources}) -target_link_libraries(server core bit uri) +target_link_libraries(server core bit uri uuid) # Rule of thumb: if exporting a symbol from a static library, list the # library here. @@ -201,7 +206,6 @@ set (reexport_libraries server core misc bitset csv set (common_libraries ${reexport_libraries} - ${LIBEIO_LIBRARIES} ${LIBGOPT_LIBRARIES} ${LIBYAML_LIBRARIES} ${READLINE_LIBRARIES} @@ -226,7 +230,7 @@ if (ENABLE_BACKTRACE AND HAVE_BFD) set (common_libraries ${common_libraries} ${BFD_LIBRARIES}) endif() -set (common_libraries ${common_libraries} ${LIBUUID_LIBRARIES}) +set (common_libraries ${common_libraries}) set (common_libraries ${common_libraries} PARENT_SCOPE) add_subdirectory(lib) diff --git a/src/box/CMakeLists.txt b/src/box/CMakeLists.txt index c1f85ee277..7ee151f26f 100644 --- a/src/box/CMakeLists.txt +++ b/src/box/CMakeLists.txt @@ -19,8 +19,15 @@ set_property(DIRECTORY PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${lua_sources}) include_directories(${ZSTD_INCLUDE_DIRS}) -add_library(xrow STATIC xrow.c iproto_constants.c vclock.c errcode.c) -target_link_libraries(xrow server core small) +add_library(box_error STATIC error.cc errcode.c) +target_link_libraries(box_error core stat) + +add_library(vclock STATIC vclock.c) +target_link_libraries(vclock core) + +add_library(xrow STATIC xrow.c iproto_constants.c) +target_link_libraries(xrow server core small vclock misc box_error + scramble ${MSGPUCK_LIBRARIES}) add_library(box STATIC iproto.cc @@ -101,5 +108,6 @@ add_library(box STATIC lua/xlog.c ${bin_sources}) -target_link_libraries(box xrow ${ZSTD_LIBRARIES} ${common_libraries}) +target_link_libraries(box box_error stat xrow vclock crc32 scramble + ${ZSTD_LIBRARIES} ${common_libraries}) add_dependencies(box build_bundled_libs) diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt index e86f4c980c..3bfe94b9b8 100644 --- a/test/unit/CMakeLists.txt +++ b/test/unit/CMakeLists.txt @@ -8,21 +8,32 @@ set_source_files_compile_flags(${all_sources}) include_directories(${PROJECT_SOURCE_DIR}/src) include_directories(${PROJECT_BINARY_DIR}/src) include_directories(${CMAKE_SOURCE_DIR}/third_party) -add_executable(heap.test heap.c unit.c) -add_executable(heap_iterator.test heap_iterator.c unit.c) -add_executable(rlist.test rlist.c unit.c) -add_executable(stailq.test stailq.c unit.c) + +add_library(unit STATIC unit.c) + +add_executable(heap.test heap.c) +target_link_libraries(heap.test unit) +add_executable(heap_iterator.test heap_iterator.c) +target_link_libraries(heap_iterator.test unit) +add_executable(rlist.test rlist.c) +target_link_libraries(rlist.test unit) +add_executable(stailq.test stailq.c) +target_link_libraries(stailq.test unit) add_executable(uri.test uri.c unit.c) -target_link_libraries(uri.test uri) +target_link_libraries(uri.test uri unit) add_executable(queue.test queue.c) add_executable(mhash.test mhash.c) add_executable(mhash_bytemap.test mhash_bytemap.c) -add_executable(rope_basic.test rope_basic.c ${CMAKE_SOURCE_DIR}/src/lib/salad/rope.c) -add_executable(rope_avl.test rope_avl.c ${CMAKE_SOURCE_DIR}/src/lib/salad/rope.c) -add_executable(rope_stress.test rope_stress.c ${CMAKE_SOURCE_DIR}/src/lib/salad/rope.c) -add_executable(rope.test rope.c ${CMAKE_SOURCE_DIR}/src/lib/salad/rope.c) -add_executable(bit.test bit.c bit.c) +add_executable(rope_basic.test rope_basic.c) +target_link_libraries(rope_basic.test salad) +add_executable(rope_avl.test rope_avl.c) +target_link_libraries(rope_avl.test salad) +add_executable(rope_stress.test rope_stress.c) +target_link_libraries(rope_stress.test salad) +add_executable(rope.test rope.c) +target_link_libraries(rope.test salad) add_executable(int96.test int96.cc) +add_executable(bit.test bit.c bit.c) target_link_libraries(bit.test bit) add_executable(bitset_basic.test bitset_basic.c) target_link_libraries(bitset_basic.test bitset) @@ -32,11 +43,8 @@ add_executable(bitset_index.test bitset_index.c) target_link_libraries(bitset_index.test bitset) add_executable(base64.test base64.c) target_link_libraries(base64.test misc) - -add_executable(uuid.test uuid.c unit.c - ${CMAKE_SOURCE_DIR}/src/tt_uuid.c - ${CMAKE_SOURCE_DIR}/src/random.c) -target_link_libraries(uuid.test bit core) +add_executable(uuid.test uuid.c) +target_link_libraries(uuid.test uuid unit) add_executable(bps_tree.test bps_tree.cc) target_link_libraries(bps_tree.test small misc) @@ -52,23 +60,19 @@ add_executable(light.test light.cc) target_link_libraries(light.test small) add_executable(bloom.test bloom.cc) target_link_libraries(bloom.test salad) -add_executable(vclock.test vclock.cc unit.c - ${CMAKE_SOURCE_DIR}/src/box/error.cc - ${CMAKE_SOURCE_DIR}/src/rmean.c - ${CMAKE_SOURCE_DIR}/src/histogram.c) -target_link_libraries(vclock.test xrow core salad small) -add_executable(xrow.test xrow.cc unit.c - ${CMAKE_SOURCE_DIR}/src/box/error.cc) -target_link_libraries(xrow.test server misc xrow ${MSGPUCK_LIBRARIES}) - -add_executable(fiber.test fiber.cc unit.c) +add_executable(vclock.test vclock.cc) +target_link_libraries(vclock.test vclock unit) +add_executable(xrow.test xrow.cc) +target_link_libraries(xrow.test xrow unit) + +add_executable(fiber.test fiber.cc) set_source_files_properties(fiber.cc PROPERTIES COMPILE_FLAGS -O0) -target_link_libraries(fiber.test core) +target_link_libraries(fiber.test core unit) if (NOT ENABLE_GCOV) # This test is known to be broken with GCOV - add_executable(guard.test guard.cc unit.c) - target_link_libraries(guard.test core) + add_executable(guard.test guard.cc) + target_link_libraries(guard.test core unit) endif () add_executable(fiber_stress.test fiber_stress.cc) @@ -83,14 +87,8 @@ target_link_libraries(fiber_channel.test core) add_executable(fiber_channel_stress.test fiber_channel_stress.cc) target_link_libraries(fiber_channel_stress.test core) -add_executable(coio.test coio.cc unit.c - ${CMAKE_SOURCE_DIR}/src/sio.cc - ${CMAKE_SOURCE_DIR}/src/evio.cc - ${CMAKE_SOURCE_DIR}/src/coio.cc - ${CMAKE_SOURCE_DIR}/src/coio_task.c - ${CMAKE_SOURCE_DIR}/src/fio.c - ${CMAKE_SOURCE_DIR}/src/iobuf.cc) -target_link_libraries(coio.test core eio bit uri) +add_executable(coio.test coio.cc ${CMAKE_SOURCE_DIR}/src/iobuf.cc) +target_link_libraries(coio.test core eio bit uri unit) if (ENABLE_BUNDLED_MSGPUCK) set(MSGPUCK_DIR ${PROJECT_SOURCE_DIR}/src/lib/msgpuck/) @@ -106,10 +104,8 @@ if (ENABLE_BUNDLED_MSGPUCK) target_link_libraries(msgpack.test ${MSGPUCK_LIBRARIES}) endif () -add_executable(scramble.test scramble.c - ${CMAKE_SOURCE_DIR}/src/scramble.c - ${CMAKE_SOURCE_DIR}/src/random.c) -target_link_libraries(scramble.test misc core) +add_executable(scramble.test scramble.c) +target_link_libraries(scramble.test scramble) add_executable(guava.test guava.c) target_link_libraries(guava.test salad small) @@ -122,24 +118,20 @@ add_executable(reflection_c.test reflection_c.c unit.c ${CMAKE_SOURCE_DIR}/src/reflection.c) add_executable(reflection_cxx.test reflection_cxx.cc unit.c ${CMAKE_SOURCE_DIR}/src/reflection.c) -add_executable(csv.test csv.c - ${CMAKE_SOURCE_DIR}/src/lib/csv/csv.c -) - -add_executable(rmean.test rmean.cc unit.c - ${CMAKE_SOURCE_DIR}/src/rmean.c) -target_link_libraries(rmean.test core) +add_executable(csv.test csv.c) +target_link_libraries(csv.test csv) -add_executable(histogram.test histogram.c unit.c - ${CMAKE_SOURCE_DIR}/src/histogram.c) -target_link_libraries(histogram.test core) +add_executable(rmean.test rmean.cc) +target_link_libraries(rmean.test stat unit) +add_executable(histogram.test histogram.c) +target_link_libraries(histogram.test stat unit) -add_executable(say.test say.c unit.c) -target_link_libraries(say.test core) +add_executable(say.test say.c) +target_link_libraries(say.test core unit) include_directories(${PROJECT_SOURCE_DIR}/src/box) -add_executable(vy_mem.test vy_mem.c unit.c) -target_link_libraries(vy_mem.test box) +add_executable(vy_mem.test vy_mem.c) +target_link_libraries(vy_mem.test box unit) -add_executable(column_mask.test column_mask.c unit.c) -target_link_libraries(column_mask.test box) +add_executable(column_mask.test column_mask.c) +target_link_libraries(column_mask.test box unit) -- GitLab