mirror of
https://github.com/godotengine/build-containers.git
synced 2025-12-31 21:48:41 +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 && \
|
||||
cd /root/${mono_version} && \
|
||||
export CMAKE=/root/osxcross/target/bin/x86_64-apple-darwin20.2-cmake && \
|
||||
NOCONFIGURE=1 ./autogen.sh && \
|
||||
./configure --prefix=/root/dependencies/mono \
|
||||
--build=x86_64-linux-gnu \
|
||||
--host=x86_64-apple-darwin20.2 \
|
||||
--disable-boehm \
|
||||
--disable-mcs-build \
|
||||
--with-tls=pthread \
|
||||
--disable-dtrace \
|
||||
--disable-executables \
|
||||
mono_cv_uscore=yes \
|
||||
_lt_dar_can_shared=yes \
|
||||
CC=o64-clang \
|
||||
CXX=o64-clang++ && \
|
||||
make -j && \
|
||||
make install && \
|
||||
patch -p1 < /root/files/patches/mono-btls-cmake-wrapper.patch && \
|
||||
export MONO_SOURCE_ROOT=/root/${mono_version} && \
|
||||
export OSXCROSS_SDK=20.2 && \
|
||||
cd /root/${mono_version}/godot-mono-builds && \
|
||||
python3 osx.py configure -j --target=x86_64 --target=arm64 && \
|
||||
python3 osx.py make -j --target=x86_64 --target=arm64 && \
|
||||
python3 bcl.py make --product=desktop && \
|
||||
python3 osx.py copy-bcl --target=x86_64 --target=arm64 && \
|
||||
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}
|
||||
|
||||
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