Tue, 04 Oct 2022 19:25:07 +0200
fix over-optimization of strstr
1. it's actually less performant to frequently read bytes
from an array instead of using the native word length
2. the SBO buffer should be local and not static to allow
multi-threading usage
set(sources utils.c allocator.c string.c list.c linked_list.c tree.c buffer.c hash_key.c hash_map.c basic_mempool.c ) set(headers cx/common.h cx/utils.h cx/string.h cx/allocator.h cx/iterator.h cx/list.h cx/linked_list.h cx/tree.h cx/buffer.h cx/map.h cx/hash_key.h cx/hash_map.h cx/mempool.h cx/basic_mempool.h ) add_library(ucx SHARED ${sources}) add_library(ucx_static STATIC ${sources}) target_include_directories(ucx PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_include_directories(ucx_static PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) set_target_properties(ucx PROPERTIES SOVERSION 4 VERSION 4.0.0) set_target_properties(ucx_static PROPERTIES VERSION ${CMAKE_PROJECT_VERSION}) # it is sufficient to specify the headers for one of the targets set_target_properties(ucx PROPERTIES PUBLIC_HEADER "${headers}") include(GNUInstallDirs) install(TARGETS ucx ucx_static LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ucx)