fetch_ml/native/queue_index/CMakeLists.txt
Jeremie Fraeys 43d241c28d
feat: implement C++ native libraries for performance-critical operations
- Add arena allocator for zero-allocation hot paths
- Add thread pool for parallel operations
- Add mmap utilities for memory-mapped I/O
- Implement queue_index with heap-based priority queue
- Implement dataset_hash with SIMD support (SHA-NI, ARMv8)
- Add runtime SIMD detection for cross-platform correctness
- Add comprehensive tests and benchmarks
2026-02-16 20:38:04 -05:00

44 lines
1.1 KiB
CMake

# queue_index - Modular structure
set(QUEUE_INDEX_SOURCES
storage/index_storage.cpp
heap/binary_heap.cpp
index/priority_queue.cpp
queue_index.cpp
)
add_library(queue_index SHARED ${QUEUE_INDEX_SOURCES})
target_include_directories(queue_index PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/storage
${CMAKE_CURRENT_SOURCE_DIR}/heap
${CMAKE_CURRENT_SOURCE_DIR}/index
)
target_include_directories(queue_index PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/../common/include
)
target_link_libraries(queue_index PRIVATE
fetchml_common
Threads::Threads
)
# Require C++20
target_compile_features(queue_index PUBLIC cxx_std_20)
# Set library properties
set_target_properties(queue_index PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION ${PROJECT_VERSION_MAJOR}
PUBLIC_HEADER "queue_index.h"
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}
)
# Install
install(TARGETS queue_index
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
PUBLIC_HEADER DESTINATION include/fetchml
)