-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathbuild.sh
executable file
·60 lines (56 loc) · 1.99 KB
/
build.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/bin/bash
PDIR=`cd ..; pwd`
type=${type:-rls}
type_dbg=Debug
type_rls=Release
type_afr=RelWithDebInfo
eval 'CMAKE_BUILD_TYPE=$type_'${type}
BUILD_DIR=${BUILD_DIR:-build-${type}}
mkdir -p ${BUILD_DIR}
cd ${BUILD_DIR}
#CXX_HOME=${CXX_HOME:-/opt/rh/gcc-toolset-9/root}
#CXX_HOME=${CXX_HOME:-/opt/rh/gcc-toolset-10/root}
#CXX_HOME=${CXX_HOME:-/opt/rh/gcc-toolset-11/root}
CXX_BIN_DIR=`which ${CXX:-g++}`
CXX_BIN_DIR=`dirname ${CXX_BIN_DIR}`
CXX_HOME_DEFAULT=`realpath ${CXX_BIN_DIR}/..`
CXX_HOME=${CXX_HOME:-${CXX_HOME_DEFAULT}}
core=${PDIR}/toplingdb/sideplugin/topling-core
if [ ! -e $core ]; then
core=${PDIR}/toplingdb/sideplugin/topling-zip
fi
if [ ! -e ${core} ]; then
echo "Not Found ${core}, run commands:" >&2
echo " cd $PDIR" >&2
echo " git clone https://github.com/topling/toplingdb.git" >&2
echo " make -j`nproc`" >&2
exit 1
fi
if [ `uname -m` = x86_64 -a `bash ${core}/cpu_has_bmi2.sh` = 1 ]; then
FORCE_CPU_ARCH="-DFORCE_CPU_ARCH=haswell"
fi
# both TOPLING_LIB_DIR=/node-shared/lib and -L/node-shared/lib need
# be specified
export LC_ALL=C
cmake -DHAVE_EXTERNAL_ROCKSDB=1 -DROCKSDB_SRC_PATH=${PDIR}/toplingdb \
-DTOPLING_CORE_HOME=${core} \
-DTOPLING_LIB_DIR=/opt/toplingdb/lib \
-DWITH_BOOST=${PDIR}/boost_1_77_0 \
-DCMAKE_C_COMPILER=${CXX_HOME}/bin/${CC:-gcc} \
-DCMAKE_CXX_COMPILER=${CXX_HOME}/bin/${CXX:-g++} \
-DCMAKE_CXX_FLAGS="-Wno-deprecated-declarations -Wno-attributes" \
-DCMAKE_CXX_FLAGS_RELEASE="-O3 -g3 -DNDEBUG" \
-DADD_GDB_INDEX=ON \
-DCOMPILATION_COMMENT="MyTopling Enterprise" \
-DCOMPILATION_COMMENT_SERVER="MyTopling Enterprise Server" \
-DWITH_MYSQLD_LDFLAGS="-Wl,--no-as-needed" \
-DROCKSDB_DISABLE_MARCH_NATIVE=on \
$FORCE_CPU_ARCH \
-DWITH_FB_VECTORDB=1 \
-DWITH_ZLIB=system \
-DWITH_ZSTD=bundled \
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
-DCMAKE_INSTALL_PREFIX=/opt/mytopling-${type} \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-Wno-dev \
"$@" ..