Skip to content

Commit

Permalink
Split nanoarrow into a separate CMake object library (#2763)
Browse files Browse the repository at this point in the history
  • Loading branch information
jp-dark committed Jun 28, 2024
1 parent 8b73a7e commit 4df83e7
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 9 deletions.
32 changes: 23 additions & 9 deletions libtiledbsoma/src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,28 @@
message(STATUS "Starting TileDB-SOMA build.")

# ###########################################################
# Common object library
# Nanoarrow object library
# ###########################################################
set_source_files_properties(
${CMAKE_CURRENT_SOURCE_DIR}/external/src/nanoarrow/nanoarrow.c PROPERTIES LANGUAGE CXX)
${CMAKE_CURRENT_SOURCE_DIR}/external/src/nanoarrow/nanoarrow.c PROPERTIES LANGUAGE CXX
)
add_library(TILEDBSOMA_NANOARROW_OBJECT OBJECT
${CMAKE_CURRENT_SOURCE_DIR}/external/src/nanoarrow/nanoarrow.c
)
target_compile_options(TILEDBSOMA_NANOARROW_OBJECT
PRIVATE
${TILEDBSOMA_COMPILE_OPTIONS}
${TILEDBSOMA_SANITIZER_OPTIONS}
)
target_include_directories(TILEDBSOMA_NANOARROW_OBJECT
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/external/include/nanoarrow
)
set_property(TARGET TILEDBSOMA_NANOARROW_OBJECT PROPERTY POSITION_INDEPENDENT_CODE ON)

# ###########################################################
# Common object library
# ###########################################################
add_library(TILEDB_SOMA_OBJECTS OBJECT
${CMAKE_CURRENT_SOURCE_DIR}/reindexer/reindexer.cc
${CMAKE_CURRENT_SOURCE_DIR}/soma/managed_query.cc
Expand All @@ -28,7 +45,6 @@ add_library(TILEDB_SOMA_OBJECTS OBJECT
${CMAKE_CURRENT_SOURCE_DIR}/utils/version.cc
${CMAKE_CURRENT_SOURCE_DIR}/external/src/thread_pool/thread_pool.cc
${CMAKE_CURRENT_SOURCE_DIR}/external/src/thread_pool/status.cc
${CMAKE_CURRENT_SOURCE_DIR}/external/src/nanoarrow/nanoarrow.c
)

target_compile_definitions(TILEDB_SOMA_OBJECTS
Expand All @@ -44,19 +60,14 @@ target_compile_options(TILEDB_SOMA_OBJECTS
)

set_property(TARGET TILEDB_SOMA_OBJECTS PROPERTY POSITION_INDEPENDENT_CODE ON)

target_include_directories(TILEDB_SOMA_OBJECTS
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/external/include/nanoarrow
)

target_include_directories(TILEDB_SOMA_OBJECTS
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/vendor
${CMAKE_CURRENT_SOURCE_DIR}/soma
${CMAKE_CURRENT_SOURCE_DIR}/external/khash
${CMAKE_CURRENT_SOURCE_DIR}/external/include
${CMAKE_CURRENT_SOURCE_DIR}/external/include/nanoarrow
$<TARGET_PROPERTY:TileDB::tiledb_shared,INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:spdlog::spdlog,INTERFACE_INCLUDE_DIRECTORIES>
${pybind11_INCLUDE_DIRS}
Expand All @@ -69,6 +80,7 @@ set(TILEDBSOMA_INSTALL_TARGETS "")
if(TILEDBSOMA_BUILD_STATIC)
add_library(tiledbsoma_static STATIC
$<TARGET_OBJECTS:TILEDB_SOMA_OBJECTS>
$<TARGET_OBJECTS:TILEDBSOMA_NANOARROW_OBJECT>
)
list(APPEND TILEDBSOMA_INSTALL_TARGETS tiledbsoma_static)
if(WIN32)
Expand All @@ -93,6 +105,7 @@ if(TILEDBSOMA_BUILD_STATIC)
else()
add_library(tiledbsoma SHARED
$<TARGET_OBJECTS:TILEDB_SOMA_OBJECTS>
$<TARGET_OBJECTS:TILEDBSOMA_NANOARROW_OBJECT>
)
list(APPEND TILEDBSOMA_INSTALL_TARGETS tiledbsoma)
target_link_libraries(tiledbsoma
Expand Down Expand Up @@ -220,6 +233,7 @@ if(TILEDBSOMA_BUILD_CLI)
add_executable(tiledbsoma-cli
${CMAKE_CURRENT_SOURCE_DIR}/cli/cli.cc
$<TARGET_OBJECTS:TILEDB_SOMA_OBJECTS>
$<TARGET_OBJECTS:TILEDBSOMA_NANOARROW_OBJECT>
)

list(APPEND TILEDBSOMA_INSTALL_TARGETS tiledbsoma-cli)
Expand Down
1 change: 1 addition & 0 deletions libtiledbsoma/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ find_package(Catch_EP REQUIRED)

add_executable(unit_soma
$<TARGET_OBJECTS:TILEDB_SOMA_OBJECTS>
$<TARGET_OBJECTS:TILEDBSOMA_NANOARROW_OBJECT>
common.cc
common.h
unit_column_buffer.cc
Expand Down

0 comments on commit 4df83e7

Please sign in to comment.