Files
openGauss-server/cmake/src/buildfunction.sh
2023-02-20 22:01:02 +08:00

168 lines
5.6 KiB
Bash
Executable File

#!/bin/bash
# Copyright (c) Huawei Technologies Co., Ltd. 2010-2022. All rights reserved.
# date: 2020-12-22
# version: 1.0
SRC_CODE="here will be change by cmake"
TO_DEST="here will be change by cmake"
DO_CMD=$1
function build_timezone()
{
export LD_LIBRARY_PATH=$1:$LD_LIBRARY_PATH
echo LD_LIBRARY_PATH:${LD_LIBRARY_PATH}
ZIC_CMD="${CMAKE_BUILD_PATH}/zic"
TIMEZONE_DATA_PATH=${TRUNK_CODE_PATH}
$($CMAKE_BUILD_PATH/zic -d $CMAKE_BUILD_PATH/timezone -p 'US/Eastern' $TIMEZONE_DATA_PATH/africa $TIMEZONE_DATA_PATH/antarctica $TIMEZONE_DATA_PATH/asia $TIMEZONE_DATA_PATH/australasia $TIMEZONE_DATA_PATH/europe $TIMEZONE_DATA_PATH/northamerica $TIMEZONE_DATA_PATH/southamerica $TIMEZONE_DATA_PATH/pacificnew $TIMEZONE_DATA_PATH/etcetera $TIMEZONE_DATA_PATH/factory $TIMEZONE_DATA_PATH/backward $TIMEZONE_DATA_PATH/systemv $TIMEZONE_DATA_PATH/solar87 $TIMEZONE_DATA_PATH/solar88 $TIMEZONE_DATA_PATH/solar89)
}
function export_ldpath()
{
export LD_LIBRARY_PATH=$2:$LD_LIBRARY_PATH
}
function create_conversionfile()
{
sqlin=$(cat ${OPENGS_TOP_PATH}/src/common/backend/utils/mb/conversion_procs/conversion_create.sql.in)
set $sqlin
while [ "$#" -gt 0 ] ;
do
name=$1;shift;
se=$1;shift;
de=$1; shift;
func=$1; shift;
obj=$1; shift;
echo "-- $se --> $de";
echo "CREATE OR REPLACE FUNCTION $func (INTEGER, INTEGER, CSTRING, INTERNAL, INTEGER) RETURNS VOID AS '\$libdir/$obj', '$func' LANGUAGE C STRICT NOT FENCED;";
echo "COMMENT ON FUNCTION $func(INTEGER, INTEGER, CSTRING, INTERNAL, INTEGER) IS 'internal conversion function for $se to $de';";
echo "DROP CONVERSION pg_catalog.$name;";
echo "CREATE DEFAULT CONVERSION pg_catalog.$name FOR '$se' TO '$de' FROM $func;";
echo "COMMENT ON CONVERSION pg_catalog.$name IS 'conversion for $se to $de';";
done > $CMAKE_BUILD_PATH/conversion_create.sql
}
function create_snowballfile()
{
sqlin=$(cat ${OPENGS_TOP_PATH}/src/common/backend/snowball/snowball.sql.in)
echo '-- Language-specific snowball dictionaries' > $CMAKE_BUILD_PATH/snowball_create.sql
cat ${OPENGS_TOP_PATH}/src/common/backend/snowball/snowball_func.sql.in >> $CMAKE_BUILD_PATH/snowball_create.sql
LANGUAGES="
danish danish
dutch dutch
english english
finnish finnish
french french
german german
hungarian hungarian
italian italian
norwegian norwegian
portuguese portuguese
romanian romanian
russian english
spanish spanish
swedish swedish
turkish turkish
"
set $LANGUAGES
while [ "$#" -gt 0 ] ;
do
lang=$1; shift;
nonascdictname=$lang;
ascdictname=$1; shift;
if [ -s "${OPENGS_TOP_PATH}/src/common/backend/snowball/stopwords/${lang}.stop" ] ; then
stop=", StopWords=${lang}" ;
else
stop="";
fi;
echo "$sqlin" |
sed -e "s#_LANGNAME_#$lang#g" |
sed -e "s#_DICTNAME_#${lang}_stem#g" |
sed -e "s#_CFGNAME_#${lang}#g" |
sed -e "s#_ASCDICTNAME_#${ascdictname}_stem#g" |
sed -e "s#_NONASCDICTNAME_#${nonascdictname}_stem#g" |
sed -e "s#_STOPWORDS_#${stop}#g" ;
done >> $CMAKE_BUILD_PATH/snowball_create.sql
}
function runscript()
{
if [ ! "X$1" = "X" ]; then
eval $1
echo "$1" >> $CMAKE_BUILD_PATH/runscript.log
fi
if [ ! "X$2" = "X" ]; then
eval $2
echo "$2" >> $CMAKE_BUILD_PATH/runscript.log
fi
if [ ! "X$3" = "X" ]; then
eval $3
echo "$3" >> $CMAKE_BUILD_PATH/runscript.log
fi
if [ ! "X$4" = "X" ]; then
eval $4
echo "$4" >> $CMAKE_BUILD_PATH/runscript.log
fi
}
function get_gs_version()
{
cd $1
csv_version=$(git log | grep commit | head -1 | awk '{print $2}' | cut -b 1-8)
commits=$(git log | grep "See merge request" | wc -l)
mrid=$(git log | grep "See merge request" | head -1 | awk -F! '{print $2}' | grep -o '[0-9]\+')
debug_str="$DEBUG_TYPE"
product=$(cat build/script/gaussdb.ver | grep 'PRODUCT' | awk -F "=" '{print $2}')
version=$(cat build/script/gaussdb.ver | grep 'VERSION' | awk -F "=" '{print $2}')
if [ "${ENABLE_LITE_MODE}" == "ON" ]; then
product="$product-lite"
fi
if test "$enable_ccache" = yes; then
default_gs_version="(${product} ${version} build 1f1f1f1f) compiled at 2100-00-00 00:00:00 commit 9999 last mr 9999 debug"
else
date_time=$(date -d today +"%Y-%m-%d %H:%M:%S")
default_gs_version="(${product} ${version} build ${csv_version}) compiled at $date_time commit $commits last mr $mrid $debug_str"
fi
printf "${default_gs_version}"
}
function get_time_for_roach()
{
tmp=$(date +'%d %b %Y %H:%M:%S')
printf "${tmp}"
}
#These only used for *check cmd.
TRUNK_CODE_PATH=$2
CMAKE_BUILD_PATH=$3
INSTALLED_PATH=$4
ENABLE_MEMORY_CHECK=""
MAKE_PROGRAM=$6
OPENGS_TOP_PATH=${TRUNK_CODE_PATH}/${openGauss}
case "${DO_CMD}" in
--build_timezone|build_timezone)
build_timezone $5 ;;
--export_ldpath|export_ldpath)
export_ldpath $2;;
--create_conversionfile|conversion)
create_conversionfile ;;
--create_snowballfile|snowball)
create_snowballfile ;;
--get_gs_versionstr|--s)
get_gs_version "$2";;
--get_time_for_roach)
get_time_for_roach ;;
--runscript*|runscript)
runscript "$4" "$5" "$6" "$7" ;;
--build-package*|package*|--p)
cd ${TRUNK_CODE_PATH}/Build/Script && ./mpp_package_cmake.sh -i ${INSTALLED_PATH} -m;;
*)
echo "no $1: after you add cmd in cmake, then add response function in buildfunction.sh" ;;
esac