Skip to content

Commit

Permalink
Windows build fixes (#108)
Browse files Browse the repository at this point in the history
Change to Xenial for Ubuntu builds.

Fixes Windows cross-build.

Update macOS builds to latest Xcode stuff.
  • Loading branch information
shane-kerr authored May 1, 2019
1 parent cda0f06 commit 3e19caf
Show file tree
Hide file tree
Showing 7 changed files with 94 additions and 172 deletions.
234 changes: 67 additions & 167 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ install:
matrix:
include:
# Build mintcoind
# Ubuntu 14.04 LTS (Trusty Tahr) is our latest (and only) Ubuntu version
# Ubuntu 16.04 LTS (Xenial Xerus) is our latest Ubuntu version
- os: linux
dist: trusty
dist: xenial
sudo: required
addons:
apt:
Expand All @@ -22,74 +22,54 @@ matrix:
- libboost-all-dev
- libqrencode-dev
- libminiupnpc-dev
- libminiupnpc8
script: cd src && make -f makefile.unix -j2

# Build mintcoind
# Cross-compile Windows 32-bit daemon
- os: linux
dist: trusty
dist: xenial
sudo: required
script: bash src/mxe-build.sh windows32

# Build mintcoind
# Cross-compile Windows 64-bit daemon
- os: linux
dist: trusty
dist: xenial
sudo: required
script: bash src/mxe-build.sh windows64

# Build mintcoind
# Ubuntu 14.04 LTS (Trusty Tahr) is our latest (and only) Ubuntu version
# Ubuntu 16.04 LTS (Xenial Xerus) is our latest Ubuntu version
# Make a 32-bit version using Debian multiarch
- os: linux
dist: trusty
dist: xenial
sudo: required
# To support 32-bit builds, we add the i386 architecture to
# Ubuntu, and then install 32-bit versions of the compiler and
# libraries needed. For details of Debian multiarch see the wiki:
#
# https://wiki.debian.org/Multiarch
#
# Even with multiarch support, we have to do a bit of a dance, for
# two reasons.
#
# First, apt-get does not seem to understand dependencies for
# the multiarch stuff, so we have to explicitly install all of
# the dependencies.
#
# Second, one of the packages is built for the "all" architecture.
# In principle this should work, but for some reason the system
# insists that to use it for the MPI libraries it needs to be for
# the "i386" architecture. So we download and repackage the .deb
# file modified to support this. For details see this Serverfault
# message:
#
# https://serverfault.com/a/383958
# Even with multiarch support, we have to do a bit of a dance.
#
# apt-get does not seem to understand dependencies for the
# multiarch stuff, so we have to explicitly install all of the
# dependencies.
before_script:
- sudo dpkg --add-architecture i386
- sudo apt-get update
- sudo apt-get install -y gcc:i386 cpp:i386 gcc-4.8:i386 binutils:i386
- sudo apt-get install -y g++:i386
- sudo apt-get install -y g++:i386 cpp:i386 gcc:i386 cpp-5:i386 gcc-5:i386 binutils:i386
- sudo apt-get install -y libssl-dev:i386
- sudo apt-get install -y libdb++-dev:i386
- sudo apt-get install -y libminiupnpc-dev:i386
- apt-get download openmpi-common:all
- ar x openmpi-common_*_all.deb
- tar xf control.tar.gz
- |
sed -i "s/^Architecture: all/Architecture: i386/" control
- tar czf control.tar.gz md5sums control
- ar rcs openmpi-common_*_all.deb debian-binary control.tar.gz data.tar.xz
- sudo dpkg -i openmpi-common_*_all.deb
- sudo apt-get install -y libboost-all-dev:i386 libboost-mpi-dev:i386 libboost-mpi-python-dev:i386 libboost-mpi-python1.54-dev:i386 libboost-mpi-python1.54.0:i386 libboost-mpi-python1.54-dev:i386 libboost-mpi1.54-dev:i386 python:i386
- sudo apt-get install -y openmpi-common:i386
- sudo apt-get install -y libboost-all-dev:i386 libboost-mpi-dev:i386 libboost-mpi-python-dev:i386 libboost-python-dev:i386 libboost-python1.58-dev:i386 python:i386
script: cd src && make -f makefile.unix -j2

# Build mintcoind static
# Ubuntu 14.04 LTS (Trusty Tahr) is our latest (and only) Ubuntu version
# Ubuntu 16.04 LTS (Xenial Xerus) is our latest Ubuntu version
- os: linux
dist: trusty
dist: xenial
sudo: required
addons:
apt:
Expand All @@ -98,121 +78,88 @@ matrix:
- libboost-all-dev
- libqrencode-dev
- libminiupnpc-dev
- libminiupnpc8
script: cd src && make -f makefile.unix -j2 STATIC="all" LDFLAGS="-static"

# Build mintcoind static
# Ubuntu 14.04 LTS (Trusty Tahr) is our latest (and only) Ubuntu version
# Ubuntu 16.04 LTS (Xenial Xerus) is our latest Ubuntu version
# Make a 32-bit version using Debian multiarch
- os: linux
dist: trusty
dist: xenial
sudo: required
# To support 32-bit builds, we add the i386 architecture to
# Ubuntu, and then install 32-bit versions of the compiler and
# libraries needed. For details of Debian multiarch see the wiki:
#
# https://wiki.debian.org/Multiarch
#
# Even with multiarch support, we have to do a bit of a dance, for
# two reasons.
#
# First, apt-get does not seem to understand dependencies for
# the multiarch stuff, so we have to explicitly install all of
# the dependencies.
#
# Second, one of the packages is built for the "all" architecture.
# In principle this should work, but for some reason the system
# insists that to use it for the MPI libraries it needs to be for
# the "i386" architecture. So we download and repackage the .deb
# file modified to support this. For details see this Serverfault
# message:
#
# https://serverfault.com/a/383958
# Even with multiarch support, we have to do a bit of a dance.
#
# apt-get does not seem to understand dependencies for the
# multiarch stuff, so we have to explicitly install all of the
# dependencies.
before_script:
- sudo dpkg --add-architecture i386
- sudo apt-get update
- sudo apt-get install -y gcc:i386 cpp:i386 gcc-4.8:i386 binutils:i386
- sudo apt-get install -y g++:i386
- sudo apt-get install -y g++:i386 cpp:i386 gcc:i386 cpp-5:i386 gcc-5:i386 binutils:i386
- sudo apt-get install -y libssl-dev:i386
- sudo apt-get install -y libdb++-dev:i386
- sudo apt-get install -y libminiupnpc-dev:i386
- apt-get download openmpi-common:all
- ar x openmpi-common_*_all.deb
- tar xf control.tar.gz
- |
sed -i "s/^Architecture: all/Architecture: i386/" control
- tar czf control.tar.gz md5sums control
- ar rcs openmpi-common_*_all.deb debian-binary control.tar.gz data.tar.xz
- sudo dpkg -i openmpi-common_*_all.deb
- sudo apt-get install -y libboost-all-dev:i386 libboost-mpi-dev:i386 libboost-mpi-python-dev:i386 libboost-mpi-python1.54-dev:i386 libboost-mpi-python1.54.0:i386 libboost-mpi-python1.54-dev:i386 libboost-mpi1.54-dev:i386 python:i386
- sudo apt-get install -y openmpi-common:i386
- sudo apt-get install -y libboost-all-dev:i386 libboost-mpi-dev:i386 libboost-mpi-python-dev:i386 libboost-python-dev:i386 libboost-python1.58-dev:i386 python:i386
script: cd src && make -f makefile.unix -j2 STATIC="all" LDFLAGS="-static"

# Build mintcoind
# Ubuntu 16.04 LTS (Xenial Xerus) not supported yet
#- os: linux
# dist: xenial
# sudo: required
# addons:
# apt:
# packages:
# - libdb++-dev
# - libboost-all-dev
# - libqrencode-dev
# - libminiupnpc-dev
# - libminiupnpc8
# script: cd src && make -f makefile.unix -j2 && python mega-copy.py mintcoind $TRAVIS_BRANCH/mintcoind.linux-ubuntu-xenial

# Build mintcoind
# OS X 10.10 (Yosemite)
#
# "pip: command not found" on Travis, so we will just not build this
# OS X 10.11 (El Capitan)
- os: osx
osx_image: xcode8
script: cd src && make -f makefile.osx -j2

# Build mintcoind static
# OS X 10.10 (Yosemite)
#
# "pip: command not found" on Travis, so we will just not build this
# OS X 10.11 (El Capitan)
- os: osx
osx_image: xcode8
script: cd src && make -f makefile.osx -j2 STATIC="all" LDFLAGS="-static"

# Build mintcoind
# OS X 10.11 (El Capitan)
# macOS 10.12 (Sierra)
- os: osx
osx_image: xcode7.3
osx_image: xcode9.2
script: cd src && make -f makefile.osx -j2

# Build mintcoind static
# OS X 10.11 (El Capitan)
# macOS 10.12 (Sierra)
- os: osx
osx_image: xcode7.3
osx_image: xcode9.2
script: cd src && make -f makefile.osx -j2 STATIC="all" LDFLAGS="-static"

# Build mintcoind
# OS X 10.12 (Sierra)
# macOS 10.13 (High Sierra)
- os: osx
osx_image: xcode8.3
osx_image: xcode10.1
script: cd src && make -f makefile.osx -j2

# Build mintcoind static
# OS X 10.12 (Sierra)
# macOS 10.13 (High Sierra)
- os: osx
osx_image: xcode8.3
osx_image: xcode10.1
script: cd src && make -f makefile.osx -j2 STATIC="all" LDFLAGS="-static"

# Build mintcoind
# OS X 10.13 (High Sierra)
# macOS 10.14 (Mojave)
- os: osx
osx_image: xcode9.3beta
osx_image: xcode10.2
script: cd src && make -f makefile.osx -j2

# Build mintcoind static
# OS X 10.13 (High Sierra)
# macOS 10.14 (Mojave)
- os: osx
osx_image: xcode9.3beta
osx_image: xcode10.2
script: cd src && make -f makefile.osx -j2 STATIC="all" LDFLAGS="-static"

# Build MintCoin-Qt
# Ubuntu 14.04 LTS (Trusty Tahr) is our latest (and only) Ubuntu version
# Ubuntu 16.04 LTS (Xenial Xerus) is our latest Ubuntu version
- os: linux
dist: trusty
dist: xenial
sudo: required
addons:
apt:
Expand All @@ -221,118 +168,71 @@ matrix:
- libboost-all-dev
- libqrencode-dev
- libminiupnpc-dev
- libminiupnpc8
- qt4-qmake
- libqt4-dev
script: qmake && make -j2

# Build MintCoin-Qt
# Ubuntu 14.04 LTS (Trusty Tahr) is our latest (and only) Ubuntu version
# Ubuntu 16.04 LTS (Xenial Xerus) is our latest Ubuntu version
# Make a 32-bit version using Debian multiarch
- os: linux
dist: trusty
dist: xenial
sudo: required
# To support 32-bit builds, we add the i386 architecture to
# Ubuntu, and then install 32-bit versions of the compiler and
# libraries needed. For details of Debian multiarch see the wiki:
#
# https://wiki.debian.org/Multiarch
#
# Even with multiarch support, we have to do a bit of a dance, for
# two reasons.
#
# First, apt-get does not seem to understand dependencies for
# the multiarch stuff, so we have to explicitly install all of
# the dependencies.
#
# Second, one of the packages is built for the "all" architecture.
# In principle this should work, but for some reason the system
# insists that to use it for the MPI libraries it needs to be for
# the "i386" architecture. So we download and repackage the .deb
# file modified to support this. For details see this Serverfault
# message:
#
# https://serverfault.com/a/383958
# Even with multiarch support, we have to do a bit of a dance.
#
# apt-get does not seem to understand dependencies for the
# multiarch stuff, so we have to explicitly install all of the
# dependencies.
before_script:
- sudo dpkg --add-architecture i386
- sudo apt-get update
- sudo apt-get install -y gcc:i386 cpp:i386 gcc-4.8:i386 binutils:i386
- sudo apt-get install -y g++:i386
- sudo apt-get install -y g++:i386 cpp:i386 gcc:i386 cpp-5:i386 gcc-5:i386 binutils:i386
- sudo apt-get install -y libssl-dev:i386
- sudo apt-get install -y libdb++-dev:i386
- sudo apt-get install -y libminiupnpc-dev:i386
- apt-get download openmpi-common:all
- ar x openmpi-common_*_all.deb
- tar xf control.tar.gz
- |
sed -i "s/^Architecture: all/Architecture: i386/" control
- tar czf control.tar.gz md5sums control
- ar rcs openmpi-common_*_all.deb debian-binary control.tar.gz data.tar.xz
- sudo dpkg -i openmpi-common_*_all.deb
- sudo apt-get install -y libboost-all-dev:i386 libboost-mpi-dev:i386 libboost-mpi-python-dev:i386 libboost-mpi-python1.54-dev:i386 libboost-mpi-python1.54.0:i386 libboost-mpi-python1.54-dev:i386 libboost-mpi1.54-dev:i386 python:i386
- sudo apt-get install -y openmpi-common:i386
- sudo apt-get install -y libboost-all-dev:i386 libboost-mpi-dev:i386 libboost-mpi-python-dev:i386 libboost-python-dev:i386 libboost-python1.58-dev:i386 python:i386
- sudo apt-get install -y libqrencode-dev:i386
- sudo apt-get install -y qt4-qmake:i386 libqt4-dev:i386
- sudo apt-get install -y qtchooser:i386
- sudo apt-get install -y qt4-linguist-tools:i386
- sudo apt-get install -y libqt4-dev-bin:i386
script: /usr/lib/i386-linux-gnu/qt4/bin/qmake && make -j2

# Build MintCoin-Qt
# Ubuntu 16.04 LTS (Xenial Xerus) not supported yet
#- os: linux
# dist: xenial
# addons:
# apt:
# packages:
# - libdb++-dev
# - libboost-all-dev
# - libqrencode-dev
# - libminiupnpc-dev
# - libminiupnpc8
# - qt4-qmake
# - libqt4-dev
# script: qmake && make -j2 && python src/mega-copy.py MintCoin-Qt $TRAVIS_BRANCH/MintCoin-Qt.linux-ubuntu-xenial

# Build MintCoin-Qt
# Cross-compile Windows 32-bit GUI
- os: linux
dist: trusty
dist: xenial
sudo: required
script: bash src/mxe-build.sh windows32-qt

# Build MintCoin-Qt
# Cross-compile Windows 64-bit GUI
- os: linux
dist: trusty
dist: xenial
sudo: required
script: bash src/mxe-build.sh windows64-qt

# Build MintCoin-Qt
# OS X 10.10 (Yosemite)
#
# Error: You are using macOS 10.10.
# We (and Apple) do not provide support for this old version.
# You may encounter build failures or other breakages.

# Build MintCoin-Qt
# OS X 10.11 (El Capitan)
#
# Error: You are using macOS 10.11.
# We (and Apple) do not provide support for this old version.
# You will encounter build failures and other breakages.
# Please create pull requests instead of asking for help on Homebrew's
# GitHub, Discourse, Twitter or IRC. As you are running this old version,
# you are responsible for resolving any issues you experience.

# Build MintCoin-Qt
# OS X 10.12 (Sierra)
# macOS 10.12 (Sierra)
- os: osx
osx_image: xcode8.3
osx_image: xcode9
script: brew install qrencode qt && /usr/local/opt/qt/bin/qmake && make -j2

# Build MintCoin-Qt
# OS X 10.13 (High Sierra)
# macOS 10.13 (High Sierra)
- os: osx
osx_image: xcode9.3beta
osx_image: xcode10.1
script: brew install qrencode qt && /usr/local/opt/qt/bin/qmake && make -j2

# Build MintCoin-Qt
# macOS 10.14 (Mojave)
#- os: osx
# osx_image: xcode10.2
# script: export MACOSX_DEPLOYMENT_TARGET=10.14 && open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg && brew install qrencode qt && /usr/local/opt/qt/bin/qmake && make -j2
Loading

0 comments on commit 3e19caf

Please sign in to comment.