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
38 changes: 23 additions & 15 deletions faiss/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -488,27 +488,35 @@ if(FAISS_USE_LTO)
endif()

find_package(OpenMP REQUIRED)
target_link_libraries(faiss PRIVATE OpenMP::OpenMP_CXX
${ZeroMQ_LIBRARIES} # Add ZMQ
${MSGPACK_LIBRARIES} # Add msgpack-c

# Link faiss static library with PUBLIC linkage to ZMQ
# PUBLIC because faiss source code uses ZMQ headers AND consumers must link ZMQ
target_link_libraries(faiss
PUBLIC PkgConfig::ZMQ # PUBLIC: faiss uses ZMQ and propagates to consumers
PRIVATE OpenMP::OpenMP_CXX
PRIVATE ${MSGPACK_LIBRARIES}
)
if(FAISS_BUILD_AVX_VERSIONS)
target_link_libraries(faiss_avx2 PRIVATE OpenMP::OpenMP_CXX
${ZeroMQ_LIBRARIES} # Add ZMQ
${MSGPACK_LIBRARIES} # Add msgpack-c
target_link_libraries(faiss_avx2
PUBLIC PkgConfig::ZMQ
PRIVATE OpenMP::OpenMP_CXX
PRIVATE ${MSGPACK_LIBRARIES}
)
target_link_libraries(faiss_avx512 PRIVATE OpenMP::OpenMP_CXX
${ZeroMQ_LIBRARIES} # Add ZMQ
${MSGPACK_LIBRARIES} # Add msgpack-c
target_link_libraries(faiss_avx512
PUBLIC PkgConfig::ZMQ
PRIVATE OpenMP::OpenMP_CXX
PRIVATE ${MSGPACK_LIBRARIES}
)
target_link_libraries(faiss_avx512_spr PRIVATE OpenMP::OpenMP_CXX
${ZeroMQ_LIBRARIES} # Add ZMQ
${MSGPACK_LIBRARIES} # Add msgpack-c
target_link_libraries(faiss_avx512_spr
PUBLIC PkgConfig::ZMQ
PRIVATE OpenMP::OpenMP_CXX
PRIVATE ${MSGPACK_LIBRARIES}
)
endif()
target_link_libraries(faiss_sve PRIVATE OpenMP::OpenMP_CXX
${ZeroMQ_LIBRARIES} # Add ZMQ
${MSGPACK_LIBRARIES} # Add msgpack-c
target_link_libraries(faiss_sve
PUBLIC PkgConfig::ZMQ
PRIVATE OpenMP::OpenMP_CXX
PRIVATE ${MSGPACK_LIBRARIES}
)

if(FAISS_ENABLE_MKL)
Expand Down
11 changes: 10 additions & 1 deletion faiss/python/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -247,13 +247,22 @@ endif()

find_package(OpenMP REQUIRED)

# ZMQ is now linked transitively through faiss (PUBLIC linkage)
target_link_libraries(swigfaiss PRIVATE
faiss
faiss # This will automatically link ZMQ::zmq transitively
Python::Module
Python::NumPy
OpenMP::OpenMP_CXX
)

# macOS: Python::Module adds -undefined dynamic_lookup which prevents actual linking
# Override to use proper symbol resolution and force ZMQ linkage
if(APPLE)
set_target_properties(swigfaiss PROPERTIES
LINK_FLAGS "-Wl,-undefined,error"
)
endif()

if(FAISS_BUILD_AVX_VERSIONS)
target_link_libraries(swigfaiss_avx2 PRIVATE
faiss_avx2
Expand Down