summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
authorPierre-Yves Rollo <dev@pyrollo.com>2019-06-21 02:43:59 +0200
committerrubenwardy <rw@rubenwardy.com>2019-06-21 01:46:00 +0100
commit39c54e13c3ee3558f330f4d5716d8073b48de11a (patch)
tree83338890c7b9d6a3e8c3753c15ded42c74688a4c /util
parente3738c2f61b4ebff97eadce88dda10c9a7610d3d (diff)
downloadminetest-39c54e13c3ee3558f330f4d5716d8073b48de11a.tar.gz
minetest-39c54e13c3ee3558f330f4d5716d8073b48de11a.tar.bz2
minetest-39c54e13c3ee3558f330f4d5716d8073b48de11a.zip
Improve buildbot script
PR created under the employment of EvidenceBKidscode * Variables to set git repositories urls (allows to build from another repo) * Variables to set git branch to build from (allows to build from non-master branch) * Variables to change built name * Make -j uses the proper number of processors (autodetect) * Changed toolchain from win32 to adpat it to non-debian distros
Diffstat (limited to 'util')
-rwxr-xr-xutil/buildbot/buildwin32.sh32
-rwxr-xr-xutil/buildbot/buildwin64.sh21
-rw-r--r--util/buildbot/toolchain_i586-mingw32msvc.cmake (renamed from util/buildbot/toolchain_mingw.cmake)0
-rw-r--r--util/buildbot/toolchain_i646-w64-mingw32.cmake17
-rw-r--r--util/buildbot/toolchain_x86_64-w64-mingw32.cmake (renamed from util/buildbot/toolchain_mingw64.cmake)0
-rwxr-xr-xutil/travis/before_install.sh4
6 files changed, 57 insertions, 17 deletions
diff --git a/util/buildbot/buildwin32.sh b/util/buildbot/buildwin32.sh
index 6646ca164..9af4eb02e 100755
--- a/util/buildbot/buildwin32.sh
+++ b/util/buildbot/buildwin32.sh
@@ -1,6 +1,13 @@
#!/bin/bash
set -e
+CORE_GIT=https://github.com/minetest/minetest
+CORE_BRANCH=master
+CORE_NAME=minetest
+GAME_GIT=https://github.com/minetest/minetest_game
+GAME_BRANCH=master
+GAME_NAME=minetest_game
+
dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
if [ $# -ne 1 ]; then
echo "Usage: $0 <build directory>"
@@ -12,7 +19,18 @@ builddir="$( cd "$builddir" && pwd )"
packagedir=$builddir/packages
libdir=$builddir/libs
-toolchain_file=$dir/toolchain_mingw.cmake
+# Test which win32 compiler is present
+which i586-mingw32msvc-windres > /dev/null 2>&1 && toolchain_file=$dir/toolchain_i586-mingw32msvc.cmake
+which i686-w64-mingw32-windres > /dev/null 2>&1 && toolchain_file=$dir/toolchain_i646-w64-mingw32.cmake
+
+if [ -z "$toolchain_file" ]
+then
+ echo "Unable to determine which mingw32 compiler to use"
+ exit 1
+else
+ echo "Using $toolchain_file"
+fi
+
irrlicht_version=1.8.4
ogg_version=1.3.2
vorbis_version=1.3.5
@@ -70,22 +88,22 @@ cd $libdir
# Get minetest
cd $builddir
if [ ! "x$EXISTING_MINETEST_DIR" = "x" ]; then
- ln -s $EXISTING_MINETEST_DIR minetest
+ ln -s $EXISTING_MINETEST_DIR $CORE_NAME
else
- [ -d minetest ] && (cd minetest && git pull) || (git clone https://github.com/minetest/minetest)
+ [ -d $CORE_NAME ] && (cd $CORE_NAME && git pull) || (git clone -b $CORE_BRANCH $CORE_GIT)
fi
-cd minetest
+cd $CORE_NAME
git_hash=$(git rev-parse --short HEAD)
# Get minetest_game
cd games
if [ "x$NO_MINETEST_GAME" = "x" ]; then
- [ -d minetest_game ] && (cd minetest_game && git pull) || (git clone https://github.com/minetest/minetest_game)
+ [ -d $GAME_NAME ] && (cd $GAME_NAME && git pull) || (git clone -b $GAME_BRANCH $GAME_GIT)
fi
cd ../..
# Build the thing
-cd minetest
+cd $CORE_NAME
[ -d _build ] && rm -Rf _build/
mkdir _build
cd _build
@@ -149,7 +167,7 @@ cmake .. \
-DLEVELDB_LIBRARY=$libdir/leveldb/lib/libleveldb.dll.a \
-DLEVELDB_DLL=$libdir/leveldb/bin/libleveldb.dll
-make -j2
+make -j$(nproc)
[ "x$NO_PACKAGE" = "x" ] && make package
diff --git a/util/buildbot/buildwin64.sh b/util/buildbot/buildwin64.sh
index b0b2bed17..7e3db4842 100755
--- a/util/buildbot/buildwin64.sh
+++ b/util/buildbot/buildwin64.sh
@@ -1,6 +1,13 @@
#!/bin/bash
set -e
+CORE_GIT=https://github.com/minetest/minetest
+CORE_BRANCH=master
+CORE_NAME=minetest
+GAME_GIT=https://github.com/minetest/minetest_game
+GAME_BRANCH=master
+GAME_NAME=minetest_game
+
dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
if [ $# -ne 1 ]; then
echo "Usage: $0 <build directory>"
@@ -12,7 +19,7 @@ builddir="$( cd "$builddir" && pwd )"
packagedir=$builddir/packages
libdir=$builddir/libs
-toolchain_file=$dir/toolchain_mingw64.cmake
+toolchain_file=$dir/toolchain_x86_64-w64-mingw32.cmake
irrlicht_version=1.8.4
ogg_version=1.3.2
vorbis_version=1.3.5
@@ -71,22 +78,22 @@ cd $libdir
# Get minetest
cd $builddir
if [ ! "x$EXISTING_MINETEST_DIR" = "x" ]; then
- ln -s $EXISTING_MINETEST_DIR minetest
+ ln -s $EXISTING_MINETEST_DIR $CORE_NAME
else
- [ -d minetest ] && (cd minetest && git pull) || (git clone https://github.com/minetest/minetest)
+ [ -d $CORE_NAME ] && (cd $CORE_NAME && git pull) || (git clone -b $CORE_BRANCH $CORE_GIT)
fi
-cd minetest
+cd $CORE_NAME
git_hash=$(git rev-parse --short HEAD)
# Get minetest_game
cd games
if [ "x$NO_MINETEST_GAME" = "x" ]; then
- [ -d minetest_game ] && (cd minetest_game && git pull) || (git clone https://github.com/minetest/minetest_game)
+ [ -d $GAME_NAME ] && (cd $GAME_NAME && git pull) || (git clone -b $GAME_BRANCH $GAME_GIT)
fi
cd ../..
# Build the thing
-cd minetest
+cd $CORE_NAME
[ -d _build ] && rm -Rf _build/
mkdir _build
cd _build
@@ -150,7 +157,7 @@ cmake .. \
-DLEVELDB_LIBRARY=$libdir/leveldb/lib/libleveldb.dll.a \
-DLEVELDB_DLL=$libdir/leveldb/bin/libleveldb.dll
-make -j2
+make -j$(nproc)
[ "x$NO_PACKAGE" = "x" ] && make package
diff --git a/util/buildbot/toolchain_mingw.cmake b/util/buildbot/toolchain_i586-mingw32msvc.cmake
index 0eeefb84d..0eeefb84d 100644
--- a/util/buildbot/toolchain_mingw.cmake
+++ b/util/buildbot/toolchain_i586-mingw32msvc.cmake
diff --git a/util/buildbot/toolchain_i646-w64-mingw32.cmake b/util/buildbot/toolchain_i646-w64-mingw32.cmake
new file mode 100644
index 000000000..015baa210
--- /dev/null
+++ b/util/buildbot/toolchain_i646-w64-mingw32.cmake
@@ -0,0 +1,17 @@
+# name of the target operating system
+SET(CMAKE_SYSTEM_NAME Windows)
+
+# which compilers to use for C and C++
+SET(CMAKE_C_COMPILER i686-w64-mingw32-gcc)
+SET(CMAKE_CXX_COMPILER i686-w64-mingw32-g++)
+SET(CMAKE_RC_COMPILER i686-w64-mingw32-windres)
+
+# here is the target environment located
+SET(CMAKE_FIND_ROOT_PATH /usr/i686-w64-mingw32)
+
+# adjust the default behaviour of the FIND_XXX() commands:
+# search headers and libraries in the target environment, search
+# programs in the host environment
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
diff --git a/util/buildbot/toolchain_mingw64.cmake b/util/buildbot/toolchain_x86_64-w64-mingw32.cmake
index 9a7ed82d8..9a7ed82d8 100644
--- a/util/buildbot/toolchain_mingw64.cmake
+++ b/util/buildbot/toolchain_x86_64-w64-mingw32.cmake
diff --git a/util/travis/before_install.sh b/util/travis/before_install.sh
index fef054130..fe9243583 100755
--- a/util/travis/before_install.sh
+++ b/util/travis/before_install.sh
@@ -20,9 +20,7 @@ elif [[ $PLATFORM == "Win32" ]]; then
sudo apt-get update
sudo apt-get install p7zip-full
wget http://minetest.kitsunemimi.pw/mingw-w64-i686_7.1.1_ubuntu14.04.7z -O mingw.7z
- sed -e "s|%PREFIX%|i686-w64-mingw32|" \
- -e "s|%ROOTPATH%|/usr/i686-w64-mingw32|" \
- < util/travis/toolchain_mingw.cmake.in > util/buildbot/toolchain_mingw.cmake
+ # buildwin32.sh detects the installed toolchain automatically
sudo 7z x -y -o/usr mingw.7z
elif [[ $PLATFORM == "Win64" ]]; then
sudo apt-get update