Слияние кода завершено, страница обновится автоматически
cmake_minimum_required(ВЕРСИЯ 2.8.7)
# Проект faiss
project(faiss C CXX)
option(BUILD_TUTORIAL "Сборка руководств" ВКЛЮЧЕНО)
option(BUILD_TEST "Сборка тестов" ВКЛЮЧЕНО)
option(BUILD_WITH_GPU "Сборка faiss с поддержкой GPU (CUDA)" ВКЛЮЧЕНО)
option(WITH_MKL "Сборка с MKL, если ВКЛЮЧЕНО (OpenBLAS, если ВЫКЛЮЧЕНО)" ВЫКЛЮЧЕНО)
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Modules)
# OpenMP
find_package(OpenMP ТРЕБУЕТСЯ)
# BLAS (MKL или OpenBLAS)
if(WITH_MKL)
find_package(MKL ТРЕБУЕТСЯ)
include_directories(${MKL_INCLUDE_DIRS})
set(BLAS_LIB ${MKL_LIBRARIES})
else()
find_package(OpenBLAS ТРЕБУЕТСЯ)
include_directories(${OpenBLAS_INCLUDE_DIR})
set(BLAS_LIB ${OpenBLAS_LIB})
endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fPIC -m64 -Wall -g -O3 -msse4 -mpopcnt -fopenmp -Wno-sign-compare")
add_definitions(-DFINTEGER=int)
# Укажите путь к выходным файлам bin и lib
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
# Укажите заголовочные и исходные файлы
file(GLOB faiss_cpu_headers ${CMAKE_CURRENT_SOURCE_DIR}/*.h)
file(GLOB faiss_cpu_cpp ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
set(faiss_lib faiss)
add_library(${faiss_lib} STATIC ${faiss_cpu_headers} ${faiss_cpu_cpp})
target_link_libraries(${faiss_lib} ${OpenMP_CXX_FLAGS} ${BLAS_LIB})
# Сборка gpu библиотеки
if(BUILD_WITH_GPU)
include(cmake/Cuda.cmake)
add_subdirectory(gpu)
endif(BUILD_WITH_GPU)
# Сборка руководств
if(BUILD_TUTORIAL)
add_subdirectory(tutorial)
endif(BUILD_TUTORIAL)
# Сборка тестов
if(BUILD_TEST)
add_subdirectory(tests)
endif(BUILD_TEST)
# Установка библиотек
install(TARGETS ${faiss_lib}
ARCHIVE DESTINATION lib
)
install(FILES ${faiss_cpu_headers} DESTINATION include/faiss)
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )