未验证 提交 e739fb1b 编写于 作者: X XuanYang-cn 提交者: GitHub

optimize download & compile of sqlite (#3361)

* optimize sqlite
Signed-off-by: Nyangxuan <xuan.yang@zilliz.com>

* rm sqlite url
Signed-off-by: Nyangxuan <xuan.yang@zilliz.com>

* fix bug
Signed-off-by: Nyangxuan <xuan.yang@zilliz.com>
Co-authored-by: Nyangxuan <xuan.yang@zilliz.com>
上级 befc21ec
......@@ -11,7 +11,6 @@
set(MILVUS_THIRDPARTY_DEPENDENCIES
SQLite
fiu
AWS
oatpp)
......@@ -26,9 +25,7 @@ foreach (DEPENDENCY ${MILVUS_THIRDPARTY_DEPENDENCIES})
endforeach ()
macro(build_dependency DEPENDENCY_NAME)
if ("${DEPENDENCY_NAME}" STREQUAL "SQLite")
build_sqlite()
elseif ("${DEPENDENCY_NAME}" STREQUAL "fiu")
if ("${DEPENDENCY_NAME}" STREQUAL "fiu")
build_fiu()
elseif ("${DEPENDENCY_NAME}" STREQUAL "oatpp")
build_oatpp()
......@@ -203,14 +200,6 @@ foreach (_VERSION_ENTRY ${TOOLCHAIN_VERSIONS_TXT})
set(${_LIB_NAME} "${_LIB_VERSION}")
endforeach ()
if (DEFINED ENV{MILVUS_SQLITE_URL})
set(SQLITE_SOURCE_URL "$ENV{MILVUS_SQLITE_URL}")
else ()
set(SQLITE_SOURCE_URL
"https://www.sqlite.org/2019/sqlite-autoconf-${SQLITE_VERSION}.tar.gz")
endif ()
if (DEFINED ENV{MILVUS_FIU_URL})
set(FIU_SOURCE_URL "$ENV{MILVUS_FIU_URL}")
else ()
......@@ -232,56 +221,6 @@ else ()
endif ()
# ----------------------------------------------------------------------
# SQLite
macro(build_sqlite)
message(STATUS "Building SQLITE-${SQLITE_VERSION} from source")
set(SQLITE_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/sqlite_ep-prefix/src/sqlite_ep")
set(SQLITE_INCLUDE_DIR "${SQLITE_PREFIX}/include")
set(SQLITE_STATIC_LIB
"${SQLITE_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}sqlite3${CMAKE_STATIC_LIBRARY_SUFFIX}")
set(SQLITE_CONFIGURE_ARGS
"--prefix=${SQLITE_PREFIX}"
"CC=${CMAKE_C_COMPILER}"
"CXX=${CMAKE_CXX_COMPILER}"
"CFLAGS=${EP_C_FLAGS}"
"CXXFLAGS=${EP_CXX_FLAGS}")
ExternalProject_Add(sqlite_ep
URL
${SQLITE_SOURCE_URL}
${EP_LOG_OPTIONS}
URL_MD5
"3c68eb400f8354605736cd55400e1572"
CONFIGURE_COMMAND
"./configure"
${SQLITE_CONFIGURE_ARGS}
BUILD_COMMAND
${MAKE}
${MAKE_BUILD_ARGS}
BUILD_IN_SOURCE
1
BUILD_BYPRODUCTS
"${SQLITE_STATIC_LIB}")
file(MAKE_DIRECTORY "${SQLITE_INCLUDE_DIR}")
add_library(sqlite STATIC IMPORTED)
set_target_properties(
sqlite
PROPERTIES IMPORTED_LOCATION "${SQLITE_STATIC_LIB}"
INTERFACE_INCLUDE_DIRECTORIES "${SQLITE_INCLUDE_DIR}")
add_dependencies(sqlite sqlite_ep)
endmacro()
if (MILVUS_WITH_SQLITE)
resolve_dependency(SQLite)
include_directories(SYSTEM "${SQLITE_INCLUDE_DIR}")
link_directories(SYSTEM ${SQLITE_PREFIX}/lib/)
endif ()
# ----------------------------------------------------------------------
# fiu
macro(build_fiu)
......
......@@ -72,6 +72,11 @@ if ( MILVUS_WITH_MYSQLPP )
add_subdirectory( mysqlpp )
endif ()
# ****************************** Thirdparty sqlite ***************************************
if ( MILVUS_WITH_SQLITE )
add_subdirectory( sqlite )
endif()
# ****************************** Thirdparty prometheus ***************************************
if (MILVUS_WITH_PROMETHEUS)
add_subdirectory( prometheus )
......
#-------------------------------------------------------------------------------
# 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_SQLITE_URL} )
set( SQLITE_SOURCE_URL "$ENV{MILVUS_SQLITE_URL}" )
else ()
set( SQLITE_SOURCE_URL "https://www.sqlite.org/2019/sqlite-autoconf-${SQLITE_VERSION}.tar.gz" )
endif ()
macro( build_sqlite )
message(STATUS "Building SQLITE-${SQLITE_VERSION} from source")
ExternalProject_Add(
sqlite_ep
PREFIX ${CMAKE_BINARY_DIR}/3rdparty_download/sqlite-subbuild
DOWNLOAD_DIR ${THIRDPARTY_DOWNLOAD_PATH}
INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}
URL ${SQLITE_SOURCE_URL}
URL_MD5 "3c68eb400f8354605736cd55400e1572"
CONFIGURE_COMMAND <SOURCE_DIR>/configure
"--prefix=<INSTALL_DIR>"
"CC=${CCACHE_FOUND} ${CMAKE_C_COMPILER}"
"CXX=${CCACHE_FOUND} ${CMAKE_CXX_COMPILER}"
"CFLAGS=${EP_C_FLAGS}"
"CXXFLAGS=-O3 -fPIC -Wno-error -fopenmp"
BUILD_COMMAND ${MAKE} ${MAKE_BUILD_ARGS}
INSTALL_COMMAND ${MAKE} install
${EP_LOG_OPTIONS} )
ExternalProject_Get_Property( sqlite_ep INSTALL_DIR )
if( NOT IS_DIRECTORY ${INSTALL_DIR}/include )
file( MAKE_DIRECTORY "${INSTALL_DIR}/include" )
endif()
add_library(sqlite STATIC IMPORTED)
set_target_properties( sqlite
PROPERTIES
IMPORTED_GLOBAL TRUE
IMPORTED_LOCATION ${INSTALL_DIR}/lib/libsqlite3.a
INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include )
add_dependencies(sqlite sqlite_ep)
endmacro()
build_sqlite()
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册