diff --git a/cmake/BuildSophia.cmake b/cmake/BuildSophia.cmake index 65eaccf5dc2c4598b33df838ba5e76e4fcb2c6eb..157bea342cce04c5b63a60ae5eda37d8f77b4313 100644 --- a/cmake/BuildSophia.cmake +++ b/cmake/BuildSophia.cmake @@ -1,13 +1,13 @@ # A macro to build the bundled sophia library # macro(sophia_build) - set(SOPHIA_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/third_party/sophia/sophia) + set(SOPHIA_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/third_party/sophia/sophia/sophia) set(SOPHIA_OPTS CFLAGS="${CMAKE_C_FLAGS}" LDFLAGS="${CMAKE_SHARED_LINKER_FLAGS}") separate_arguments(SOPHIA_OPTS) if (${PROJECT_BINARY_DIR} STREQUAL ${PROJECT_SOURCE_DIR}) - add_custom_command(OUTPUT ${PROJECT_SOURCE_DIR}/third_party/sophia/sophia/libsophia.a + add_custom_command(OUTPUT ${PROJECT_SOURCE_DIR}/third_party/sophia/libsophia.a WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/third_party/sophia COMMAND $(MAKE) ${SOPHIA_OPTS} clean COMMAND $(MAKE) ${SOPHIA_OPTS} static @@ -17,7 +17,7 @@ macro(sophia_build) add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/third_party/sophia COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/third_party/sophia ) - add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/third_party/sophia/sophia/libsophia.a + add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/third_party/sophia/libsophia.a WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/third_party/sophia COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/third_party/sophia ${PROJECT_BINARY_DIR}/third_party/sophia COMMAND $(MAKE) ${SOPHIA_OPTS} clean @@ -26,8 +26,8 @@ macro(sophia_build) ) endif() add_custom_target(libsophia ALL - DEPENDS ${PROJECT_BINARY_DIR}/third_party/sophia/sophia/libsophia.a + DEPENDS ${PROJECT_BINARY_DIR}/third_party/sophia/libsophia.a ) - message(STATUS "Use bundled Sophia: ${SOPHIA_INCLUDE_DIR}") - set (sophia_lib "${PROJECT_BINARY_DIR}/third_party/sophia/sophia/libsophia.a") + message(STATUS "Use bundled Sophia: ${PROJECT_SOURCE_DIR}/third_party/sophia/") + set (sophia_lib "${PROJECT_BINARY_DIR}/third_party/sophia/libsophia.a") endmacro(sophia_build) diff --git a/src/box/sophia_index.cc b/src/box/sophia_index.cc index eaef744a82c9d985c4ca1b88bfb72c4bb1235ac8..e03460c2e3ac69223a04562c9be167b24cc8b322 100644 --- a/src/box/sophia_index.cc +++ b/src/box/sophia_index.cc @@ -132,17 +132,15 @@ sophia_configure(struct space *space, struct key_def *key_def) void *env = factory->env; void *c = sp_ctl(env); char pointer[128]; + char pointer_arg[128]; char name[128]; snprintf(name, sizeof(name), "%" PRIu32, key_def->space_id); sp_set(c, "db", name); snprintf(name, sizeof(name), "db.%" PRIu32 ".index.cmp", key_def->space_id); snprintf(pointer, sizeof(pointer), "pointer: %p", (void*)sophia_index_compare); - sp_set(c, name, pointer); - snprintf(name, sizeof(name), "db.%" PRIu32 ".index.cmp_arg", - key_def->space_id); - snprintf(pointer, sizeof(pointer), "pointer: %p", (void*)key_def); - sp_set(c, name, pointer); + snprintf(pointer_arg, sizeof(pointer_arg), "pointer: %p", (void*)key_def); + sp_set(c, name, pointer, pointer_arg); snprintf(name, sizeof(name), "db.%" PRIu32, key_def->space_id); void *db = sp_get(c, name); if (db == NULL) diff --git a/third_party/sophia b/third_party/sophia index 13d0195e8c2694e01219d87592a5dd8e6a2e3b41..2eb631891536c2e2df57639991bee86fde7488d9 160000 --- a/third_party/sophia +++ b/third_party/sophia @@ -1 +1 @@ -Subproject commit 13d0195e8c2694e01219d87592a5dd8e6a2e3b41 +Subproject commit 2eb631891536c2e2df57639991bee86fde7488d9