Stanislav N. aka pztrn
862b336556
Fixed Windows build script to install gcc in MSYS2, which is needed for some dependencies. Fixed game launching on Windows, now ioq3 will search for game data in proper directory.
116 lines
4.4 KiB
Bash
116 lines
4.4 KiB
Bash
#!/bin/bash
|
|
|
|
# URTrator Windows build scripts.
|
|
# Requirements: installed and properly configured Go and MSYS2
|
|
|
|
#####################################################################
|
|
# VARIABLES
|
|
#####################################################################
|
|
# Path of script.
|
|
SCRIPT_PATH=$(dirname "`readlink -f "${BASH_SOURCE}"`")
|
|
# Go binary path.
|
|
GO=$(which go | awk {' print $1 '})
|
|
|
|
#####################################################################
|
|
# Checks if Go installed and properly configured.
|
|
check_golang() {
|
|
if [ ${#GO} -eq 0 ]; then
|
|
echo "! Can't find Go binary. Please, install Go and configure your environment."
|
|
fi
|
|
}
|
|
|
|
# Check if we are in valid MSYS2 environment.
|
|
check_msys() {
|
|
echo "* Checking for MSYS..."
|
|
if [ -z MSYSTEM ]; then
|
|
echo "! Probably, not MSYS2 environment. Building can continue only with MSYS2!"
|
|
exit 1
|
|
fi
|
|
|
|
if [ "${MSYSTEM}" == "MSYS" ]; then
|
|
echo "! Invalid MSYS2 environment. You're launched MSYS console, but building can continue in MINGW64 console only."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# Check if we have neccessary MSYS packages installed.
|
|
check_msys_packages() {
|
|
echo "* Installing neccessary MSYS2 packages..."
|
|
pacman -S ${MINGW_PACKAGE_PREFIX}-tools-git ${MINGW_PACKAGE_PREFIX}-gtk2 ${MINGW_PACKAGE_PREFIX}-pkg-config ${MINGW_PACKAGE_PREFIX}-gtk-engines ${MINGW_PACKAGE_PREFIX}-gtk-engine-murrine ${MINGW_PACKAGE_PREFIX}-gcc --noconfirm --needed
|
|
}
|
|
|
|
# Build URTrator
|
|
urtrator_build() {
|
|
echo "* Starting URTrator building..."
|
|
# Create temporary Go root.
|
|
if [ -d "${SCRIPT_PATH}/GOROOT" ]; then
|
|
rm -rf "${SCRIPT_PATH}/GOROOT"
|
|
fi
|
|
mkdir -p "${SCRIPT_PATH}/GOROOT"
|
|
# Exporting Go variables.
|
|
export GOPATH="${SCRIPT_PATH}/GOROOT"
|
|
|
|
echo "* Obtaining URTrator and dependencies sources..."
|
|
go get -u -d -v github.com/pztrn/urtrator
|
|
echo "* Building URTrator"
|
|
go install -v github.com/pztrn/urtrator
|
|
}
|
|
|
|
# Prepare urtrator distribution.
|
|
urtrator_dist() {
|
|
echo "* Preparing URTrator distribution..."
|
|
|
|
echo "* Creating distribution directory..."
|
|
if [ -d "${SCRIPT_PATH}/dist" ]; then
|
|
rm -rf "${SCRIPT_PATH}/dist"
|
|
fi
|
|
mkdir "${SCRIPT_PATH}/dist"
|
|
|
|
echo "* Copying URTrator binary..."
|
|
cp "${GOPATH}/bin/urtrator.exe" "${SCRIPT_PATH}/dist/"
|
|
|
|
echo "* Getting list of library dependencies..."
|
|
DEPS=$(ldd dist/urtrator.exe | grep -v "Windows" | awk {' print $1 '})
|
|
echo "* Copying dependencies..."
|
|
for dep in ${DEPS[@]}; do
|
|
cp /mingw64/bin/${dep} "${SCRIPT_PATH}/dist"
|
|
done
|
|
|
|
echo "* Installing GTK+2 theme engines..."
|
|
mkdir -p "${SCRIPT_PATH}/dist/lib/gtk-2.0/2.10.0/engines/"
|
|
cp /mingw64/lib/gtk-2.0/2.10.0/engines/libmurrine.dll "${SCRIPT_PATH}/dist/lib/gtk-2.0/2.10.0/engines/"
|
|
cp /mingw64/lib/gtk-2.0/2.10.0/engines/libredmond95.dll "${SCRIPT_PATH}/dist/lib/gtk-2.0/2.10.0/engines/"
|
|
cp /mingw64/lib/gtk-2.0/2.10.0/engines/libthinice.dll "${SCRIPT_PATH}/dist/lib/gtk-2.0/2.10.0/engines/"
|
|
cp /mingw64/lib/gtk-2.0/2.10.0/engines/libmist.dll "${SCRIPT_PATH}/dist/lib/gtk-2.0/2.10.0/engines/"
|
|
cp /mingw64/lib/gtk-2.0/2.10.0/engines/libindustrial.dll "${SCRIPT_PATH}/dist/lib/gtk-2.0/2.10.0/engines/"
|
|
cp /mingw64/lib/gtk-2.0/2.10.0/engines/libhcengine.dll "${SCRIPT_PATH}/dist/lib/gtk-2.0/2.10.0/engines/"
|
|
cp /mingw64/lib/gtk-2.0/2.10.0/engines/libglide.dll "${SCRIPT_PATH}/dist/lib/gtk-2.0/2.10.0/engines/"
|
|
cp /mingw64/lib/gtk-2.0/2.10.0/engines/libcrux-engine.dll "${SCRIPT_PATH}/dist/lib/gtk-2.0/2.10.0/engines/"
|
|
cp /mingw64/lib/gtk-2.0/2.10.0/engines/libclearlooks.dll "${SCRIPT_PATH}/dist/lib/gtk-2.0/2.10.0/engines/"
|
|
cp /mingw64/lib/gtk-2.0/2.10.0/engines/libwimp.dll "${SCRIPT_PATH}/dist/lib/gtk-2.0/2.10.0/engines/"
|
|
|
|
echo "* Checking that we haven't forget any of dependencies..."
|
|
LIBS=$(ls "${SCRIPT_PATH}/dist" | grep ".dll")
|
|
for lib in ${LIBS[@]}; do
|
|
LIBDEPS=$(ldd "${SCRIPT_PATH}/dist/${lib}" | grep -v "Windows" | awk {' print $1 '})
|
|
for libdep in ${LIBDEPS[@]}; do
|
|
if [ ! -f "${SCRIPT_PATH}/dist/${lib}" ]; then
|
|
cp /mingw64/bin/${libdep} "${SCRIPT_PATH}/dist"
|
|
fi
|
|
done
|
|
done
|
|
|
|
echo "* Installing default theme..."
|
|
mkdir -p "${SCRIPT_PATH}/dist/themes"
|
|
cp -R /mingw64/share/themes/ "${SCRIPT_PATH}/dist/"
|
|
}
|
|
|
|
echo "Launched in ${SCRIPT_PATH}"
|
|
check_msys
|
|
check_golang
|
|
check_msys_packages
|
|
urtrator_build
|
|
urtrator_dist
|
|
|
|
echo "*** URTrator done."
|