mirror of
https://gitee.com/milvus-io/milvus.git
synced 2025-12-29 23:15:28 +08:00
* refactoring(create_table done) * refactoring * refactor server delivery (insert done) * refactoring server module (count_table done) * server refactor done * cmake pass * refactor server module done. * set grpc response status correctly * format done. * fix redefine ErrorMap() * optimize insert reducing ids data copy * optimize grpc request with reducing data copy * clang format * [skip ci] Refactor server module done. update changlog. prepare for PR * remove explicit and change int32_t to int64_t * add web server * [skip ci] add license in web module * modify header include & comment oatpp environment config * add port configure & create table in handler * modify web url * simple url complation done & add swagger * make sure web url * web functionality done. debuging * add web unittest * web test pass * add web server port * add web server port in template * update unittest cmake file * change web server default port to 19121 * rename method in web module & unittest pass * add search case in unittest for web module * rename some variables * fix bug * unittest pass * web prepare * fix cmd bug(check server status) * update changlog * add web port validate & default set * clang-format pass * add web port test in unittest * add CORS & redirect root to swagger ui * add web status * web table method func cascade test pass * add config url in web module * modify thirdparty cmake to avoid building oatpp test * clang format * update changlog * add constants in web module * reserve Config.cpp * fix constants reference bug * replace web server with async module * modify component to support async * format * developing controller & add test clent into unittest * add web port into demo/server_config * modify thirdparty cmake to allow build test * remove unnecessary comment * add endpoint info in controller * finish web test(bug here) * clang format * add web test cpp to lint exclusions * check null field in GetConfig * add macro RETURN STATUS DTo * fix cmake conflict * fix crash when exit server * remove surplus comments & add http param check * add uri /docs to direct swagger * format * change cmd to system * add default value & unittest in web module * add macros to judge if GPU supported * add macros in unit & add default in index dto & print error message when bind http port fail * format (fix #788) * fix cors bug (not completed) * comment cors * change web framework to simple api * comments optimize * change to simple API * remove comments in controller.hpp * remove EP_COMMON_CMAKE_ARGS in oatpp and oatpp-swagger * add ep cmake args to sqlite * clang-format * change a format * test pass * change name to * fix compiler issue(oatpp-swagger depend on oatpp) * add & in start_server.h * specify lib location with oatpp and oatpp-swagger * add comments * add swagger definition * [skip ci] change http method options status code * remove oatpp swagger(fix #970) * remove comments * check Start web behavior * add default to cpu_cache_capacity * remove swagger component.hpp & /docs url * remove /docs info * remove /docs in unittest * remove space in test rpc * remove repeate info in CHANGLOG * change cache_insert_data default value as a constant * [skip ci] Fix some broken links (#960) * [skip ci] Fix broken link * [skip ci] Fix broken link * [skip ci] Fix broken link * [skip ci] Fix broken links * fix issue 373 (#964) * fix issue 373 * Adjustment format * Adjustment format * Adjustment format * change readme * #966 update NOTICE.md (#967) * remove comments * check Start web behavior * add default to cpu_cache_capacity * remove swagger component.hpp & /docs url * remove /docs info * remove /docs in unittest * remove space in test rpc * remove repeate info in CHANGLOG * change cache_insert_data default value as a constant * adjust web port cofig place * rename web_port variable * set advanced config name add DEFAULT Co-authored-by: jielinxu <52057195+jielinxu@users.noreply.github.com> Co-authored-by: JackLCL <53512883+JackLCL@users.noreply.github.com> Co-authored-by: Cai Yudong <yudong.cai@zilliz.com>
176 lines
5.9 KiB
CMake
176 lines
5.9 KiB
CMake
|
|
macro(set_option_category name)
|
|
set(MILVUS_OPTION_CATEGORY ${name})
|
|
list(APPEND "MILVUS_OPTION_CATEGORIES" ${name})
|
|
endmacro()
|
|
|
|
macro(define_option name description default)
|
|
option(${name} ${description} ${default})
|
|
list(APPEND "MILVUS_${MILVUS_OPTION_CATEGORY}_OPTION_NAMES" ${name})
|
|
set("${name}_OPTION_DESCRIPTION" ${description})
|
|
set("${name}_OPTION_DEFAULT" ${default})
|
|
set("${name}_OPTION_TYPE" "bool")
|
|
endmacro()
|
|
|
|
function(list_join lst glue out)
|
|
if ("${${lst}}" STREQUAL "")
|
|
set(${out} "" PARENT_SCOPE)
|
|
return()
|
|
endif ()
|
|
|
|
list(GET ${lst} 0 joined)
|
|
list(REMOVE_AT ${lst} 0)
|
|
foreach (item ${${lst}})
|
|
set(joined "${joined}${glue}${item}")
|
|
endforeach ()
|
|
set(${out} ${joined} PARENT_SCOPE)
|
|
endfunction()
|
|
|
|
macro(define_option_string name description default)
|
|
set(${name} ${default} CACHE STRING ${description})
|
|
list(APPEND "MILVUS_${MILVUS_OPTION_CATEGORY}_OPTION_NAMES" ${name})
|
|
set("${name}_OPTION_DESCRIPTION" ${description})
|
|
set("${name}_OPTION_DEFAULT" "\"${default}\"")
|
|
set("${name}_OPTION_TYPE" "string")
|
|
|
|
set("${name}_OPTION_ENUM" ${ARGN})
|
|
list_join("${name}_OPTION_ENUM" "|" "${name}_OPTION_ENUM")
|
|
if (NOT ("${${name}_OPTION_ENUM}" STREQUAL ""))
|
|
set_property(CACHE ${name} PROPERTY STRINGS ${ARGN})
|
|
endif ()
|
|
endmacro()
|
|
|
|
#----------------------------------------------------------------------
|
|
set_option_category("Milvus Build Option")
|
|
|
|
define_option(MILVUS_GPU_VERSION "Build GPU version" OFF)
|
|
|
|
define_option(CUSTOMIZATION "Build with customized FAISS library" ON)
|
|
|
|
#----------------------------------------------------------------------
|
|
set_option_category("Thirdparty")
|
|
|
|
set(MILVUS_DEPENDENCY_SOURCE_DEFAULT "BUNDLED")
|
|
|
|
define_option_string(MILVUS_DEPENDENCY_SOURCE
|
|
"Method to use for acquiring MILVUS's build dependencies"
|
|
"${MILVUS_DEPENDENCY_SOURCE_DEFAULT}"
|
|
"AUTO"
|
|
"BUNDLED"
|
|
"SYSTEM")
|
|
|
|
define_option(MILVUS_USE_CCACHE "Use ccache when compiling (if available)" ON)
|
|
|
|
define_option(MILVUS_VERBOSE_THIRDPARTY_BUILD
|
|
"Show output from ExternalProjects rather than just logging to files" ON)
|
|
|
|
define_option(MILVUS_WITH_EASYLOGGINGPP "Build with Easylogging++ library" ON)
|
|
|
|
define_option(MILVUS_WITH_PROMETHEUS "Build with PROMETHEUS library" ON)
|
|
|
|
define_option(MILVUS_WITH_SQLITE "Build with SQLite library" ON)
|
|
|
|
define_option(MILVUS_WITH_SQLITE_ORM "Build with SQLite ORM library" ON)
|
|
|
|
define_option(MILVUS_WITH_MYSQLPP "Build with MySQL++" ON)
|
|
|
|
define_option(MILVUS_WITH_YAMLCPP "Build with yaml-cpp library" ON)
|
|
|
|
if (MILVUS_ENABLE_PROFILING STREQUAL "ON")
|
|
define_option(MILVUS_WITH_LIBUNWIND "Build with libunwind" ON)
|
|
define_option(MILVUS_WITH_GPERFTOOLS "Build with gperftools" ON)
|
|
endif ()
|
|
|
|
define_option(MILVUS_WITH_GRPC "Build with GRPC" ON)
|
|
|
|
define_option(MILVUS_WITH_ZLIB "Build with zlib compression" ON)
|
|
|
|
define_option(MILVUS_WITH_OPENTRACING "Build with Opentracing" ON)
|
|
|
|
define_option(MILVUS_WITH_FIU "Build with fiu" OFF)
|
|
|
|
define_option(MILVUS_WITH_AWS "Build with aws" ON)
|
|
|
|
define_option(MILVUS_WITH_OATPP "Build with oatpp" ON)
|
|
|
|
#----------------------------------------------------------------------
|
|
set_option_category("Test and benchmark")
|
|
|
|
unset(MILVUS_BUILD_TESTS CACHE)
|
|
if (BUILD_UNIT_TEST)
|
|
define_option(MILVUS_BUILD_TESTS "Build the MILVUS googletest unit tests" ON)
|
|
else ()
|
|
define_option(MILVUS_BUILD_TESTS "Build the MILVUS googletest unit tests" OFF)
|
|
endif (BUILD_UNIT_TEST)
|
|
|
|
#----------------------------------------------------------------------
|
|
macro(config_summary)
|
|
message(STATUS "---------------------------------------------------------------------")
|
|
message(STATUS "MILVUS version: ${MILVUS_VERSION}")
|
|
message(STATUS)
|
|
message(STATUS "Build configuration summary:")
|
|
|
|
message(STATUS " Generator: ${CMAKE_GENERATOR}")
|
|
message(STATUS " Build type: ${CMAKE_BUILD_TYPE}")
|
|
message(STATUS " Source directory: ${CMAKE_CURRENT_SOURCE_DIR}")
|
|
if (${CMAKE_EXPORT_COMPILE_COMMANDS})
|
|
message(
|
|
STATUS " Compile commands: ${CMAKE_CURRENT_BINARY_DIR}/compile_commands.json")
|
|
endif ()
|
|
|
|
foreach (category ${MILVUS_OPTION_CATEGORIES})
|
|
|
|
message(STATUS)
|
|
message(STATUS "${category} options:")
|
|
|
|
set(option_names ${MILVUS_${category}_OPTION_NAMES})
|
|
|
|
set(max_value_length 0)
|
|
foreach (name ${option_names})
|
|
string(LENGTH "\"${${name}}\"" value_length)
|
|
if (${max_value_length} LESS ${value_length})
|
|
set(max_value_length ${value_length})
|
|
endif ()
|
|
endforeach ()
|
|
|
|
foreach (name ${option_names})
|
|
if ("${${name}_OPTION_TYPE}" STREQUAL "string")
|
|
set(value "\"${${name}}\"")
|
|
else ()
|
|
set(value "${${name}}")
|
|
endif ()
|
|
|
|
set(default ${${name}_OPTION_DEFAULT})
|
|
set(description ${${name}_OPTION_DESCRIPTION})
|
|
string(LENGTH ${description} description_length)
|
|
if (${description_length} LESS 70)
|
|
string(
|
|
SUBSTRING
|
|
" "
|
|
${description_length} -1 description_padding)
|
|
else ()
|
|
set(description_padding "
|
|
")
|
|
endif ()
|
|
|
|
set(comment "[${name}]")
|
|
|
|
if ("${value}" STREQUAL "${default}")
|
|
set(comment "[default] ${comment}")
|
|
endif ()
|
|
|
|
if (NOT ("${${name}_OPTION_ENUM}" STREQUAL ""))
|
|
set(comment "${comment} [${${name}_OPTION_ENUM}]")
|
|
endif ()
|
|
|
|
string(
|
|
SUBSTRING "${value} "
|
|
0 ${max_value_length} value)
|
|
|
|
message(STATUS " ${description} ${description_padding} ${value} ${comment}")
|
|
endforeach ()
|
|
|
|
endforeach ()
|
|
|
|
endmacro()
|