mirror of
https://github.com/a-bad-dev/luanti-no-place-rep-limit.git
synced 2026-06-08 16:32:10 +00:00
add files for msys2 builds on windows
This commit is contained in:
parent
63b74b0879
commit
e36e89013c
2 changed files with 95 additions and 0 deletions
74
build-win64.sh
Normal file
74
build-win64.sh
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
#!/bin/bash
|
||||
# this script is intended to be run in MSYS2 CLANG64
|
||||
|
||||
VERSION="5.15.2"
|
||||
|
||||
BOLD="\x1b[1m"
|
||||
GREEN="\x1b[32m"
|
||||
RESET="\x1b[0m"
|
||||
|
||||
# system update (skip this most of the time)
|
||||
echo -e "${BOLD}Updating system...${RESET}"
|
||||
pacman -Syu
|
||||
|
||||
# install deps
|
||||
echo -e "${BOLD}Installing dependencies...${RESET}"
|
||||
pacman -S patch zip git mingw-w64-clang-x86_64-{clang,cmake,ninja,curl-winssl,libpng,libjpeg-turbo,freetype,libogg,libvorbis,sqlite3,openal,zstd,gettext,luajit,SDL2}
|
||||
|
||||
# download and extract sources - TODO: download, compile, and use luajit
|
||||
echo -e "${BOLD}Downloading Luanti source code...${RESET}"
|
||||
curl -Lo luanti.tar.gz https://github.com/luanti-org/luanti/archive/refs/tags/${VERSION}.tar.gz
|
||||
|
||||
gunzip luanti.tar.gz
|
||||
tar -xf luanti.tar
|
||||
|
||||
cd luanti-${VERSION}/
|
||||
|
||||
# create and apply patches
|
||||
cat > patch-1.patch <<'EOF'
|
||||
3713c3713
|
||||
< m_repeat_place_time = g_settings->getFloat("repeat_place_time", 0.16f, 2.0f);
|
||||
---
|
||||
> m_repeat_place_time = g_settings->getFloat("repeat_place_time", 0.001f, 2.0f);
|
||||
EOF
|
||||
|
||||
cat > patch-2.patch <<'EOF'
|
||||
151c151
|
||||
< repeat_place_time (Place repetition interval) float 0.25 0.16 2.0
|
||||
---
|
||||
> repeat_place_time (Place repetition interval) float 0.25 0.001 2.0
|
||||
EOF
|
||||
|
||||
patch src/client/game.cpp patch-1.patch
|
||||
patch builtin/settingtypes.txt patch-2.patch
|
||||
|
||||
rm patch-[1-2].patch
|
||||
|
||||
# configure
|
||||
echo -e "${BOLD}Preparing to compile...${RESET}"
|
||||
cmake . -G Ninja -DRUN_IN_PLACE=TRUE
|
||||
|
||||
# compile
|
||||
echo -e "${BOLD}Compiling Luanti...${RESET}"
|
||||
ninja -j$(nproc)
|
||||
|
||||
# bundle DLLs
|
||||
echo -e "${BOLD}Bundling DLLs...${RESET}"
|
||||
chmod +x ../bundle_dlls.sh
|
||||
../bundle_dlls.sh bin/luanti.exe bin/
|
||||
|
||||
# build the zip archive of luanti
|
||||
echo -e "${BOLD}Building zip file...${RESET}"
|
||||
mkdir -p luanti-${VERSION}-msys2-win64/games/
|
||||
|
||||
cp -r bin/ builtin/ client/ clientmods/ textures/ doc/ fonts/ locale/ mods/ worlds/ minetest.conf.example luanti-${VERSION}-msys2-win64/
|
||||
|
||||
zip -r9 luanti-${VERSION}-msys2-win64.zip luanti-${VERSION}-msys2-win64/
|
||||
|
||||
# clean up
|
||||
echo -e "${BOLD}Cleaning up...${RESET}"
|
||||
mv luanti-${VERSION}-msys2-win64.zip ..
|
||||
cd ..
|
||||
rm -rf luanti{.tar,-${VERSION}}
|
||||
|
||||
echo -e "${BOLD}${GREEN}Done!${RESET}"
|
||||
21
bundle_dlls.sh
Normal file
21
bundle_dlls.sh
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
#!/bin/bash
|
||||
# msys2-bundledlls - Copy DLLs linked against a Windows executable for bundling with a distribution
|
||||
|
||||
if [ "$#" -ne 2 ];
|
||||
then
|
||||
echo "Usage: ./bundledlls <executable> <directory>"
|
||||
exit
|
||||
fi
|
||||
|
||||
mkdir -p $2
|
||||
|
||||
# Get list of dynamic libraries, filter by ones that are found in the current MSYS2 prefix
|
||||
# and strip off everything but the full path. E.g.:
|
||||
# `lua51.dll => /ucrt64/bin/lua51.dll (0xdeadbeef)` => `/ucrt64/bin/lua51.dll`
|
||||
list=$(ldd $1 | grep $MINGW_PREFIX | sed 's/.* => //' | sed 's/ \(.*\)//')
|
||||
|
||||
for dll in $list;
|
||||
do
|
||||
echo $dll
|
||||
cp $dll $2/
|
||||
done
|
||||
Loading…
Add table
Add a link
Reference in a new issue