From 39c54e13c3ee3558f330f4d5716d8073b48de11a Mon Sep 17 00:00:00 2001 From: Pierre-Yves Rollo Date: Fri, 21 Jun 2019 02:43:59 +0200 Subject: 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 --- util/buildbot/buildwin32.sh | 32 ++++++++++++++++++------ util/buildbot/buildwin64.sh | 21 ++++++++++------ util/buildbot/toolchain_i586-mingw32msvc.cmake | 17 +++++++++++++ util/buildbot/toolchain_i646-w64-mingw32.cmake | 17 +++++++++++++ util/buildbot/toolchain_mingw.cmake | 17 ------------- util/buildbot/toolchain_mingw64.cmake | 17 ------------- util/buildbot/toolchain_x86_64-w64-mingw32.cmake | 17 +++++++++++++ util/travis/before_install.sh | 4 +-- 8 files changed, 91 insertions(+), 51 deletions(-) create mode 100644 util/buildbot/toolchain_i586-mingw32msvc.cmake create mode 100644 util/buildbot/toolchain_i646-w64-mingw32.cmake delete mode 100644 util/buildbot/toolchain_mingw.cmake delete mode 100644 util/buildbot/toolchain_mingw64.cmake create mode 100644 util/buildbot/toolchain_x86_64-w64-mingw32.cmake (limited to 'util') 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 " @@ -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 " @@ -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_i586-mingw32msvc.cmake b/util/buildbot/toolchain_i586-mingw32msvc.cmake new file mode 100644 index 000000000..0eeefb84d --- /dev/null +++ b/util/buildbot/toolchain_i586-mingw32msvc.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 i586-mingw32msvc-gcc) +SET(CMAKE_CXX_COMPILER i586-mingw32msvc-g++) +SET(CMAKE_RC_COMPILER i586-mingw32msvc-windres) + +# here is the target environment located +SET(CMAKE_FIND_ROOT_PATH /usr/i586-mingw32msvc) + +# 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_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_mingw.cmake b/util/buildbot/toolchain_mingw.cmake deleted file mode 100644 index 0eeefb84d..000000000 --- a/util/buildbot/toolchain_mingw.cmake +++ /dev/null @@ -1,17 +0,0 @@ -# name of the target operating system -SET(CMAKE_SYSTEM_NAME Windows) - -# which compilers to use for C and C++ -SET(CMAKE_C_COMPILER i586-mingw32msvc-gcc) -SET(CMAKE_CXX_COMPILER i586-mingw32msvc-g++) -SET(CMAKE_RC_COMPILER i586-mingw32msvc-windres) - -# here is the target environment located -SET(CMAKE_FIND_ROOT_PATH /usr/i586-mingw32msvc) - -# 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_mingw64.cmake deleted file mode 100644 index 9a7ed82d8..000000000 --- a/util/buildbot/toolchain_mingw64.cmake +++ /dev/null @@ -1,17 +0,0 @@ -# name of the target operating system -SET(CMAKE_SYSTEM_NAME Windows) - -# which compilers to use for C and C++ -SET(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc) -SET(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++) -SET(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres) - -# here is the target environment located -SET(CMAKE_FIND_ROOT_PATH /usr/x86_64-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_x86_64-w64-mingw32.cmake b/util/buildbot/toolchain_x86_64-w64-mingw32.cmake new file mode 100644 index 000000000..9a7ed82d8 --- /dev/null +++ b/util/buildbot/toolchain_x86_64-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 x86_64-w64-mingw32-gcc) +SET(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++) +SET(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres) + +# here is the target environment located +SET(CMAKE_FIND_ROOT_PATH /usr/x86_64-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/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 -- cgit v1.2.3