mirror of
https://github.com/minetest/minetest.git
synced 2024-11-30 03:23:45 +01:00
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
This commit is contained in:
parent
e3738c2f61
commit
39c54e13c3
12
.travis.yml
12
.travis.yml
@ -34,22 +34,10 @@ matrix:
|
|||||||
- env: PLATFORM=Win32
|
- env: PLATFORM=Win32
|
||||||
compiler: gcc
|
compiler: gcc
|
||||||
os: linux
|
os: linux
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages: ['gcc-mingw-w64-i686', 'g++-mingw-w64-i686', 'binutils-mingw-w64-i686']
|
|
||||||
sources: &sources
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
- sourceline: 'deb http://mirrors.kernel.org/ubuntu xenial main universe'
|
|
||||||
|
|
||||||
- env: PLATFORM=Win64
|
- env: PLATFORM=Win64
|
||||||
compiler: gcc
|
compiler: gcc
|
||||||
os: linux
|
os: linux
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages: ['gcc-mingw-w64-x86-64', 'g++-mingw-w64-x86-64', 'binutils-mingw-w64-x86-64']
|
|
||||||
sources: &sources
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
- sourceline: 'deb http://mirrors.kernel.org/ubuntu xenial main universe'
|
|
||||||
|
|
||||||
- env: PLATFORM=Unix
|
- env: PLATFORM=Unix
|
||||||
compiler: clang
|
compiler: clang
|
||||||
|
@ -1,6 +1,13 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
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 )"
|
dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
if [ $# -ne 1 ]; then
|
if [ $# -ne 1 ]; then
|
||||||
echo "Usage: $0 <build directory>"
|
echo "Usage: $0 <build directory>"
|
||||||
@ -12,7 +19,18 @@ builddir="$( cd "$builddir" && pwd )"
|
|||||||
packagedir=$builddir/packages
|
packagedir=$builddir/packages
|
||||||
libdir=$builddir/libs
|
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
|
irrlicht_version=1.8.4
|
||||||
ogg_version=1.3.2
|
ogg_version=1.3.2
|
||||||
vorbis_version=1.3.5
|
vorbis_version=1.3.5
|
||||||
@ -70,22 +88,22 @@ cd $libdir
|
|||||||
# Get minetest
|
# Get minetest
|
||||||
cd $builddir
|
cd $builddir
|
||||||
if [ ! "x$EXISTING_MINETEST_DIR" = "x" ]; then
|
if [ ! "x$EXISTING_MINETEST_DIR" = "x" ]; then
|
||||||
ln -s $EXISTING_MINETEST_DIR minetest
|
ln -s $EXISTING_MINETEST_DIR $CORE_NAME
|
||||||
else
|
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
|
fi
|
||||||
cd minetest
|
cd $CORE_NAME
|
||||||
git_hash=$(git rev-parse --short HEAD)
|
git_hash=$(git rev-parse --short HEAD)
|
||||||
|
|
||||||
# Get minetest_game
|
# Get minetest_game
|
||||||
cd games
|
cd games
|
||||||
if [ "x$NO_MINETEST_GAME" = "x" ]; then
|
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
|
fi
|
||||||
cd ../..
|
cd ../..
|
||||||
|
|
||||||
# Build the thing
|
# Build the thing
|
||||||
cd minetest
|
cd $CORE_NAME
|
||||||
[ -d _build ] && rm -Rf _build/
|
[ -d _build ] && rm -Rf _build/
|
||||||
mkdir _build
|
mkdir _build
|
||||||
cd _build
|
cd _build
|
||||||
@ -149,7 +167,7 @@ cmake .. \
|
|||||||
-DLEVELDB_LIBRARY=$libdir/leveldb/lib/libleveldb.dll.a \
|
-DLEVELDB_LIBRARY=$libdir/leveldb/lib/libleveldb.dll.a \
|
||||||
-DLEVELDB_DLL=$libdir/leveldb/bin/libleveldb.dll
|
-DLEVELDB_DLL=$libdir/leveldb/bin/libleveldb.dll
|
||||||
|
|
||||||
make -j2
|
make -j$(nproc)
|
||||||
|
|
||||||
[ "x$NO_PACKAGE" = "x" ] && make package
|
[ "x$NO_PACKAGE" = "x" ] && make package
|
||||||
|
|
||||||
|
@ -1,6 +1,13 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
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 )"
|
dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
if [ $# -ne 1 ]; then
|
if [ $# -ne 1 ]; then
|
||||||
echo "Usage: $0 <build directory>"
|
echo "Usage: $0 <build directory>"
|
||||||
@ -12,7 +19,7 @@ builddir="$( cd "$builddir" && pwd )"
|
|||||||
packagedir=$builddir/packages
|
packagedir=$builddir/packages
|
||||||
libdir=$builddir/libs
|
libdir=$builddir/libs
|
||||||
|
|
||||||
toolchain_file=$dir/toolchain_mingw64.cmake
|
toolchain_file=$dir/toolchain_x86_64-w64-mingw32.cmake
|
||||||
irrlicht_version=1.8.4
|
irrlicht_version=1.8.4
|
||||||
ogg_version=1.3.2
|
ogg_version=1.3.2
|
||||||
vorbis_version=1.3.5
|
vorbis_version=1.3.5
|
||||||
@ -71,22 +78,22 @@ cd $libdir
|
|||||||
# Get minetest
|
# Get minetest
|
||||||
cd $builddir
|
cd $builddir
|
||||||
if [ ! "x$EXISTING_MINETEST_DIR" = "x" ]; then
|
if [ ! "x$EXISTING_MINETEST_DIR" = "x" ]; then
|
||||||
ln -s $EXISTING_MINETEST_DIR minetest
|
ln -s $EXISTING_MINETEST_DIR $CORE_NAME
|
||||||
else
|
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
|
fi
|
||||||
cd minetest
|
cd $CORE_NAME
|
||||||
git_hash=$(git rev-parse --short HEAD)
|
git_hash=$(git rev-parse --short HEAD)
|
||||||
|
|
||||||
# Get minetest_game
|
# Get minetest_game
|
||||||
cd games
|
cd games
|
||||||
if [ "x$NO_MINETEST_GAME" = "x" ]; then
|
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
|
fi
|
||||||
cd ../..
|
cd ../..
|
||||||
|
|
||||||
# Build the thing
|
# Build the thing
|
||||||
cd minetest
|
cd $CORE_NAME
|
||||||
[ -d _build ] && rm -Rf _build/
|
[ -d _build ] && rm -Rf _build/
|
||||||
mkdir _build
|
mkdir _build
|
||||||
cd _build
|
cd _build
|
||||||
@ -150,7 +157,7 @@ cmake .. \
|
|||||||
-DLEVELDB_LIBRARY=$libdir/leveldb/lib/libleveldb.dll.a \
|
-DLEVELDB_LIBRARY=$libdir/leveldb/lib/libleveldb.dll.a \
|
||||||
-DLEVELDB_DLL=$libdir/leveldb/bin/libleveldb.dll
|
-DLEVELDB_DLL=$libdir/leveldb/bin/libleveldb.dll
|
||||||
|
|
||||||
make -j2
|
make -j$(nproc)
|
||||||
|
|
||||||
[ "x$NO_PACKAGE" = "x" ] && make package
|
[ "x$NO_PACKAGE" = "x" ] && make package
|
||||||
|
|
||||||
|
17
util/buildbot/toolchain_i646-w64-mingw32.cmake
Normal file
17
util/buildbot/toolchain_i646-w64-mingw32.cmake
Normal file
@ -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)
|
@ -20,9 +20,7 @@ elif [[ $PLATFORM == "Win32" ]]; then
|
|||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install p7zip-full
|
sudo apt-get install p7zip-full
|
||||||
wget http://minetest.kitsunemimi.pw/mingw-w64-i686_7.1.1_ubuntu14.04.7z -O mingw.7z
|
wget http://minetest.kitsunemimi.pw/mingw-w64-i686_7.1.1_ubuntu14.04.7z -O mingw.7z
|
||||||
sed -e "s|%PREFIX%|i686-w64-mingw32|" \
|
# buildwin32.sh detects the installed toolchain automatically
|
||||||
-e "s|%ROOTPATH%|/usr/i686-w64-mingw32|" \
|
|
||||||
< util/travis/toolchain_mingw.cmake.in > util/buildbot/toolchain_mingw.cmake
|
|
||||||
sudo 7z x -y -o/usr mingw.7z
|
sudo 7z x -y -o/usr mingw.7z
|
||||||
elif [[ $PLATFORM == "Win64" ]]; then
|
elif [[ $PLATFORM == "Win64" ]]; then
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
|
Loading…
Reference in New Issue
Block a user