mirror of https://github.com/xemu-project/xemu.git
ubuntu-win64-cross: Use LLVM toolchain
This commit is contained in:
parent
2c08c76b09
commit
9cb88de014
|
@ -4,13 +4,21 @@
|
|||
|
||||
FROM ubuntu:24.04
|
||||
|
||||
ENV MXE_VERSION=8fa8c126f64a0ca6d263c641632645db4f941f00
|
||||
ENV MXE_PATH=/opt/mxe
|
||||
ENV MXE_REPO=https://github.com/mxe/mxe.git
|
||||
ENV MXE_VERSION=ab676e8ce5ba921daaa80a123ff2e415aac4524a
|
||||
|
||||
ENV MXE_LLVM_MINGW_REPO=https://github.com/libvips/build-win64-mxe
|
||||
ENV MXE_LLVM_MINGW_VERSION=21e02f87c282fcfe17c8376217b0a4f44f14d01b
|
||||
ENV MXE_LLVM_MINGW_PATH=/opt/build-win64-mxe
|
||||
|
||||
ARG PLUGIN_DIRS="${MXE_LLVM_MINGW_PATH} ${MXE_LLVM_MINGW_PATH}/build/plugins/llvm-mingw"
|
||||
ARG TARGETS="x86_64-w64-mingw32.static"
|
||||
ARG JOBS=
|
||||
|
||||
RUN apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive \
|
||||
apt-get -qy install \
|
||||
software-properties-common \
|
||||
lsb-release \
|
||||
autoconf \
|
||||
automake \
|
||||
autopoint \
|
||||
|
@ -26,67 +34,78 @@ RUN apt-get update \
|
|||
intltool \
|
||||
libc6-dev-i386 \
|
||||
libgdk-pixbuf2.0-dev \
|
||||
libltdl-dev \
|
||||
libgl-dev \
|
||||
libltdl-dev \
|
||||
libssl-dev \
|
||||
libtool-bin \
|
||||
libxml-parser-perl \
|
||||
lsb-release \
|
||||
lzip \
|
||||
make \
|
||||
ninja-build \
|
||||
openssl \
|
||||
p7zip-full \
|
||||
patch \
|
||||
perl \
|
||||
python-is-python3 \
|
||||
python3 \
|
||||
python3-mako \
|
||||
python3-pip \
|
||||
python3-pkg-resources \
|
||||
python-is-python3 \
|
||||
python3-yaml \
|
||||
ruby \
|
||||
sed \
|
||||
software-properties-common \
|
||||
unzip \
|
||||
wget \
|
||||
xz-utils \
|
||||
ninja-build \
|
||||
python3-pip \
|
||||
python3-yaml
|
||||
xz-utils
|
||||
|
||||
RUN cd /opt \
|
||||
&& git clone https://github.com/mxe/mxe.git \
|
||||
&& cd mxe \
|
||||
RUN git clone ${MXE_LLVM_MINGW_REPO} ${MXE_LLVM_MINGW_PATH} \
|
||||
&& cd ${MXE_LLVM_MINGW_PATH} \
|
||||
&& git checkout ${MXE_LLVM_MINGW_VERSION} \
|
||||
\
|
||||
&& git clone ${MXE_REPO} ${MXE_PATH} \
|
||||
&& cd ${MXE_PATH} \
|
||||
&& git checkout ${MXE_VERSION} \
|
||||
&& make MXE_TARGETS=x86_64-w64-mingw32.static \
|
||||
MXE_PLUGIN_DIRS=plugins/gcc13 \
|
||||
cc \
|
||||
&& git apply ${MXE_LLVM_MINGW_PATH}/build/patches/mxe-fixes.patch
|
||||
|
||||
RUN make \
|
||||
MXE_TARGETS="${TARGETS}" \
|
||||
MXE_PLUGIN_DIRS="${PLUGIN_DIRS}" \
|
||||
JOBS=${JOBS} \
|
||||
-C ${MXE_PATH} \
|
||||
cc
|
||||
|
||||
RUN rm ${MXE_PATH}/src/sdl2*.patch
|
||||
COPY vulkan-headers.mk \
|
||||
spirv-headers.mk \
|
||||
spirv-tools.mk \
|
||||
glslang.mk \
|
||||
glib.mk \
|
||||
sdl2.mk \
|
||||
${MXE_PATH}/src/
|
||||
|
||||
RUN make \
|
||||
MXE_TARGETS="${TARGETS}" \
|
||||
MXE_PLUGIN_DIRS="${PLUGIN_DIRS}" \
|
||||
JOBS=${JOBS} \
|
||||
CFLAGS=-O2 \
|
||||
-C ${MXE_PATH} \
|
||||
glib \
|
||||
libepoxy \
|
||||
pixman \
|
||||
libsamplerate \
|
||||
openssl \
|
||||
cmake \
|
||||
libslirp
|
||||
|
||||
RUN rm /opt/mxe/src/sdl2*.patch
|
||||
COPY sdl2.mk /opt/mxe/src/sdl2.mk
|
||||
RUN V=1 MXE_VERBOSE=1 make -C /opt/mxe \
|
||||
MXE_TARGETS=x86_64-w64-mingw32.static \
|
||||
MXE_PLUGIN_DIRS=plugins/gcc13 \
|
||||
sdl2
|
||||
|
||||
COPY vulkan-headers.mk \
|
||||
spirv-headers.mk \
|
||||
spirv-tools.mk \
|
||||
glslang.mk \
|
||||
/opt/mxe/src/
|
||||
RUN V=1 MXE_VERBOSE=1 make -C /opt/mxe \
|
||||
MXE_TARGETS=x86_64-w64-mingw32.static \
|
||||
MXE_PLUGIN_DIRS=plugins/gcc13 \
|
||||
libslirp \
|
||||
sdl2 \
|
||||
vulkan-headers \
|
||||
spirv-headers \
|
||||
spirv-tools \
|
||||
glslang
|
||||
|
||||
RUN find /opt/mxe/usr -executable -type f -exec chmod a+x {} \;
|
||||
RUN find ${MXE_PATH}/usr -executable -type f -exec chmod a+x {} \;
|
||||
|
||||
ENV CROSSPREFIX=x86_64-w64-mingw32.static-
|
||||
ENV CROSSAR=${CROSSPREFIX}gcc-ar
|
||||
ENV PATH="/opt/mxe/.ccache/bin:/opt/mxe/usr/x86_64-pc-linux-gnu/bin:/opt/mxe/usr/bin:${PATH}"
|
||||
ENV CROSSAR=${CROSSPREFIX}ar
|
||||
ENV PATH="${MXE_PATH}/.ccache/bin:${MXE_PATH}/usr/x86_64-pc-linux-gnu/bin:${MXE_PATH}/usr/bin:${PATH}"
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
# This file is part of MXE. See LICENSE.md for licensing information.
|
||||
|
||||
PKG := glib
|
||||
$(PKG)_WEBSITE := https://gtk.org/
|
||||
$(PKG)_DESCR := GLib
|
||||
$(PKG)_IGNORE :=
|
||||
$(PKG)_VERSION := 2.83.2
|
||||
$(PKG)_CHECKSUM := 8428d672c8485636d940f03ce8dcdc174f9b3892ac8b2eea76dd281af6a6e937
|
||||
$(PKG)_SUBDIR := glib-$($(PKG)_VERSION)
|
||||
$(PKG)_FILE := glib-$($(PKG)_VERSION).tar.xz
|
||||
$(PKG)_URL := https://download.gnome.org/sources/glib/$(call SHORT_PKG_VERSION,$(PKG))/$($(PKG)_FILE)
|
||||
$(PKG)_DEPS := cc meson-wrapper dbus gettext libffi libiconv pcre2 zlib $(BUILD)~$(PKG)
|
||||
$(PKG)_TARGETS := $(BUILD) $(MXE_TARGETS)
|
||||
$(PKG)_DEPS_$(BUILD) := cc meson-wrapper gettext libffi libiconv zlib
|
||||
|
||||
define $(PKG)_UPDATE
|
||||
$(WGET) -q -O- 'https://gitlab.gnome.org/GNOME/glib/tags' | \
|
||||
$(SED) -n "s,.*<a [^>]\+>v\?\([0-9]\+\.[0-9.]\+\)<.*,\1,p" | \
|
||||
$(SORT) -Vr | \
|
||||
head -1
|
||||
endef
|
||||
|
||||
define $(PKG)_BUILD_$(BUILD)
|
||||
# native build
|
||||
$(if $(findstring darwin, $(BUILD)), \
|
||||
CPPFLAGS='-I$(PREFIX)/$(TARGET).gnu/include' \
|
||||
LDFLAGS='-L$(PREFIX)/$(TARGET).gnu/lib' \,
|
||||
CPPFLAGS='-I$(PREFIX)/$(TARGET)/include' \
|
||||
LDFLAGS='-L$(PREFIX)/$(TARGET)/lib' \)
|
||||
'$(MXE_MESON_NATIVE_WRAPPER)' \
|
||||
--buildtype=release \
|
||||
-Dtests=false \
|
||||
'$(BUILD_DIR)' '$(SOURCE_DIR)'
|
||||
'$(MXE_NINJA)' -C '$(BUILD_DIR)' -j '$(JOBS)'
|
||||
'$(MXE_NINJA)' -C '$(BUILD_DIR)' -j '$(JOBS)' install
|
||||
endef
|
||||
|
||||
define $(PKG)_BUILD
|
||||
# other packages expect glib-tools in $(TARGET)/bin
|
||||
rm -f '$(PREFIX)/$(TARGET)/bin/glib-*'
|
||||
ln -sf '$(PREFIX)/$(BUILD)/bin/glib-genmarshal' '$(PREFIX)/$(TARGET)/bin/'
|
||||
ln -sf '$(PREFIX)/$(BUILD)/bin/glib-compile-schemas' '$(PREFIX)/$(TARGET)/bin/'
|
||||
ln -sf '$(PREFIX)/$(BUILD)/bin/glib-compile-resources' '$(PREFIX)/$(TARGET)/bin/'
|
||||
|
||||
'$(MXE_MESON_WRAPPER)' \
|
||||
$(MXE_MESON_OPTS) \
|
||||
-Dtests=false \
|
||||
'$(BUILD_DIR)' '$(SOURCE_DIR)'
|
||||
'$(MXE_NINJA)' -C '$(BUILD_DIR)' -j '$(JOBS)'
|
||||
'$(MXE_NINJA)' -C '$(BUILD_DIR)' -j '$(JOBS)' install
|
||||
endef
|
|
@ -19,9 +19,4 @@ define $(PKG)_BUILD
|
|||
-DVERBOSE=1
|
||||
$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)'
|
||||
$(MAKE) -C '$(BUILD_DIR)' -j 1 install
|
||||
|
||||
'$(TARGET)-gcc' \
|
||||
-W -Wall -Werror -ansi -pedantic \
|
||||
'$(TEST_FILE)' -o '$(PREFIX)/$(TARGET)/bin/test-sdl2.exe' \
|
||||
`'$(TARGET)-pkg-config' sdl2 --cflags --libs`
|
||||
endef
|
||||
|
|
Loading…
Reference in New Issue