mirror of
				https://github.com/bensuperpc/dockcross.git
				synced 2025-11-03 17:36:24 +01:00 
			
		
		
		
	Update to GCC11 on windows images Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
		
			
				
	
	
		
			128 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			128 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
 | 
						|
#
 | 
						|
# Before including this script, make sure to set:
 | 
						|
#
 | 
						|
# WINEARCH environment variable to either "win64" or "win32"
 | 
						|
# MXE_TARGET_ARCH argument to either "x86_64" or "i686". See http://mxe.cc/
 | 
						|
# MXE_TARGET_THREAD argument to either "" or ".posix". Default is win32. See http://mxe.cc/
 | 
						|
# MXE_TARGET_LINK argument to either "static" or "shared"
 | 
						|
#
 | 
						|
# For example:
 | 
						|
#
 | 
						|
#  ENV WINEARCH win64
 | 
						|
#  ARG MXE_TARGET_ARCH=x86_64
 | 
						|
#  ARG MXE_TARGET_THREAD=
 | 
						|
#  ARG MXE_TARGET_LINK=shared
 | 
						|
#
 | 
						|
 | 
						|
# mxe master 2021-07-07
 | 
						|
ARG MXE_GIT_TAG=29aac96601e6428900b1e9b2befb4cc567aff298
 | 
						|
 | 
						|
ENV CMAKE_TOOLCHAIN_FILE /usr/src/mxe/usr/${MXE_TARGET_ARCH}-w64-mingw32.${MXE_TARGET_LINK}${MXE_TARGET_THREAD}/share/cmake/mxe-conf.cmake
 | 
						|
 | 
						|
ARG DEBIAN_FRONTEND=noninteractive
 | 
						|
 | 
						|
#
 | 
						|
# 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 install --no-install-recommends --yes \
 | 
						|
    autoconf \
 | 
						|
    automake \
 | 
						|
    autopoint \
 | 
						|
    bash \
 | 
						|
    bison \
 | 
						|
    bzip2 \
 | 
						|
    flex \
 | 
						|
    gettext \
 | 
						|
    git \
 | 
						|
    g++ \
 | 
						|
    g++-multilib \
 | 
						|
    gperf \
 | 
						|
    intltool \
 | 
						|
    libffi-dev \
 | 
						|
    libgdk-pixbuf2.0-dev \
 | 
						|
    libtool-bin \
 | 
						|
    libltdl-dev \
 | 
						|
    libssl-dev \
 | 
						|
    libxml-parser-perl \
 | 
						|
    libc6-dev-i386 \
 | 
						|
    lzip \
 | 
						|
    make \
 | 
						|
    openssl \
 | 
						|
    p7zip-full \
 | 
						|
    patch \
 | 
						|
    perl \
 | 
						|
    pkg-config \
 | 
						|
    python \
 | 
						|
    ruby \
 | 
						|
    scons \
 | 
						|
    sed \
 | 
						|
    unzip \
 | 
						|
    wget \
 | 
						|
    wine \
 | 
						|
    xz-utils \
 | 
						|
  && \
 | 
						|
  #
 | 
						|
  # Install Wine
 | 
						|
  #
 | 
						|
  dpkg --add-architecture i386 && \
 | 
						|
  apt-get update && \
 | 
						|
  apt-get install -y wine32 && \
 | 
						|
  wine hostname && \
 | 
						|
  #
 | 
						|
  # Download MXE sources
 | 
						|
  #
 | 
						|
  cd /usr/src && \
 | 
						|
  git clone https://github.com/mxe/mxe.git && \
 | 
						|
  cd mxe && \
 | 
						|
  git checkout ${MXE_GIT_TAG} && \
 | 
						|
  #
 | 
						|
  # Configure "settings.mk" required to build MXE
 | 
						|
  #
 | 
						|
  cd /usr/src/mxe && \
 | 
						|
  echo "MXE_TARGETS := ${MXE_TARGET_ARCH}-w64-mingw32.${MXE_TARGET_LINK}${MXE_TARGET_THREAD}" > settings.mk && \
 | 
						|
  echo "MXE_USE_CCACHE :="                                                       >> settings.mk && \
 | 
						|
  echo "MXE_PLUGIN_DIRS := plugins/gcc11"                                        >> settings.mk && \
 | 
						|
  echo "LOCAL_PKG_LIST := cc cmake"                                              >> settings.mk && \
 | 
						|
  echo ".DEFAULT local-pkg-list:"                                                >> settings.mk && \
 | 
						|
  echo "local-pkg-list: \$(LOCAL_PKG_LIST)"                                      >> settings.mk && \
 | 
						|
  #
 | 
						|
  # Build MXE
 | 
						|
  #
 | 
						|
  cd /usr/src/mxe && \
 | 
						|
  make JOBS=$(nproc) && \
 | 
						|
  #
 | 
						|
  # Cleanup: By keeping the MXE build system (Makefile, ...), derived images will be able to install
 | 
						|
  #          additional packages.
 | 
						|
  #
 | 
						|
  rm -rf log pkg && \
 | 
						|
  #
 | 
						|
  # Update MXE toolchain file
 | 
						|
  #
 | 
						|
  echo 'set(CMAKE_CROSSCOMPILING_EMULATOR "/usr/bin/wine")' >> ${CMAKE_TOOLCHAIN_FILE} && \
 | 
						|
  #
 | 
						|
  # Replace cmake and cpack binaries
 | 
						|
  #
 | 
						|
  cd /usr/bin && \
 | 
						|
  rm cmake cpack && \
 | 
						|
  ln -s /usr/src/mxe/usr/bin/${MXE_TARGET_ARCH}-w64-mingw32.${MXE_TARGET_LINK}${MXE_TARGET_THREAD}-cmake cmake && \
 | 
						|
  ln -s /usr/src/mxe/usr/bin/${MXE_TARGET_ARCH}-w64-mingw32.${MXE_TARGET_LINK}${MXE_TARGET_THREAD}-cpack cpack
 | 
						|
 | 
						|
ENV PATH ${PATH}:/usr/src/mxe/usr/bin
 | 
						|
ENV CROSS_TRIPLE ${MXE_TARGET_ARCH}-w64-mingw32.${MXE_TARGET_LINK}${MXE_TARGET_THREAD}
 | 
						|
ENV AS=/usr/src/mxe/usr/bin/${CROSS_TRIPLE}-as \
 | 
						|
    AR=/usr/src/mxe/usr/bin/${CROSS_TRIPLE}-ar \
 | 
						|
    CC=/usr/src/mxe/usr/bin/${CROSS_TRIPLE}-gcc \
 | 
						|
    CPP=/usr/src/mxe/usr/bin/${CROSS_TRIPLE}-cpp \
 | 
						|
    CXX=/usr/src/mxe/usr/bin/${CROSS_TRIPLE}-g++ \
 | 
						|
    LD=/usr/src/mxe/usr/bin/${CROSS_TRIPLE}-ld \
 | 
						|
    FC=/usr/src/mxe/usr/bin/${CROSS_TRIPLE}-gfortran
 | 
						|
 | 
						|
WORKDIR /work
 |