mirror of
https://github.com/godotengine/build-containers.git
synced 2026-01-05 22:10:22 +03:00
macOS: Use godot-mono-builds scripts, add macOS arm64
This changes our handmade `configure` calls to rely on the streamlined build process from `godot-mono-builds`, so that our builds are consistent with the ones generated there. This enables us to target macOS arm64 easily as neikeq did the relevant work in the `godot-mono-builds` scripts. Includes a backport of https://github.com/mono/mono/pull/21147 to fix Mono build with `godot-mono-builds` using a wrapper for osxcross.
This commit is contained in:
@@ -19,30 +19,15 @@ ENV PATH="/root/osxcross/target/bin:${PATH}"
|
|||||||
|
|
||||||
RUN cp -a /root/files/${mono_version} /root && \
|
RUN cp -a /root/files/${mono_version} /root && \
|
||||||
cd /root/${mono_version} && \
|
cd /root/${mono_version} && \
|
||||||
export CMAKE=/root/osxcross/target/bin/x86_64-apple-darwin20.2-cmake && \
|
patch -p1 < /root/files/patches/mono-btls-cmake-wrapper.patch && \
|
||||||
NOCONFIGURE=1 ./autogen.sh && \
|
export MONO_SOURCE_ROOT=/root/${mono_version} && \
|
||||||
./configure --prefix=/root/dependencies/mono \
|
export OSXCROSS_SDK=20.2 && \
|
||||||
--build=x86_64-linux-gnu \
|
cd /root/${mono_version}/godot-mono-builds && \
|
||||||
--host=x86_64-apple-darwin20.2 \
|
python3 osx.py configure -j --target=x86_64 --target=arm64 && \
|
||||||
--disable-boehm \
|
python3 osx.py make -j --target=x86_64 --target=arm64 && \
|
||||||
--disable-mcs-build \
|
python3 bcl.py make --product=desktop && \
|
||||||
--with-tls=pthread \
|
python3 osx.py copy-bcl --target=x86_64 --target=arm64 && \
|
||||||
--disable-dtrace \
|
|
||||||
--disable-executables \
|
|
||||||
mono_cv_uscore=yes \
|
|
||||||
_lt_dar_can_shared=yes \
|
|
||||||
CC=o64-clang \
|
|
||||||
CXX=o64-clang++ && \
|
|
||||||
make -j && \
|
|
||||||
make install && \
|
|
||||||
cd /root && \
|
cd /root && \
|
||||||
rm -rf /root/dependencies/mono/bin/mono{,-sgen} /root/dependencies/mono/lib/mono && \
|
|
||||||
ln -s /usr/bin/mono /root/dependencies/mono/bin/mono && \
|
|
||||||
ln -s /usr/bin/mono-sgen /root/dependencies/mono/bin/mono-sgen && \
|
|
||||||
ln -s /usr/lib/mono /root/dependencies/mono/lib/mono && \
|
|
||||||
mkdir -p /root/dependencies/mono/etc && \
|
|
||||||
cp -rvp /etc/mono /root/dependencies/mono/etc/ && \
|
|
||||||
cp /root/files/mono-config-macosx /root/dependencies/mono/etc/mono/config && \
|
|
||||||
rm -rf /root/${mono_version}
|
rm -rf /root/${mono_version}
|
||||||
|
|
||||||
CMD /bin/bash
|
CMD /bin/bash
|
||||||
|
|||||||
@@ -1,46 +0,0 @@
|
|||||||
<configuration>
|
|
||||||
<dllmap dll="i:cygwin1.dll" target="libc.dylib" os="!windows" />
|
|
||||||
<dllmap dll="libc" target="libc.dylib" os="!windows"/>
|
|
||||||
<dllmap dll="intl" target="libintl.dylib" os="!windows"/>
|
|
||||||
<dllmap dll="intl" name="bind_textdomain_codeset" target="libc.dylib" os="solaris"/>
|
|
||||||
<dllmap dll="libintl" name="bind_textdomain_codeset" target="libc.dylib" os="solaris"/>
|
|
||||||
<dllmap dll="libintl" target="libintl.dylib" os="!windows"/>
|
|
||||||
<dllmap dll="i:libxslt.dll" target="libxslt.dylib" os="!windows"/>
|
|
||||||
<dllmap dll="i:odbc32.dll" target="libodbc.dylib" os="!windows"/>
|
|
||||||
<dllmap dll="i:odbc32.dll" target="libiodbc.dylib" os="osx"/>
|
|
||||||
<dllmap dll="oci" target="libclntsh.dylib" os="!windows"/>
|
|
||||||
<dllmap dll="db2cli" target="libdb2_36.dylib" os="!windows"/>
|
|
||||||
<dllmap dll="MonoPosixHelper" target="$mono_libdir/libMonoPosixHelper.dylib" os="!windows" />
|
|
||||||
<dllmap dll="System.Native" target="$mono_libdir/libmono-native-compat.dylib" os="!windows" />
|
|
||||||
<dllmap dll="System.Net.Security.Native" target="$mono_libdir/libmono-native-compat.dylib" os="!windows" />
|
|
||||||
<dllmap dll="System.Security.Cryptography.Native.Apple" target="$mono_libdir/libmono-native-compat.dylib" os="osx" />
|
|
||||||
<dllmap dll="libmono-btls-shared" target="$mono_libdir/libmono-btls-shared.dylib" os="!windows" />
|
|
||||||
<dllmap dll="i:msvcrt" target="libc.dylib" os="!windows"/>
|
|
||||||
<dllmap dll="i:msvcrt.dll" target="libc.dylib" os="!windows"/>
|
|
||||||
<dllmap dll="sqlite" target="libsqlite.0.dylib" os="!windows"/>
|
|
||||||
<dllmap dll="sqlite3" target="libsqlite3.0.dylib" os="!windows"/>
|
|
||||||
<dllmap dll="libX11" target="libX11.dylib" os="!windows" />
|
|
||||||
<dllmap dll="libgdk-x11-2.0" target="libgdk-x11-2.0.dylib" os="!windows"/>
|
|
||||||
<dllmap dll="libgdk_pixbuf-2.0" target="libgdk_pixbuf-2.0.so.0" os="!windows"/>
|
|
||||||
<dllmap dll="libgtk-x11-2.0" target="libgtk-x11-2.0.dylib" os="!windows"/>
|
|
||||||
<dllmap dll="libglib-2.0" target="libglib-2.0.so.0" os="!windows"/>
|
|
||||||
<dllmap dll="libgobject-2.0" target="libgobject-2.0.so.0" os="!windows"/>
|
|
||||||
<dllmap dll="libgnomeui-2" target="libgnomeui-2.so.0" os="!windows"/>
|
|
||||||
<dllmap dll="librsvg-2" target="librsvg-2.so.2" os="!windows"/>
|
|
||||||
<dllmap dll="libXinerama" target="libXinerama.so.1" os="!windows" />
|
|
||||||
<dllmap dll="libasound" target="libasound.so.2" os="!windows" />
|
|
||||||
<dllmap dll="libcairo-2.dll" target="libcairo.so.2" os="!windows"/>
|
|
||||||
<dllmap dll="libcairo-2.dll" target="libcairo.2.dylib" os="osx"/>
|
|
||||||
<dllmap dll="libcups" target="libcups.so.2" os="!windows"/>
|
|
||||||
<dllmap dll="libcups" target="libcups.dylib" os="osx"/>
|
|
||||||
<dllmap dll="i:kernel32.dll">
|
|
||||||
<dllentry dll="__Internal" name="CopyMemory" target="mono_win32_compat_CopyMemory"/>
|
|
||||||
<dllentry dll="__Internal" name="FillMemory" target="mono_win32_compat_FillMemory"/>
|
|
||||||
<dllentry dll="__Internal" name="MoveMemory" target="mono_win32_compat_MoveMemory"/>
|
|
||||||
<dllentry dll="__Internal" name="ZeroMemory" target="mono_win32_compat_ZeroMemory"/>
|
|
||||||
</dllmap>
|
|
||||||
<dllmap dll="gdiplus" target="libgdiplus.dylib" os="!windows"/>
|
|
||||||
<dllmap dll="gdiplus.dll" target="libgdiplus.dylib" os="!windows"/>
|
|
||||||
<dllmap dll="gdi32" target="libgdiplus.dylib" os="!windows"/>
|
|
||||||
<dllmap dll="gdi32.dll" target="libgdiplus.dylib" os="!windows"/>
|
|
||||||
</configuration>
|
|
||||||
13
files/patches/mono-btls-cmake-wrapper.patch
Normal file
13
files/patches/mono-btls-cmake-wrapper.patch
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/mono/btls/Makefile.am b/mono/btls/Makefile.am
|
||||||
|
index 9a385443..094b26f4 100644
|
||||||
|
--- a/mono/btls/Makefile.am
|
||||||
|
+++ b/mono/btls/Makefile.am
|
||||||
|
@@ -58,7 +58,7 @@ all-local: build-shared/libmono-btls-shared$(libsuffix)
|
||||||
|
|
||||||
|
build-shared/$(BUILDFILE):
|
||||||
|
-mkdir -p build-shared
|
||||||
|
- (cd build-shared && CC="$(CC)" CXX="$(CXX)" "$(CMAKE)" $(CMAKE_ARGS) $(BTLS_CMAKE_ARGS) -DBUILD_SHARED_LIBS=1 "$(abs_top_srcdir)/mono/btls")
|
||||||
|
+ (cd build-shared && CC="$(CC)" CXX="$(CXX)" $(CMAKE) $(CMAKE_ARGS) $(BTLS_CMAKE_ARGS) -DBUILD_SHARED_LIBS=1 "$(abs_top_srcdir)/mono/btls")
|
||||||
|
|
||||||
|
if NINJA
|
||||||
|
build-shared/libmono-btls-shared$(libsuffix): build-shared/$(BUILDFILE) $(MONO_BTLS_SOURCES_FILES)
|
||||||
Reference in New Issue
Block a user