diff options
Diffstat (limited to 'scripts/include/common.sh')
-rw-r--r-- | scripts/include/common.sh | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/scripts/include/common.sh b/scripts/include/common.sh new file mode 100644 index 0000000..cd5f399 --- /dev/null +++ b/scripts/include/common.sh @@ -0,0 +1,154 @@ +#!/bin/bash + +function common_build_init { + export dir=$(pwd) + + if [[ "${installname}" == "" ]]; then + export installname=${package} + fi + + export srcdir=$(realpath "${dir}/../src/${package}") + if [ ! -d "${srcdir}" ]; then + echo "Error: Package sources directory not exists for package '${package}'." + exit 3 + fi + + export builddir=$(realpath "${dir}/../tmp/${package}") + export bindir=$(realpath "${dir}/../bin/${installname}") + + rm -rf "${builddir}" + mkdir -p "${builddir}" +} + +function common_package_init { + export scriptsdir=$(realpath .) + if [[ "${package}" == "" ]]; then + echo "Error: Missing package name" + echo "Example: ./build.sh virglrenderer" + exit 1 + fi + + export packagefile="${package}.sh" + + if [ ! -f "../packages/${packagefile}" ]; then + echo "Error: Package '${package}' not exists." + exit 2 + fi +} + +function common_run_package { + cd ../packages + echo "${package}.sh" + source "./${package}.sh" +} + +function common_use_package { + cd ${scriptsdir} + export envfile="../env/run${package}.sh" + echo "#!/bin/bash" >${envfile} + echo "" >>${envfile} + echo "package_use" + package_use + echo "\$*" >>${envfile} + chmod 0755 ${envfile} +} + +function env_path { + echo "export PATH=${bindir}/$1:\$PATH" >>${envfile} +} + +function env_lib_library_path { + echo "export LD_LIBRARY_PATH=${bindir}/$1:\$LD_LIBRARY_PATH" >>${envfile} +} + +function env_pkg_config_path { + echo "export PKG_CONFIG_PATH=${bindir}/$1:\$PKG_CONFIG_PATH" >>${envfile} +} + +function env_man { + echo "export MANPATH=${bindir}/$1:\$PATH" >>${envfile} +} + +function run_autoreconf { + cd "${srcdir}" + echo "make distclean" + make distclean + echo "autoreconf $*" + autoreconf $* +} + +function run_configure { + cd "${builddir}" + echo "configure --prefix="${bindir}" $*" + "$srcdir"/configure --prefix="${bindir}" $* +} + +function run_cmake { + cd "${builddir}" + echo "cmake -DCMAKE_INSTALL_PREFIX:PATH="${bindir}" "$srcdir" $*" + cmake -DCMAKE_INSTALL_PREFIX:PATH="${bindir}" "$srcdir" $* +} + +function run_make { + echo "make" + make +} + +function run_make_install { + echo "make install" + make install +} + +function run_git_clone { + echo "clone git repository $1" + git clone $1 "../src/${package}" +} + +function run_hg_clone { + echo "clone hg repository $1" + hg clone $1 "../src/${package}" +} + +function run_git_switch_branch { + cd "${srcdir}" + + if [[ "${srcbranch}" == "" ]]; then + export srcbranch="$1" + fi + echo "git checkout ${srcbranch}" + git checkout "${srcbranch}" +} + +function run_hg_switch_branch { + cd "${srcdir}" + + if [[ "${srcbranch}" == "" ]]; then + export srcbranch="$1" + fi + echo "hg update ${srcbranch}" + hg update ${srcbranch} +} + +function package_use { + env_path "bin" + env_lib_library_path "lib" +} + +function package_update_source { + cd "../src/${package}" + if [ -d .git ]; then + echo "git fetch origin" + git fetch origin + return + fi + if [ -d .hg ]; then + echo "hg pull" + hg pull + return + fi +} + +function common_clean_destination { + echo "clean ${installname}" + rm -rf "${installname}" +} |