Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 7 additions & 17 deletions cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -198,31 +198,21 @@ python_utils_dump_vars_if_enabled("After Pybind")
python_utils_check_include_dirs("accepted by pybind")
python_utils_check_version_is_as_expected()

#proto files are generated there so it's necessary to include them
include_directories(${CMAKE_CURRENT_BINARY_DIR})
include_directories(${CMAKE_CURRENT_BINARY_DIR}/proto/arcticc/pb2/proto/)
# for IDE resolution otherwise it is lost
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
# proto files are generated there so it's necessary to include them
# Note: These will be added to targets via target_include_directories in arcticdb/CMakeLists.txt

# Add `third_party` include directories (only used for vcpkg builds) so that headers can
# be included without a compile-time check on `ARCTICDB_USING_CONDA` in the source files.
if(NOT ${ARCTICDB_USING_CONDA})
# `semimap.h` is at `third_party/semimap/semimap.h`, so we need `third_party` in the path
# to allow <semimap/semimap.h> to resolve correctly
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/third_party)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/third_party/lmdbcxx)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/third_party/recycle/src)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/third_party/Remotery/lib)
endif()
# Note: These will be added to targets via target_include_directories in arcticdb/CMakeLists.txt

add_subdirectory(arcticdb)

# arcticdb_core_static is used by other projects so we expose the headers via `arcticdb/.../abc.hpp`.
# We plan to introduce a new target that exposes only a "public" subset of headers from this project
# soon instead, as exposing all headers is fragile for consumers.
target_include_directories(arcticdb_core_static PUBLIC
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>"
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/proto/arcticc/pb2/proto/>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>"
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/proto/arcticc/pb2/proto/>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
)
31 changes: 31 additions & 0 deletions cpp/arcticdb/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -809,9 +809,28 @@ target_include_directories(arcticdb_core_object
PRIVATE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
# Proto files are generated in the parent build directory
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/../>
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/../proto/arcticc/pb2/proto/>
# For IDE resolution
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>
${arcticdb_core_includes}
)

# Add `third_party` include directories (only used for vcpkg builds) so that headers can
# be included without a compile-time check on `ARCTICDB_USING_CONDA` in the source files.
if(NOT ${ARCTICDB_USING_CONDA})
# `semimap.h` is at `third_party/semimap/semimap.h`, so we need `third_party` in the path
# to allow <semimap/semimap.h> to resolve correctly
set(THIRD_PARTY_INCLUDE_DIRS
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../third_party>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../third_party/lmdbcxx>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../third_party/recycle/src>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../third_party/Remotery/lib>
)
target_include_directories(arcticdb_core_object PRIVATE ${THIRD_PARTY_INCLUDE_DIRS})
endif()

add_library(arcticdb_core_static STATIC $<TARGET_OBJECTS:arcticdb_core_object>)

# Disable default api so both UTF-8 and UTF-32 can be supported
Expand Down Expand Up @@ -1118,6 +1137,10 @@ if(${TEST})
${BITMAGIC_INCLUDE_DIRS}
)
endif()
# Add third_party include directories for test targets (only used for vcpkg builds)
if(NOT ${ARCTICDB_USING_CONDA})
target_include_directories(test_unit_arcticdb PRIVATE ${THIRD_PARTY_INCLUDE_DIRS})
endif()

gtest_discover_tests(test_unit_arcticdb PROPERTIES DISCOVERY_TIMEOUT 60)

Expand Down Expand Up @@ -1147,6 +1170,10 @@ if(${TEST})
${AWSSDK_LINK_LIBRARIES}
arcticdb_core_static
)
# Add third_party include directories for benchmark targets (only used for vcpkg builds)
if(NOT ${ARCTICDB_USING_CONDA})
target_include_directories(benchmarks PRIVATE ${THIRD_PARTY_INCLUDE_DIRS})
endif()

set(rapidcheck_srcs
column_store/test/rapidcheck_column_store.cpp
Expand Down Expand Up @@ -1217,6 +1244,10 @@ if(${TEST})
${RAPIDCHECK_PRIVATE_LIBRARIES}
)
endif()
# Add third_party include directories for rapidcheck test targets (only used for vcpkg builds)
if(NOT ${ARCTICDB_USING_CONDA})
target_include_directories(arcticdb_rapidcheck_tests PRIVATE ${THIRD_PARTY_INCLUDE_DIRS})
endif()

gtest_discover_tests(arcticdb_rapidcheck_tests PROPERTIES DISCOVERY_TIMEOUT 60)
if(${ARCTICDB_USE_PCH})
Expand Down
Loading