mirror of https://github.com/milvus-io/milvus.git
Optimize fiu and finish thirdparty optimization (#3412)
* fiu runable Signed-off-by: yangxuan <xuan.yang@zilliz.com> * runable riu Signed-off-by: yangxuan <xuan.yang@zilliz.com> * optimize fiu and rm ThirdPartyPackages.cmake Signed-off-by: yangxuan <xuan.yang@zilliz.com> * fix bug Signed-off-by: yangxuan <xuan.yang@zilliz.com> * fix test using fiu Signed-off-by: yangxuan <xuan.yang@zilliz.com> Co-authored-by: yangxuan <xuan.yang@zilliz.com>pull/3417/head
parent
9fcc38346c
commit
4460757f85
|
@ -61,10 +61,6 @@ import_mysql_inc()
|
|||
using_ccache_if_defined( MILVUS_USE_CCACHE )
|
||||
|
||||
include( ExternalProject )
|
||||
include( FetchContent )
|
||||
set( FETCHCONTENT_BASE_DIR ${MILVUS_BINARY_DIR}/3rdparty_download )
|
||||
set(FETCHCONTENT_QUIET OFF)
|
||||
include( ThirdPartyPackages )
|
||||
|
||||
# **************************** Compiler arguments ****************************
|
||||
|
||||
|
|
|
@ -1,252 +0,0 @@
|
|||
# Copyright (C) 2019-2020 Zilliz. All rights reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software distributed under the License
|
||||
# is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||
# or implied. See the License for the specific language governing permissions and limitations under the License.
|
||||
|
||||
set(MILVUS_THIRDPARTY_DEPENDENCIES
|
||||
|
||||
fiu)
|
||||
|
||||
message(STATUS "Using ${MILVUS_DEPENDENCY_SOURCE} approach to find dependencies")
|
||||
|
||||
# For each dependency, set dependency source to global default, if unset
|
||||
foreach (DEPENDENCY ${MILVUS_THIRDPARTY_DEPENDENCIES})
|
||||
if ("${${DEPENDENCY}_SOURCE}" STREQUAL "")
|
||||
set(${DEPENDENCY}_SOURCE ${MILVUS_DEPENDENCY_SOURCE})
|
||||
endif ()
|
||||
endforeach ()
|
||||
|
||||
macro(build_dependency DEPENDENCY_NAME)
|
||||
if ("${DEPENDENCY_NAME}" STREQUAL "fiu")
|
||||
build_fiu()
|
||||
else ()
|
||||
message(FATAL_ERROR "Unknown thirdparty dependency to build: ${DEPENDENCY_NAME}")
|
||||
endif ()
|
||||
endmacro()
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
# Identify OS
|
||||
if (UNIX)
|
||||
if (APPLE)
|
||||
set(CMAKE_OS_NAME "osx" CACHE STRING "Operating system name" FORCE)
|
||||
else (APPLE)
|
||||
## Check for Debian GNU/Linux ________________
|
||||
find_file(DEBIAN_FOUND debian_version debconf.conf
|
||||
PATHS /etc
|
||||
)
|
||||
if (DEBIAN_FOUND)
|
||||
set(CMAKE_OS_NAME "debian" CACHE STRING "Operating system name" FORCE)
|
||||
endif (DEBIAN_FOUND)
|
||||
## Check for Fedora _________________________
|
||||
find_file(FEDORA_FOUND fedora-release
|
||||
PATHS /etc
|
||||
)
|
||||
if (FEDORA_FOUND)
|
||||
set(CMAKE_OS_NAME "fedora" CACHE STRING "Operating system name" FORCE)
|
||||
endif (FEDORA_FOUND)
|
||||
## Check for RedHat _________________________
|
||||
find_file(REDHAT_FOUND redhat-release inittab.RH
|
||||
PATHS /etc
|
||||
)
|
||||
if (REDHAT_FOUND)
|
||||
set(CMAKE_OS_NAME "redhat" CACHE STRING "Operating system name" FORCE)
|
||||
endif (REDHAT_FOUND)
|
||||
## Extra check for Ubuntu ____________________
|
||||
if (DEBIAN_FOUND)
|
||||
## At its core Ubuntu is a Debian system, with
|
||||
## a slightly altered configuration; hence from
|
||||
## a first superficial inspection a system will
|
||||
## be considered as Debian, which signifies an
|
||||
## extra check is required.
|
||||
find_file(UBUNTU_EXTRA legal issue
|
||||
PATHS /etc
|
||||
)
|
||||
if (UBUNTU_EXTRA)
|
||||
## Scan contents of file
|
||||
file(STRINGS ${UBUNTU_EXTRA} UBUNTU_FOUND
|
||||
REGEX Ubuntu
|
||||
)
|
||||
## Check result of string search
|
||||
if (UBUNTU_FOUND)
|
||||
set(CMAKE_OS_NAME "ubuntu" CACHE STRING "Operating system name" FORCE)
|
||||
set(DEBIAN_FOUND FALSE)
|
||||
|
||||
find_program(LSB_RELEASE_EXEC lsb_release)
|
||||
execute_process(COMMAND ${LSB_RELEASE_EXEC} -rs
|
||||
OUTPUT_VARIABLE LSB_RELEASE_ID_SHORT
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
STRING(REGEX REPLACE "\\." "_" UBUNTU_VERSION "${LSB_RELEASE_ID_SHORT}")
|
||||
endif (UBUNTU_FOUND)
|
||||
endif (UBUNTU_EXTRA)
|
||||
endif (DEBIAN_FOUND)
|
||||
endif (APPLE)
|
||||
endif (UNIX)
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
# thirdparty directory
|
||||
set(THIRDPARTY_DIR "${MILVUS_SOURCE_DIR}/thirdparty")
|
||||
|
||||
macro(resolve_dependency DEPENDENCY_NAME)
|
||||
if (${DEPENDENCY_NAME}_SOURCE STREQUAL "AUTO")
|
||||
find_package(${DEPENDENCY_NAME} MODULE)
|
||||
if (NOT ${${DEPENDENCY_NAME}_FOUND})
|
||||
build_dependency(${DEPENDENCY_NAME})
|
||||
endif ()
|
||||
elseif (${DEPENDENCY_NAME}_SOURCE STREQUAL "BUNDLED")
|
||||
build_dependency(${DEPENDENCY_NAME})
|
||||
elseif (${DEPENDENCY_NAME}_SOURCE STREQUAL "SYSTEM")
|
||||
find_package(${DEPENDENCY_NAME} REQUIRED)
|
||||
endif ()
|
||||
endmacro()
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
# ExternalProject options
|
||||
|
||||
string(TOUPPER ${CMAKE_BUILD_TYPE} UPPERCASE_BUILD_TYPE)
|
||||
|
||||
set(EP_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${UPPERCASE_BUILD_TYPE}}")
|
||||
set(EP_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${UPPERCASE_BUILD_TYPE}}")
|
||||
|
||||
# Set -fPIC on all external projects
|
||||
set(EP_CXX_FLAGS "${EP_CXX_FLAGS} -fPIC")
|
||||
set(EP_C_FLAGS "${EP_C_FLAGS} -fPIC")
|
||||
|
||||
# CC/CXX environment variables are captured on the first invocation of the
|
||||
# builder (e.g make or ninja) instead of when CMake is invoked into to build
|
||||
# directory. This leads to issues if the variables are exported in a subshell
|
||||
# and the invocation of make/ninja is in distinct subshell without the same
|
||||
# environment (CC/CXX).
|
||||
set(EP_COMMON_TOOLCHAIN -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER})
|
||||
|
||||
if (CMAKE_AR)
|
||||
set(EP_COMMON_TOOLCHAIN ${EP_COMMON_TOOLCHAIN} -DCMAKE_AR=${CMAKE_AR})
|
||||
endif ()
|
||||
|
||||
if (CMAKE_RANLIB)
|
||||
set(EP_COMMON_TOOLCHAIN ${EP_COMMON_TOOLCHAIN} -DCMAKE_RANLIB=${CMAKE_RANLIB})
|
||||
endif ()
|
||||
|
||||
# External projects are still able to override the following declarations.
|
||||
# cmake command line will favor the last defined variable when a duplicate is
|
||||
# encountered. This requires that `EP_COMMON_CMAKE_ARGS` is always the first
|
||||
# argument.
|
||||
set(EP_COMMON_CMAKE_ARGS
|
||||
${EP_COMMON_TOOLCHAIN}
|
||||
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
||||
-DCMAKE_C_FLAGS=${EP_C_FLAGS}
|
||||
-DCMAKE_C_FLAGS_${UPPERCASE_BUILD_TYPE}=${EP_C_FLAGS}
|
||||
-DCMAKE_CXX_FLAGS=${EP_CXX_FLAGS}
|
||||
-DCMAKE_CXX_FLAGS_${UPPERCASE_BUILD_TYPE}=${EP_CXX_FLAGS})
|
||||
|
||||
if (NOT MILVUS_VERBOSE_THIRDPARTY_BUILD)
|
||||
set(EP_LOG_OPTIONS LOG_CONFIGURE 1 LOG_BUILD 1 LOG_INSTALL 1 LOG_DOWNLOAD 1)
|
||||
else ()
|
||||
set(EP_LOG_OPTIONS)
|
||||
endif ()
|
||||
|
||||
# Ensure that a default make is set
|
||||
if ("${MAKE}" STREQUAL "")
|
||||
find_program(MAKE make)
|
||||
endif ()
|
||||
|
||||
if (NOT DEFINED MAKE_BUILD_ARGS)
|
||||
set(MAKE_BUILD_ARGS "-j8")
|
||||
endif ()
|
||||
message(STATUS "Third Party MAKE_BUILD_ARGS = ${MAKE_BUILD_ARGS}")
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
# Find pthreads
|
||||
|
||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
find_package(Threads REQUIRED)
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
# Versions and URLs for toolchain builds, which also can be used to configure
|
||||
# offline builds
|
||||
|
||||
# Read toolchain versions from cpp/thirdparty/versions.txt
|
||||
file(STRINGS "${THIRDPARTY_DIR}/versions.txt" TOOLCHAIN_VERSIONS_TXT)
|
||||
foreach (_VERSION_ENTRY ${TOOLCHAIN_VERSIONS_TXT})
|
||||
# Exclude comments
|
||||
if (NOT _VERSION_ENTRY MATCHES "^[^#][A-Za-z0-9-_]+_VERSION=")
|
||||
continue()
|
||||
endif ()
|
||||
|
||||
string(REGEX MATCH "^[^=]*" _LIB_NAME ${_VERSION_ENTRY})
|
||||
string(REPLACE "${_LIB_NAME}=" "" _LIB_VERSION ${_VERSION_ENTRY})
|
||||
|
||||
# Skip blank or malformed lines
|
||||
if (${_LIB_VERSION} STREQUAL "")
|
||||
continue()
|
||||
endif ()
|
||||
|
||||
# For debugging
|
||||
#message(STATUS "${_LIB_NAME}: ${_LIB_VERSION}")
|
||||
|
||||
set(${_LIB_NAME} "${_LIB_VERSION}")
|
||||
endforeach ()
|
||||
|
||||
if (DEFINED ENV{MILVUS_FIU_URL})
|
||||
set(FIU_SOURCE_URL "$ENV{MILVUS_FIU_URL}")
|
||||
else ()
|
||||
set(FIU_SOURCE_URL "https://github.com/albertito/libfiu/archive/${FIU_VERSION}.tar.gz"
|
||||
"https://gitee.com/quicksilver/libfiu/repository/archive/${FIU_VERSION}.zip")
|
||||
endif ()
|
||||
|
||||
if (DEFINED ENV{MILVUS_AWS_URL})
|
||||
set(AWS_SOURCE_URL "$ENV{MILVUS_AWS_URL}")
|
||||
else ()
|
||||
set(AWS_SOURCE_URL "https://github.com/aws/aws-sdk-cpp/archive/${AWS_VERSION}.tar.gz")
|
||||
endif ()
|
||||
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
# fiu
|
||||
macro(build_fiu)
|
||||
message(STATUS "Building FIU-${FIU_VERSION} from source")
|
||||
set(FIU_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/fiu_ep-prefix/src/fiu_ep")
|
||||
set(FIU_SHARED_LIB "${FIU_PREFIX}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}fiu${CMAKE_SHARED_LIBRARY_SUFFIX}")
|
||||
set(FIU_INCLUDE_DIR "${FIU_PREFIX}/include")
|
||||
|
||||
ExternalProject_Add(fiu_ep
|
||||
URL
|
||||
${FIU_SOURCE_URL}
|
||||
${EP_LOG_OPTIONS}
|
||||
URL_MD5
|
||||
"75f9d076daf964c9410611701f07c61b"
|
||||
CONFIGURE_COMMAND
|
||||
""
|
||||
BUILD_IN_SOURCE
|
||||
1
|
||||
BUILD_COMMAND
|
||||
${MAKE}
|
||||
${MAKE_BUILD_ARGS}
|
||||
INSTALL_COMMAND
|
||||
${MAKE}
|
||||
"PREFIX=${FIU_PREFIX}"
|
||||
install
|
||||
BUILD_BYPRODUCTS
|
||||
${FIU_SHARED_LIB}
|
||||
)
|
||||
|
||||
file(MAKE_DIRECTORY "${FIU_INCLUDE_DIR}")
|
||||
add_library(fiu SHARED IMPORTED)
|
||||
set_target_properties(fiu
|
||||
PROPERTIES IMPORTED_LOCATION "${FIU_SHARED_LIB}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${FIU_INCLUDE_DIR}")
|
||||
|
||||
add_dependencies(fiu fiu_ep)
|
||||
endmacro()
|
||||
|
||||
resolve_dependency(fiu)
|
||||
|
||||
get_target_property(FIU_INCLUDE_DIR fiu INTERFACE_INCLUDE_DIRECTORIES)
|
||||
include_directories(SYSTEM ${FIU_INCLUDE_DIR})
|
|
@ -97,6 +97,6 @@ endmacro()
|
|||
macro(create_library)
|
||||
cmake_parse_arguments(L "" "TARGET" "SRCS;LIBS;DEFS" ${ARGN})
|
||||
add_library(${L_TARGET} ${L_SRCS})
|
||||
target_link_libraries(${L_TARGET} PRIVATE ${L_LIBS})
|
||||
target_link_libraries(${L_TARGET} PUBLIC ${L_LIBS})
|
||||
target_compile_definitions(${L_TARGET} PRIVATE ${L_DEFS})
|
||||
endmacro()
|
||||
endmacro()
|
||||
|
|
|
@ -88,12 +88,6 @@ add_executable( milvus_server ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
|
|||
target_link_libraries( milvus_server PRIVATE ${SERVER_LIBS} )
|
||||
install( TARGETS milvus_server DESTINATION bin )
|
||||
|
||||
install( FILES
|
||||
${CMAKE_BINARY_DIR}/fiu_ep-prefix/src/fiu_ep/lib/${CMAKE_SHARED_LIBRARY_PREFIX}fiu${CMAKE_SHARED_LIBRARY_SUFFIX}
|
||||
${CMAKE_BINARY_DIR}/fiu_ep-prefix/src/fiu_ep/lib/${CMAKE_SHARED_LIBRARY_PREFIX}fiu${CMAKE_SHARED_LIBRARY_SUFFIX}.0
|
||||
${CMAKE_BINARY_DIR}/fiu_ep-prefix/src/fiu_ep/lib/${CMAKE_SHARED_LIBRARY_PREFIX}fiu${CMAKE_SHARED_LIBRARY_SUFFIX}.1.00
|
||||
DESTINATION lib )
|
||||
|
||||
if ( FOUND_OPENBLAS STREQUAL "false" )
|
||||
install( FILES
|
||||
${CMAKE_BINARY_DIR}/src/index/openblas_ep-prefix/src/openblas_ep/lib/${CMAKE_SHARED_LIBRARY_PREFIX}openblas${CMAKE_SHARED_LIBRARY_SUFFIX}
|
||||
|
|
|
@ -17,4 +17,4 @@ target_sources( cache PRIVATE ${CACHE_FILES}
|
|||
Cache.inl
|
||||
)
|
||||
target_include_directories( cache PUBLIC ${MILVUS_ENGINE_SRC}/cache )
|
||||
add_dependencies( cache fiu )
|
||||
target_link_libraries( cache PRIVATE fiu )
|
||||
|
|
|
@ -13,4 +13,4 @@
|
|||
aux_source_directory( ${MILVUS_ENGINE_SRC}/codecs CODECS_FILES )
|
||||
add_library( codecs STATIC )
|
||||
target_sources( codecs PRIVATE ${CODECS_FILES} )
|
||||
add_dependencies( codecs fiu )
|
||||
target_link_libraries( codecs PRIVATE fiu )
|
||||
|
|
|
@ -90,6 +90,7 @@ set(depend_libs
|
|||
gomp
|
||||
gfortran
|
||||
pthread
|
||||
fiu
|
||||
)
|
||||
|
||||
if (MILVUS_SUPPORT_SPTAG)
|
||||
|
|
|
@ -19,4 +19,4 @@ set(LOG_FILES ${MILVUS_ENGINE_SRC}/log/Log.cpp
|
|||
)
|
||||
|
||||
add_library(log STATIC ${LOG_FILES})
|
||||
add_dependencies(log fiu)
|
||||
target_link_libraries( log PRIVATE fiu )
|
||||
|
|
|
@ -31,4 +31,4 @@ endif ()
|
|||
|
||||
|
||||
target_link_libraries( metrics PRIVATE ${METRICS_LIB} )
|
||||
add_dependencies( metrics fiu )
|
||||
target_link_libraries( metrics PRIVATE fiu )
|
||||
|
|
|
@ -18,4 +18,6 @@ add_library( segment STATIC )
|
|||
target_sources( segment PRIVATE ${SEGMENT_FILES}
|
||||
${THIRDPARTY_DABLOOMS_FILES}
|
||||
)
|
||||
add_dependencies( segment sqlite mysqlpp )
|
||||
target_link_libraries( segment sqlite
|
||||
mysqlpp
|
||||
fiu )
|
||||
|
|
|
@ -15,4 +15,4 @@ aux_source_directory( ${MILVUS_ENGINE_SRC}/utils UTILS_FILES )
|
|||
|
||||
add_library( utils STATIC ${UTILS_FILES} )
|
||||
|
||||
add_dependencies( utils fiu )
|
||||
target_link_libraries( utils PRIVATE fiu )
|
||||
|
|
|
@ -10,10 +10,13 @@
|
|||
# is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||
# or implied. See the License for the specific language governing permissions and limitations under the License.
|
||||
#-------------------------------------------------------------------------------
|
||||
# Using default c and cxx compiler in our build tree
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
# Thirdpart cxx and c flags
|
||||
add_compile_options( -O3 -fPIC -Wno-error -fopenmp )
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
# verbose build info write into log file
|
||||
if ( NOT KNOWHERE_VERBOSE_THIRDPARTY_BUILD )
|
||||
set( EP_LOG_OPTIONS LOG_CONFIGURE 1 LOG_BUILD 1 LOG_INSTALL 1 LOG_DOWNLOAD 1 )
|
||||
else ()
|
||||
|
@ -22,6 +25,8 @@ endif ()
|
|||
|
||||
set( MAKE_BUILD_ARGS "-j6" )
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
# FetchContent config
|
||||
include( FetchContent )
|
||||
set( FETCHCONTENT_BASE_DIR ${MILVUS_BINARY_DIR}/3rdparty_download )
|
||||
set( FETCHCONTENT_QUIET OFF )
|
||||
|
@ -43,6 +48,43 @@ else()
|
|||
set( EP_CXX_COMPILER ${CMAKE_CXX_COMPILER} )
|
||||
endif()
|
||||
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
# Versions and URLs for toolchain builds, which also can be used to configure
|
||||
# offline builds
|
||||
|
||||
file(STRINGS "versions.txt" TOOLCHAIN_VERSIONS_TXT)
|
||||
foreach (_VERSION_ENTRY ${TOOLCHAIN_VERSIONS_TXT})
|
||||
# Exclude comments
|
||||
if (NOT _VERSION_ENTRY MATCHES "^[^#][A-Za-z0-9-_]+_VERSION=")
|
||||
continue()
|
||||
endif ()
|
||||
|
||||
string(REGEX MATCH "^[^=]*" _LIB_NAME ${_VERSION_ENTRY})
|
||||
string(REPLACE "${_LIB_NAME}=" "" _LIB_VERSION ${_VERSION_ENTRY})
|
||||
|
||||
# Skip blank or malformed lines
|
||||
if (${_LIB_VERSION} STREQUAL "")
|
||||
continue()
|
||||
endif ()
|
||||
|
||||
# For debugging
|
||||
#message(STATUS "${_LIB_NAME}: ${_LIB_VERSION}")
|
||||
|
||||
set(${_LIB_NAME} "${_LIB_VERSION}")
|
||||
endforeach ()
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
# Ensure that a default make is set
|
||||
if ("${MAKE}" STREQUAL "")
|
||||
find_program(MAKE make)
|
||||
endif ()
|
||||
|
||||
if (NOT DEFINED MAKE_BUILD_ARGS)
|
||||
set(MAKE_BUILD_ARGS "-j8")
|
||||
endif ()
|
||||
message(STATUS "Third Party MAKE_BUILD_ARGS = ${MAKE_BUILD_ARGS}")
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
# Find pthreads
|
||||
|
||||
|
@ -92,6 +134,11 @@ if (MILVUS_WITH_PROMETHEUS)
|
|||
add_subdirectory( prometheus )
|
||||
endif ()
|
||||
|
||||
# ****************************** Thirdparty fiu ***************************************
|
||||
if ( MILVUS_WITH_FIU )
|
||||
add_subdirectory( fiu )
|
||||
endif()
|
||||
|
||||
# ****************************** Thirdparty oatpp ***************************************
|
||||
if ( MILVUS_WITH_OATPP )
|
||||
add_subdirectory( oatpp )
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
#-------------------------------------------------------------------------------
|
||||
# Copyright (C) 2019-2020 Zilliz. All rights reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software distributed under the License
|
||||
# is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||
# or implied. See the License for the specific language governing permissions and limitations under the License.
|
||||
#-------------------------------------------------------------------------------
|
||||
if ( DEFINED ENV{MILVUS_FIU_URL} )
|
||||
set( FIU_SOURCE_URL "$ENV{MILVUS_FIU_URL}" )
|
||||
else ()
|
||||
set( FIU_SOURCE_URL "https://github.com/albertito/libfiu/archive/${FIU_VERSION}.tar.gz" )
|
||||
endif ()
|
||||
|
||||
macro( build_fiu )
|
||||
message( STATUS "Building FIU-${FIU_VERSION} from source" )
|
||||
|
||||
ExternalProject_Add(
|
||||
fiu_ep
|
||||
PREFIX ${CMAKE_BINARY_DIR}/3rdparty_download/fiu-subbuild
|
||||
DOWNLOAD_DIR ${THIRDPARTY_DOWNLOAD_PATH}
|
||||
INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}
|
||||
URL ${FIU_SOURCE_URL}
|
||||
URL_MD5 "75f9d076daf964c9410611701f07c61b"
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_IN_SOURCE 1
|
||||
BUILD_COMMAND ${MAKE}
|
||||
INSTALL_COMMAND ${MAKE} "PREFIX=<INSTALL_DIR>" install
|
||||
${EP_LOG_OPTIONS}
|
||||
)
|
||||
|
||||
ExternalProject_Get_Property( fiu_ep INSTALL_DIR )
|
||||
if( NOT IS_DIRECTORY ${INSTALL_DIR}/include )
|
||||
file( MAKE_DIRECTORY "${INSTALL_DIR}/include" )
|
||||
endif()
|
||||
add_library( fiu SHARED IMPORTED )
|
||||
set_target_properties( fiu
|
||||
PROPERTIES
|
||||
IMPORTED_GLOBAL TRUE
|
||||
IMPORTED_LOCATION ${INSTALL_DIR}/lib/libfiu.so
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include )
|
||||
add_dependencies(fiu fiu_ep)
|
||||
endmacro()
|
||||
|
||||
build_fiu()
|
||||
|
||||
install( FILES ${INSTALL_DIR}/lib/libfiu.so
|
||||
${INSTALL_DIR}/lib/libfiu.so.0
|
||||
${INSTALL_DIR}/lib/libfiu.so.1.00
|
||||
DESTINATION lib )
|
||||
|
||||
get_target_property( var fiu INTERFACE_INCLUDE_DIRECTORIES )
|
||||
message( STATUS ${var} )
|
||||
set_directory_properties( PROPERTY INCLUDE_DIRECTORIES ${var} )
|
|
@ -25,11 +25,9 @@ add_executable( test_server
|
|||
# ${server_files}
|
||||
# ${server_init_files}
|
||||
)
|
||||
get_target_property( var server INCLUDE_DIRECTORIES)
|
||||
#set_target_properties( server PROPERTIES INTERFACE_INCLUDE_DIRECTORIES $<BUILD_INTERFACE:${var}>)
|
||||
|
||||
target_link_libraries( test_server
|
||||
${UNITTEST_LIBS}
|
||||
${UNITTEST_LIBS}
|
||||
server
|
||||
milvus_engine
|
||||
metrics
|
||||
|
|
|
@ -14,8 +14,7 @@
|
|||
#include <random>
|
||||
#include <thread>
|
||||
|
||||
#include <fiu-control.h>
|
||||
#include <fiu-local.h>
|
||||
#include <fiu/fiu-local.h>
|
||||
#include <gtest/gtest.h>
|
||||
#include <src/server/delivery/ReqScheduler.h>
|
||||
#include <boost/filesystem.hpp>
|
||||
|
|
Loading…
Reference in New Issue