summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorRalf Habacker <ralf.habacker@freenet.de>2018-03-21 11:48:52 +0100
committerRalf Habacker <ralf.habacker@freenet.de>2018-03-22 21:13:47 +0100
commitd22e7901b555a0bfb5e06fb2463d839a276c7482 (patch)
tree94d2aaed0a6ea529d9ed8ed339d1ae084448dbdb /tools
parent577813cf3a89df804efa6d85a1c5415ba12806ec (diff)
downloaddbus-d22e7901b555a0bfb5e06fb2463d839a276c7482.tar.gz
travis-ci: Add cross building support for mingw 64 bit compiler
Signed-off-by: Ralf Habacker <ralf.habacker@freenet.de> Reviewed-by: Simon McVittie <smcv@collabora.com> Bug: https://bugs.freedesktop.org/show_bug.cgi?id=105662
Diffstat (limited to 'tools')
-rwxr-xr-xtools/ci-build.sh34
-rwxr-xr-xtools/ci-install.sh34
2 files changed, 45 insertions, 23 deletions
diff --git a/tools/ci-build.sh b/tools/ci-build.sh
index 81e05afa..8653af69 100755
--- a/tools/ci-build.sh
+++ b/tools/ci-build.sh
@@ -94,9 +94,13 @@ cd ci-build-${ci_variant}-${ci_host}
make="make -j${ci_parallel} V=1 VERBOSE=1"
case "$ci_host" in
- (mingw)
- mirror=http://repo.msys2.org/mingw/i686
- mingw="$(pwd)/mingw32"
+ (*-w64-mingw32)
+ mirror=http://repo.msys2.org/mingw/${ci_host%%-*}
+ if [ "${ci_host%%-*}" = i686 ]; then
+ mingw="$(pwd)/mingw32"
+ else
+ mingw="$(pwd)/mingw64"
+ fi
install -d "${mingw}"
export PKG_CONFIG_LIBDIR="${mingw}/lib/pkgconfig"
export PKG_CONFIG_PATH=
@@ -111,8 +115,8 @@ case "$ci_host" in
libffi-3.2.1-3 \
zlib-1.2.8-9 \
; do
- wget ${mirror}/mingw-w64-i686-${pkg}-any.pkg.tar.xz
- tar -xvf mingw-w64-i686-${pkg}-any.pkg.tar.xz
+ wget ${mirror}/mingw-w64-${ci_host%%-*}-${pkg}-any.pkg.tar.xz
+ tar -xvf mingw-w64-${ci_host%%-*}-${pkg}-any.pkg.tar.xz
done
export TMPDIR=/tmp
;;
@@ -126,10 +130,14 @@ case "$ci_buildsys" in
set _ "$@"
set "$@" --enable-developer --enable-tests
# Enable optional features that are off by default
- if [ "$ci_host" != mingw ]; then
- set "$@" --enable-containers
- set "$@" --enable-user-session
- fi
+ case "$ci_host" in
+ *-w64-mingw32)
+ ;;
+ *)
+ set "$@" --enable-containers
+ set "$@" --enable-user-session
+ ;;
+ esac
shift
# The test coverage for OOM-safety is too
# verbose to be useful on travis-ci.
@@ -198,10 +206,10 @@ case "$ci_buildsys" in
esac
case "$ci_host" in
- (mingw)
+ (*-w64-mingw32)
set _ "$@"
set "$@" --build="$(build-aux/config.guess)"
- set "$@" --host=i686-w64-mingw32
+ set "$@" --host="${ci_host}"
set "$@" CFLAGS=-static-libgcc
set "$@" CXXFLAGS=-static-libgcc
# don't run tests yet, Wine needs Xvfb and
@@ -254,9 +262,9 @@ case "$ci_buildsys" in
(cmake)
case "$ci_host" in
- (mingw)
+ (*-w64-mingw32)
set _ "$@"
- set "$@" -D CMAKE_TOOLCHAIN_FILE="${srcdir}/cmake/i686-w64-mingw32.cmake"
+ set "$@" -D CMAKE_TOOLCHAIN_FILE="${srcdir}/cmake/${ci_host}.cmake"
set "$@" -D CMAKE_PREFIX_PATH="${mingw}"
set "$@" -D CMAKE_INCLUDE_PATH="${mingw}/include"
set "$@" -D CMAKE_LIBRARY_PATH="${mingw}/lib"
diff --git a/tools/ci-install.sh b/tools/ci-install.sh
index 5a1fa317..68d1c11b 100755
--- a/tools/ci-install.sh
+++ b/tools/ci-install.sh
@@ -82,19 +82,33 @@ case "$ci_distro" in
# travis-ci has a sources list for Chrome which doesn't support i386
: | $sudo tee /etc/apt/sources.list.d/google-chrome.list
- if [ "$ci_host" = mingw ]; then
- $sudo dpkg --add-architecture i386
- fi
+ case "$ci_host" in
+ (i686-w64-mingw32)
+ $sudo dpkg --add-architecture i386
+ ;;
+ (x86_64-w64-mingw32)
+ # nothing required, travis-ci is an amd64 system
+ ;;
+ esac
$sudo apt-get -qq -y update
- if [ "$ci_host" = mingw ]; then
- $sudo apt-get -qq -y install \
- binutils-mingw-w64-i686 \
- g++-mingw-w64-i686 \
- wine:i386 \
- ${NULL}
- fi
+ case "$ci_host" in
+ (i686-w64-mingw32)
+ $sudo apt-get -qq -y install \
+ binutils-mingw-w64-i686 \
+ g++-mingw-w64-i686 \
+ wine:i386 \
+ ${NULL}
+ ;;
+ (x86_64-w64-mingw32)
+ $sudo apt-get -qq -y install \
+ binutils-mingw-w64-x86-64\
+ g++-mingw-w64-x86-64 \
+ wine:amd64 \
+ ${NULL}
+ ;;
+ esac
$sudo apt-get -qq -y install \
autoconf-archive \