lua-htmlparser/.travis/setup_lua.sh
Vadim A. Misbakh-Soloviov f102657929
travis: kicking lj
2019-06-10 00:22:40 +03:00

110 lines
2.6 KiB
Bash

#! /bin/bash
# vim: ft=sh sw=2 ts=2
# A script for setting up environment for travis-ci testing.
# Sets up Lua and Luarocks.
# LUA must be "lua5.x" or "luajit".
# luajit2.0 - master v2.0
# luajit2.1 - master v2.1
set -eufo pipefail
LUAJIT_VERSION="2.0.5"
LUAJIT_BASE="LuaJIT-${LUAJIT_VERSION}"
# shellcheck disable=SC1091
source .travis/platform.sh
LUA_HOME_DIR="${TRAVIS_BUILD_DIR}/install/lua"
LR_HOME_DIR="${TRAVIS_BUILD_DIR}/install/luarocks"
mkdir "${HOME}/.lua" -p
LUAJIT="no"
if [ "${LUA:0:6}" == "luajit" ]; then
LUAJIT="yes"
fi
mkdir -p "${LUA_HOME_DIR}"
if [ "${LUAJIT}" == "yes" ]; then
if [ "${LUA}" == "luajit" ]; then
curl -LSs "https://github.com/LuaJIT/LuaJIT/archive/v${LUAJIT_VERSION}.tar.gz" | tar xz
else
LJ_V="${LUA##luajit}"
[[ -z "${LJ_V}" ]] && LJ_V="2.0"
git clone https://github.com/LuaJIT/LuaJIT.git -b "v${LJ_V}" "${LUAJIT_BASE}"
fi
cd "${LUAJIT_BASE}"
if [ "${LUA}" == "luajit2.1" ]; then
# force the INSTALL_TNAME to be luajit
perl -i -pe 's/INSTALL_TNAME=.+/INSTALL_TNAME= luajit/' Makefile
fi
make && make install PREFIX="${LUA_HOME_DIR}"
ln -s "${LUA_HOME_DIR}/bin/luajit" "${HOME}/.lua/luajit"
ln -s "${LUA_HOME_DIR}/bin/luajit" "${HOME}/.lua/lua"
else
if [ "${LUA}" == "lua5.1" ]; then
suff="ftp/lua-5.1.5.tar.gz"
elif [ "${LUA}" == "lua5.2" ]; then
suff="ftp/lua-5.2.4.tar.gz"
elif [ "${LUA}" == "lua5.3" ]; then
suff="ftp/lua-5.3.5.tar.gz"
elif [ "${LUA}" == "lua5.4" ]; then
suff="work/lua-5.4.0-alpha-rc2.tar.gz"
fi
mkdir lua_build -p
curl -LSs "http://www.lua.org/${suff}" | tar xz -C lua_build --strip-components=1
cd lua_build
# Build Lua without backwards compatibility for testing
perl -i -pe 's/-DLUA_COMPAT_(ALL|5_[0-9])//' src/Makefile
make "${PLATFORM}"
make INSTALL_TOP="${LUA_HOME_DIR}" install
ln -s "${LUA_HOME_DIR}/bin/lua" "${HOME}/.lua/lua"
ln -s "${LUA_HOME_DIR}/bin/luac" "${HOME}/.lua/luac"
fi
cd "${TRAVIS_BUILD_DIR}"
lua -v
LUAROCKS_BASE=luarocks-$LUAROCKS
curl -LSs https://luarocks.github.io/luarocks/releases/"${LUAROCKS_BASE}".tar.gz | tar xz
cd "${LUAROCKS_BASE}"
if [ "${LUA}" == "luajit" ]; then
export LUA_INCDIR="${LUA_HOME_DIR}/include/luajit-2.0"
elif [ "${LUA}" == "luajit2.0" ]; then
export LUA_INCDIR="${LUA_HOME_DIR}/include/luajit-2.0"
elif [ "${LUA}" == "luajit2.1" ]; then
export LUA_INCDIR="${LUA_HOME_DIR}/include/luajit-2.1"
fi
./configure --with-lua="${LUA_HOME_DIR}" --prefix="${LR_HOME_DIR}"
make build && make install
ln -s "${LR_HOME_DIR}/bin/luarocks" "${HOME}/.lua/luarocks"
cd "${TRAVIS_BUILD_DIR}"
luarocks --version
rm -rf "${LUAROCKS_BASE}"
if [ "${LUAJIT}" == "yes" ]; then
rm -rf "${LUAJIT_BASE}"
else
rm -rf lua_build
fi