windows-x64: Migrate to MXE.

This commit is contained in:
Matt McCormick 2015-05-06 00:08:21 -04:00
parent b9217e3d11
commit f14d99c661
4 changed files with 67 additions and 13 deletions

View File

@ -22,7 +22,7 @@ linux-armv7:
windows-x86: base windows-x86/Dockerfile windows-x86/settings.mk
$(DOCKER) build -t $(IMAGE)-windows-x86 windows-x86
windows-x64:
windows-x64: base windows-x64/Dockerfile windows-x64/settings.mk
$(DOCKER) build -t $(IMAGE)-windows-x64 windows-x64
base: Dockerfile

View File

@ -1,12 +1,61 @@
FROM steeve/cross-compiler:base
MAINTAINER Steeve Morin "steeve.morin@gmail.com"
FROM thewtex/cross-compiler-base
MAINTAINER Matt McCormick "matt.mccormick@kitware.com"
RUN apt-get update && apt-get -y install mingw-w64
# WINE is used as an emulator for try_run and tests with CMake.
# Other dependencies are from the listed MXE requirements:
# http://mxe.cc/#requirements
# 'cmake' is omitted because it is installed from source in the base image
RUN apt-get update && apt-get -y install \
autoconf \
automake \
autopoint \
bash \
bison \
bzip2 \
flex \
gettext \
git \
g++ \
g++-multilib \
gperf \
intltool \
libffi-dev \
libtool-bin \
libltdl-dev \
libssl-dev \
libxml-parser-perl \
libc6-dev-i386 \
make \
openssl \
patch \
perl \
pkg-config \
python \
ruby \
scons \
sed \
unzip \
wget \
wine \
xz-utils
# Set up wine
RUN dpkg --add-architecture i386 && \
apt-get update && \
apt-get install -y wine32
ENV WINEARCH win64
RUN wine hostname
ENV CROSS_TRIPLE x86_64-w64-mingw32
ENV CROSS_ROOT /usr/${CROSS_TRIPLE}
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV LD_LIBRARY_PATH ${CROSS_ROOT}/lib:${LD_LIBRARY_PATH}
WORKDIR /usr/src
# mxe master 2015-03-12, prior to mingw-w64 update, based on GCC 4
RUN git clone https://github.com/mxe/mxe.git && \
cd mxe && \
git checkout 149afe17a43c50c234dcadeb4a69e61e272a747a
WORKDIR /usr/src/mxe
COPY settings.mk /usr/src/mxe/
RUN make -j$(nproc)
RUN cd /usr/bin && \
ln -s ${CROSS_TRIPLE}-gcc ${CROSS_TRIPLE}-cc
ENV PATH ${PATH}:/usr/src/mxe/usr/bin
ENV CMAKE_TOOLCHAIN_FILE /usr/src/mxe/usr/x86_64-w64-mingw32.static/share/cmake/mxe-conf.cmake
RUN echo 'set(CMAKE_CROSSCOMPILING_EMULATOR "/usr/bin/wine")' >> ${CMAKE_TOOLCHAIN_FILE}
WORKDIR /usr/src

4
windows-x64/settings.mk Normal file
View File

@ -0,0 +1,4 @@
MXE_TARGETS := x86_64-w64-mingw32.static
LOCAL_PKG_LIST := gcc
.DEFAULT local-pkg-list:
local-pkg-list: $(LOCAL_PKG_LIST)

View File

@ -41,11 +41,12 @@ RUN apt-get update && apt-get -y install \
# Set up wine
RUN dpkg --add-architecture i386 && \
apt-get update && \
apt-get install -y wine32 && \
wine hostname
apt-get install -y wine32
ENV WINEARCH win32
RUN wine hostname
WORKDIR /usr/src
# mxe master 2015-03-12, prior to mingw-w64 update, which is based on GCC 5
# mxe master 2015-03-12, prior to mingw-w64 update, based on GCC 4
RUN git clone https://github.com/mxe/mxe.git && \
cd mxe && \
git checkout 149afe17a43c50c234dcadeb4a69e61e272a747a