mirror of
https://gitee.com/milvus-io/milvus.git
synced 2024-11-29 18:38:44 +08:00
8902e2220e
https://github.com/milvus-io/milvus/issues/35854 Signed-off-by: chyezh <chyezh@outlook.com> Co-authored-by: chyezh <chyezh@outlook.com>
87 lines
3.4 KiB
Bash
87 lines
3.4 KiB
Bash
#!/bin/bash
|
|
|
|
# Licensed to the LF AI & Data foundation under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you 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.
|
|
|
|
# Exit immediately for non zero status
|
|
set +e
|
|
|
|
SOURCE="${BASH_SOURCE[0]}"
|
|
# fix on zsh environment
|
|
if [[ "$SOURCE" == "" ]]; then
|
|
SOURCE="$0"
|
|
fi
|
|
|
|
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
|
|
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
|
SOURCE="$(readlink "$SOURCE")"
|
|
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
|
|
done
|
|
ROOT_DIR="$( cd -P "$( dirname "$SOURCE" )/.." && pwd )"
|
|
|
|
unameOut="$(uname -s)"
|
|
|
|
case "${unameOut}" in
|
|
Linux*)
|
|
# check if use asan.
|
|
MILVUS_ENABLE_ASAN_LIB=$(ldd $ROOT_DIR/internal/core/output/lib/libmilvus_core.so | grep asan | awk '{print $3}')
|
|
if [ -n "$MILVUS_ENABLE_ASAN_LIB" ]; then
|
|
echo "Enable ASAN With ${MILVUS_ENABLE_ASAN_LIB}"
|
|
export MILVUS_ENABLE_ASAN_LIB="$MILVUS_ENABLE_ASAN_LIB"
|
|
fi
|
|
|
|
LIBJEMALLOC=$PWD/internal/core/output/lib/libjemalloc.so
|
|
if test -f "$LIBJEMALLOC"; then
|
|
export LD_PRELOAD="$LIBJEMALLOC"
|
|
else
|
|
echo "WARN: Cannot find $LIBJEMALLOC"
|
|
fi
|
|
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:$ROOT_DIR/internal/core/output/lib/pkgconfig:$ROOT_DIR/internal/core/output/lib64/pkgconfig"
|
|
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:$ROOT_DIR/internal/core/output/lib:$ROOT_DIR/internal/core/output/lib64"
|
|
export RPATH=$LD_LIBRARY_PATH;;
|
|
Darwin*)
|
|
# detect llvm version by valid list
|
|
for llvm_version in 17 16 15 14 NOT_FOUND ; do
|
|
if brew ls --versions llvm@${llvm_version} > /dev/null; then
|
|
break
|
|
fi
|
|
done
|
|
if [ "${llvm_version}" = "NOT_FOUND" ] ; then
|
|
echo "valid llvm(>=14) not installed"
|
|
exit 1
|
|
fi
|
|
llvm_prefix="$(brew --prefix llvm@${llvm_version})"
|
|
export CLANG_TOOLS_PATH="${llvm_prefix}/bin"
|
|
export CC="ccache ${llvm_prefix}/bin/clang"
|
|
export CXX="ccache ${llvm_prefix}/bin/clang++"
|
|
export ASM="${llvm_prefix}/bin/clang"
|
|
export CFLAGS="-Wno-deprecated-declarations -I$(brew --prefix libomp)/include"
|
|
export CXXFLAGS=${CFLAGS}
|
|
export LDFLAGS="-L$(brew --prefix libomp)/lib"
|
|
|
|
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:$ROOT_DIR/internal/core/output/lib/pkgconfig"
|
|
export DYLD_LIBRARY_PATH=$ROOT_DIR/internal/core/output/lib
|
|
export RPATH=$DYLD_LIBRARY_PATH;;
|
|
MINGW*)
|
|
extra_path=$(cygpath -w "$ROOT_DIR/internal/core/output/lib")
|
|
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH};${extra_path}\pkgconfig"
|
|
export LD_LIBRARY_PATH=$extra_path
|
|
export RPATH=$LD_LIBRARY_PATH;;
|
|
*)
|
|
echo "does not supported"
|
|
esac
|
|
|