Compare commits

...

28 Commits

Author SHA1 Message Date
Rémi Verschelde
c865201eba Mono: Bump to 6.12.0.178 2022-05-09 22:53:08 +02:00
Rémi Verschelde
62c407fd0f Merge pull request #65 from akien-mga/btls-lib-windows-only 2022-05-09 22:51:14 +02:00
Rémi Verschelde
2ef74ff260 desktop: Only enable btls-lib on Windows
Follow-up to #47 and #49.
This caused issues on macOS ARM64, see https://github.com/godotengine/build-containers/issues/95.
2022-05-09 13:37:08 +02:00
Rémi Verschelde
1cc1257eda Mono: Bump to 6.12.0.177 2022-05-03 11:50:55 +02:00
Rémi Verschelde
187d156c89 CI: Bump download-artifact and upload-artifact to v3 2022-05-03 11:50:40 +02:00
Rémi Verschelde
4e93604bc4 CI: Bump old ubuntu version to ubuntu-18.04
The ubuntu-16.04 runners have been removed from GitHub Actions.
2022-04-01 01:06:46 +02:00
Rémi Verschelde
efd26fbbff Merge pull request #61 from akien-mga/mono-6.12.0.174 2022-04-01 00:59:05 +02:00
Rémi Verschelde
baa6f22377 Mono: Bump to 6.12.0.174
Should also fix CI by including
5a21247f36
2022-03-31 19:15:56 +02:00
Rémi Verschelde
dfb29cab81 CI: Update all actions versions 2022-03-31 19:14:32 +02:00
Rémi Verschelde
0d72e71a50 Merge pull request #50 from akien-mga/android-bump-min-19-target-30
Android: Bump min SDK to 19, target SDK to 30
2021-08-17 08:54:25 +02:00
Rémi Verschelde
1755de4f1e Android: Bump min SDK to 19, target SDK to 30
Following https://github.com/godotengine/godot/pull/51719.

Also removes now obsolete code to check whether we're using NDK 18+,
since we don't support any earlier version.
2021-08-16 10:20:55 +02:00
Rémi Verschelde
6d4f576264 Merge pull request #49 from godotengine/btls-lib-windows-desktop
Windows: Configure with `--enable-btls-lib` to build BTLS dll
2021-08-10 09:03:16 +02:00
Ignacio Roldán Etcheverry
f63f4e2e44 Windows: Configure with --enable-btls-lib to build BTLS dll
Patched Mono to make the BTLS CMake build work with MinGW on Linux.
2021-08-06 20:29:35 +02:00
Ignacio Roldán Etcheverry
aad08390cb Merge pull request #48 from Calinou/fix-mono-log-spam
Fix Mono log spam
2021-08-04 00:28:23 +02:00
Hugo Locurcio
2d30ce6362 Fix Mono log spam
This prevents Mono logs from being spammed, which could result
in log file sizes in the dozens of gigabytes.
2021-08-03 17:49:37 +02:00
Ignacio Roldán Etcheverry
c6bdc0feca Merge pull request #47 from TechnoPorg/windows-enable-btls
Enable BTLS when building for Windows
2021-07-29 23:37:24 +02:00
TechnoPorg
d62d874dd2 Enable BTLS when building for Windows 2021-07-29 08:09:14 -06:00
Rémi Verschelde
2bf7d71c7c Merge pull request #46 from akien-mga/fix-copy_bcl-desktop-win32
bcl: Fix copy_bcl for desktop-win32 profile
2021-07-27 08:44:33 +02:00
Rémi Verschelde
fb6da044d7 bcl: Fix copy_bcl for desktop-win32 profile 2021-07-26 14:59:52 +02:00
Rémi Verschelde
c3a9d311bc Merge pull request #43 from akien-mga/mono-6.12.0.147
CI: Build with Mono 6.12.0.147
2021-07-06 20:41:50 +02:00
Rémi Verschelde
d75582bd3c Set actions/cache to v2, we don't need explicit manual bumps for 2.1.x 2021-07-06 17:47:28 +02:00
Rémi Verschelde
75a0b00364 Merge pull request #41 from godotengine/dependabot/github_actions/mymindstorm/setup-emsdk-10
Bump mymindstorm/setup-emsdk from 9 to 10
2021-07-06 17:45:14 +02:00
Rémi Verschelde
47e40daefe CI: Build with Mono 6.12.0.147 2021-07-06 16:57:49 +02:00
Ignacio Roldán Etcheverry
29683d76fc Merge pull request #40 from godotengine/dummy-xamarin-ios-dll
iOS BCL: Build dummy `Xamarin.iOS.dll` which is necessary
2021-06-02 23:34:07 +02:00
Ignacio Roldán Etcheverry
7937417c83 Merge pull request #39 from godotengine/ios-and-m1-stuff
Apple silicon: arm64 macOS and arm64 iOS simulator
2021-06-02 23:32:45 +02:00
dependabot[bot]
0cfb06c6e4 Bump mymindstorm/setup-emsdk from 9 to 10
Bumps [mymindstorm/setup-emsdk](https://github.com/mymindstorm/setup-emsdk) from 9 to 10.
- [Release notes](https://github.com/mymindstorm/setup-emsdk/releases)
- [Commits](https://github.com/mymindstorm/setup-emsdk/compare/v9...v10)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-27 06:00:10 +00:00
Ignacio Roldán Etchevery
0a2b5f8fab Apple silicon: arm64 macOS and arm64 iOS simulator 2021-05-22 02:36:45 +02:00
Ignacio Roldán Etchevery
61df21a190 iOS BCL: Build dummy Xamarin.iOS.dll which is necessary
Fixes godotengine/godot#42960
2021-05-22 02:21:43 +02:00
13 changed files with 287 additions and 131 deletions

View File

@@ -21,21 +21,20 @@ on:
branches: branches:
- 'release/**' - 'release/**'
# Use ubuntu-16.04 for the best compatibility. # Use ubuntu-18.04 for Linux for the best glibc compatibility.
# Use ubuntu-latest for the Windows builds because of outdated MinGW headers on ubuntu-16.04. # Use ubuntu-latest for other platforms.
# Use ubuntu-latest for the WASM runtime ("machine `wasm32' not recognized" on ubuntu-16.04)
env: env:
# Use SHA or tag instead of the branch for caching purposes. # Use SHA or tag instead of the branch for caching purposes.
MONO_TAG: mono-6.12.0.144 MONO_TAG: mono-6.12.0.178
PYTHON_VERSION: 3.9 PYTHON_VERSION: 3.9
# Should match the version that Mono supports. # Should match the version that Mono supports.
EMSDK_VERSION: 1.39.9 EMSDK_VERSION: 1.39.9
ANDROID_CMAKE_VERSION: 3.10.2.4988404 ANDROID_CMAKE_VERSION: 3.10.2.4988404
# These should be synced with the Godot repo. # These should be synced with the Godot repo.
# platform/android/java/app/config.gradle # platform/android/java/app/config.gradle
ANDROID_PLATFORM: android-29 ANDROID_PLATFORM: android-30
ANDROID_API: 18 ANDROID_API: 19
ANDROID_NDK_VERSION: 21.4.7075529 ANDROID_NDK_VERSION: 21.4.7075529
# platform/iphone/detect.py # platform/iphone/detect.py
IOS_VERSION_MIN: 10.0 IOS_VERSION_MIN: 10.0
@@ -43,7 +42,7 @@ env:
jobs: jobs:
linux: linux:
name: Linux name: Linux
runs-on: ubuntu-16.04 runs-on: ubuntu-18.04
strategy: strategy:
matrix: matrix:
target: [x86, x86_64] target: [x86, x86_64]
@@ -65,13 +64,13 @@ jobs:
sudo apt-get -y install git autoconf libtool libtool-bin automake build-essential gettext cmake python3 curl sudo apt-get -y install git autoconf libtool libtool-bin automake build-essential gettext cmake python3 curl
- name: Cache Mono Sources - name: Cache Mono Sources
id: cache_mono_sources id: cache_mono_sources
uses: actions/cache@v2.1.5 uses: actions/cache@v3
with: with:
path: ${{ env.MONO_SOURCE_ROOT }} path: ${{ env.MONO_SOURCE_ROOT }}
key: ${{ runner.os }}-${{ env.MONO_TAG }}-mono-sources key: ${{ runner.os }}-${{ env.MONO_TAG }}-mono-sources
- name: Checkout Mono Sources - name: Checkout Mono Sources
if: steps.cache_mono_sources.outputs.cache-hit != 'true' if: steps.cache_mono_sources.outputs.cache-hit != 'true'
uses: actions/checkout@v2 uses: actions/checkout@v3
with: with:
repository: mono/mono repository: mono/mono
ref: ${{ env.MONO_TAG }} ref: ${{ env.MONO_TAG }}
@@ -80,11 +79,11 @@ jobs:
- name: Clean Mono - name: Clean Mono
run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v3
with: with:
path: godot-mono-builds path: godot-mono-builds
- name: Setup Python - name: Setup Python
uses: actions/setup-python@v2.2.2 uses: actions/setup-python@v3
with: with:
python-version: ${{ env.PYTHON_VERSION }} python-version: ${{ env.PYTHON_VERSION }}
- name: Patch Mono - name: Patch Mono
@@ -101,7 +100,7 @@ jobs:
mkdir -p $HOME/mono-installs-artifacts mkdir -p $HOME/mono-installs-artifacts
(cd $HOME/mono-installs && zip -ry $HOME/mono-installs-artifacts/linux-${{ matrix.target }}.zip desktop-linux-${{ matrix.target }}-release) (cd $HOME/mono-installs && zip -ry $HOME/mono-installs-artifacts/linux-${{ matrix.target }}.zip desktop-linux-${{ matrix.target }}-release)
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: linux-${{ matrix.target }} name: linux-${{ matrix.target }}
path: ~/mono-installs-artifacts/linux-${{ matrix.target }}.zip path: ~/mono-installs-artifacts/linux-${{ matrix.target }}.zip
@@ -109,7 +108,7 @@ jobs:
run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd
- name: Upload config.log After Error - name: Upload config.log After Error
if: ${{ failure() }} if: ${{ failure() }}
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: linux-${{ matrix.target }}-config.log name: linux-${{ matrix.target }}-config.log
path: ~/mono-configs/desktop-linux-${{ matrix.target }}-release/config.log path: ~/mono-configs/desktop-linux-${{ matrix.target }}-release/config.log
@@ -139,13 +138,13 @@ jobs:
sudo apt-get -y install mingw-w64 libz-mingw-w64-dev sudo apt-get -y install mingw-w64 libz-mingw-w64-dev
- name: Cache Mono Sources - name: Cache Mono Sources
id: cache_mono_sources id: cache_mono_sources
uses: actions/cache@v2.1.5 uses: actions/cache@v3
with: with:
path: ${{ env.MONO_SOURCE_ROOT }} path: ${{ env.MONO_SOURCE_ROOT }}
key: ${{ runner.os }}-${{ env.MONO_TAG }}-mono-sources key: ${{ runner.os }}-${{ env.MONO_TAG }}-mono-sources
- name: Checkout Mono Sources - name: Checkout Mono Sources
if: steps.cache_mono_sources.outputs.cache-hit != 'true' if: steps.cache_mono_sources.outputs.cache-hit != 'true'
uses: actions/checkout@v2 uses: actions/checkout@v3
with: with:
repository: mono/mono repository: mono/mono
ref: ${{ env.MONO_TAG }} ref: ${{ env.MONO_TAG }}
@@ -154,11 +153,11 @@ jobs:
- name: Clean Mono - name: Clean Mono
run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v3
with: with:
path: godot-mono-builds path: godot-mono-builds
- name: Setup Python - name: Setup Python
uses: actions/setup-python@v2.2.2 uses: actions/setup-python@v3
with: with:
python-version: ${{ env.PYTHON_VERSION }} python-version: ${{ env.PYTHON_VERSION }}
- name: Patch Mono - name: Patch Mono
@@ -175,7 +174,7 @@ jobs:
mkdir -p $HOME/mono-installs-artifacts mkdir -p $HOME/mono-installs-artifacts
(cd $HOME/mono-installs && zip -ry $HOME/mono-installs-artifacts/windows-${{ matrix.target }}.zip desktop-windows-${{ matrix.target }}-release) (cd $HOME/mono-installs && zip -ry $HOME/mono-installs-artifacts/windows-${{ matrix.target }}.zip desktop-windows-${{ matrix.target }}-release)
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: windows-${{ matrix.target }} name: windows-${{ matrix.target }}
path: ~/mono-installs-artifacts/windows-${{ matrix.target }}.zip path: ~/mono-installs-artifacts/windows-${{ matrix.target }}.zip
@@ -183,7 +182,7 @@ jobs:
run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd
- name: Upload config.log After Error - name: Upload config.log After Error
if: ${{ failure() }} if: ${{ failure() }}
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: windows-${{ matrix.target }}-config.log name: windows-${{ matrix.target }}-config.log
path: ~/mono-configs/desktop-windows-${{ matrix.target }}-release/config.log path: ~/mono-configs/desktop-windows-${{ matrix.target }}-release/config.log
@@ -203,13 +202,13 @@ jobs:
brew install autoconf automake libtool pkg-config cmake python3 brew install autoconf automake libtool pkg-config cmake python3
- name: Cache Mono Sources - name: Cache Mono Sources
id: cache_mono_sources id: cache_mono_sources
uses: actions/cache@v2.1.5 uses: actions/cache@v3
with: with:
path: ${{ env.MONO_SOURCE_ROOT }} path: ${{ env.MONO_SOURCE_ROOT }}
key: ${{ runner.os }}-${{ env.MONO_TAG }}-mono-sources key: ${{ runner.os }}-${{ env.MONO_TAG }}-mono-sources
- name: Checkout Mono Sources - name: Checkout Mono Sources
if: steps.cache_mono_sources.outputs.cache-hit != 'true' if: steps.cache_mono_sources.outputs.cache-hit != 'true'
uses: actions/checkout@v2 uses: actions/checkout@v3
with: with:
repository: mono/mono repository: mono/mono
ref: ${{ env.MONO_TAG }} ref: ${{ env.MONO_TAG }}
@@ -218,11 +217,11 @@ jobs:
- name: Clean Mono - name: Clean Mono
run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v3
with: with:
path: godot-mono-builds path: godot-mono-builds
- name: Setup Python - name: Setup Python
uses: actions/setup-python@v2.2.2 uses: actions/setup-python@v3
with: with:
python-version: ${{ env.PYTHON_VERSION }} python-version: ${{ env.PYTHON_VERSION }}
- name: Patch Mono - name: Patch Mono
@@ -239,7 +238,7 @@ jobs:
mkdir -p $HOME/mono-installs-artifacts mkdir -p $HOME/mono-installs-artifacts
(cd $HOME/mono-installs && zip -ry $HOME/mono-installs-artifacts/osx-${{ matrix.target }}.zip desktop-osx-${{ matrix.target }}-release) (cd $HOME/mono-installs && zip -ry $HOME/mono-installs-artifacts/osx-${{ matrix.target }}.zip desktop-osx-${{ matrix.target }}-release)
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: osx-${{ matrix.target }} name: osx-${{ matrix.target }}
path: ~/mono-installs-artifacts/osx-${{ matrix.target }}.zip path: ~/mono-installs-artifacts/osx-${{ matrix.target }}.zip
@@ -247,7 +246,7 @@ jobs:
run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd
- name: Upload config.log After Error - name: Upload config.log After Error
if: ${{ failure() }} if: ${{ failure() }}
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: osx-${{ matrix.target }}-config.log name: osx-${{ matrix.target }}-config.log
path: ~/mono-configs/desktop-osx-${{ matrix.target }}-release/config.log path: ~/mono-configs/desktop-osx-${{ matrix.target }}-release/config.log
@@ -257,7 +256,7 @@ jobs:
runs-on: macos-latest runs-on: macos-latest
strategy: strategy:
matrix: matrix:
target: [arm64, x86_64] target: [arm64, x86_64, arm64-sim]
steps: steps:
- name: Set Environment Variables - name: Set Environment Variables
run: | run: |
@@ -267,13 +266,13 @@ jobs:
brew install autoconf automake libtool pkg-config cmake python3 brew install autoconf automake libtool pkg-config cmake python3
- name: Cache Mono Sources - name: Cache Mono Sources
id: cache_mono_sources id: cache_mono_sources
uses: actions/cache@v2.1.5 uses: actions/cache@v3
with: with:
path: ${{ env.MONO_SOURCE_ROOT }} path: ${{ env.MONO_SOURCE_ROOT }}
key: ${{ runner.os }}-${{ env.MONO_TAG }}-mono-sources key: ${{ runner.os }}-${{ env.MONO_TAG }}-mono-sources
- name: Checkout Mono Sources - name: Checkout Mono Sources
if: steps.cache_mono_sources.outputs.cache-hit != 'true' if: steps.cache_mono_sources.outputs.cache-hit != 'true'
uses: actions/checkout@v2 uses: actions/checkout@v3
with: with:
repository: mono/mono repository: mono/mono
ref: ${{ env.MONO_TAG }} ref: ${{ env.MONO_TAG }}
@@ -282,11 +281,11 @@ jobs:
- name: Clean Mono - name: Clean Mono
run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v3
with: with:
path: godot-mono-builds path: godot-mono-builds
- name: Setup Python - name: Setup Python
uses: actions/setup-python@v2.2.2 uses: actions/setup-python@v3
with: with:
python-version: ${{ env.PYTHON_VERSION }} python-version: ${{ env.PYTHON_VERSION }}
- name: Patch Mono - name: Patch Mono
@@ -304,7 +303,7 @@ jobs:
mkdir -p $HOME/mono-installs-artifacts mkdir -p $HOME/mono-installs-artifacts
(cd $HOME/mono-installs && zip -ry $HOME/mono-installs-artifacts/ios-${{ matrix.target }}.zip ios-${{ matrix.target }}-release) (cd $HOME/mono-installs && zip -ry $HOME/mono-installs-artifacts/ios-${{ matrix.target }}.zip ios-${{ matrix.target }}-release)
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: ios-${{ matrix.target }} name: ios-${{ matrix.target }}
path: ~/mono-installs-artifacts/ios-${{ matrix.target }}.zip path: ~/mono-installs-artifacts/ios-${{ matrix.target }}.zip
@@ -312,7 +311,7 @@ jobs:
run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd
- name: Upload config.log After Error - name: Upload config.log After Error
if: ${{ failure() }} if: ${{ failure() }}
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: ios-${{ matrix.target }}-config.log name: ios-${{ matrix.target }}-config.log
path: ~/mono-configs/ios-${{ matrix.target }}-release/config.log path: ~/mono-configs/ios-${{ matrix.target }}-release/config.log
@@ -337,13 +336,13 @@ jobs:
brew install autoconf automake libtool pkg-config cmake python3 brew install autoconf automake libtool pkg-config cmake python3
- name: Cache Mono Sources - name: Cache Mono Sources
id: cache_mono_sources id: cache_mono_sources
uses: actions/cache@v2.1.5 uses: actions/cache@v3
with: with:
path: ${{ env.MONO_SOURCE_ROOT }} path: ${{ env.MONO_SOURCE_ROOT }}
key: ${{ runner.os }}-${{ env.MONO_TAG }}-mono-sources key: ${{ runner.os }}-${{ env.MONO_TAG }}-mono-sources
- name: Checkout Mono Sources - name: Checkout Mono Sources
if: steps.cache_mono_sources.outputs.cache-hit != 'true' if: steps.cache_mono_sources.outputs.cache-hit != 'true'
uses: actions/checkout@v2 uses: actions/checkout@v3
with: with:
repository: mono/mono repository: mono/mono
ref: ${{ env.MONO_TAG }} ref: ${{ env.MONO_TAG }}
@@ -352,18 +351,18 @@ jobs:
- name: Clean Mono - name: Clean Mono
run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v3
with: with:
path: godot-mono-builds path: godot-mono-builds
- name: Setup Python - name: Setup Python
uses: actions/setup-python@v2.2.2 uses: actions/setup-python@v3
with: with:
python-version: ${{ env.PYTHON_VERSION }} python-version: ${{ env.PYTHON_VERSION }}
- name: Patch Mono - name: Patch Mono
run: run:
python3 godot-mono-builds/patch_mono.py python3 godot-mono-builds/patch_mono.py
- name: Download LLVM artifact - name: Download LLVM artifact
uses: actions/download-artifact@v2 uses: actions/download-artifact@v3
with: with:
name: llvm-${{ matrix.llvm }}-macos-latest name: llvm-${{ matrix.llvm }}-macos-latest
# Tilde ~/ not supported when downloading yet: https://github.com/actions/download-artifact/issues/37 # Tilde ~/ not supported when downloading yet: https://github.com/actions/download-artifact/issues/37
@@ -391,7 +390,7 @@ jobs:
mkdir -p $HOME/mono-installs-artifacts mkdir -p $HOME/mono-installs-artifacts
(cd $HOME/mono-installs && zip -ry $HOME/mono-installs-artifacts/ios-${{ matrix.target }}.zip ios-${{ matrix.target }}-release) (cd $HOME/mono-installs && zip -ry $HOME/mono-installs-artifacts/ios-${{ matrix.target }}.zip ios-${{ matrix.target }}-release)
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: ios-${{ matrix.target }} name: ios-${{ matrix.target }}
path: ~/mono-installs-artifacts/ios-${{ matrix.target }}.zip path: ~/mono-installs-artifacts/ios-${{ matrix.target }}.zip
@@ -399,20 +398,20 @@ jobs:
run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd
- name: Upload Runtime config.log After Error - name: Upload Runtime config.log After Error
if: ${{ failure() }} if: ${{ failure() }}
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: ios-${{ matrix.target }}-runtime-config.log name: ios-${{ matrix.target }}-runtime-config.log
path: ~/mono-configs/ios-${{ matrix.runtime_target }}-release/config.log path: ~/mono-configs/ios-${{ matrix.runtime_target }}-release/config.log
- name: Upload Cross config.log After Error - name: Upload Cross config.log After Error
if: ${{ failure() }} if: ${{ failure() }}
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: ios-${{ matrix.target }}-config.log name: ios-${{ matrix.target }}-config.log
path: ~/mono-configs/ios-${{ matrix.target }}-release/config.log path: ~/mono-configs/ios-${{ matrix.target }}-release/config.log
android: android:
name: Android name: Android
runs-on: ubuntu-16.04 runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
target: [armeabi-v7a, arm64-v8a, x86, x86_64] target: [armeabi-v7a, arm64-v8a, x86, x86_64]
@@ -435,13 +434,13 @@ jobs:
echo "ANDROID_NDK_ROOT=$ANDROID_SDK_ROOT/ndk/$ANDROID_NDK_VERSION" >> $GITHUB_ENV echo "ANDROID_NDK_ROOT=$ANDROID_SDK_ROOT/ndk/$ANDROID_NDK_VERSION" >> $GITHUB_ENV
- name: Cache Mono Sources - name: Cache Mono Sources
id: cache_mono_sources id: cache_mono_sources
uses: actions/cache@v2.1.5 uses: actions/cache@v3
with: with:
path: ${{ env.MONO_SOURCE_ROOT }} path: ${{ env.MONO_SOURCE_ROOT }}
key: ${{ runner.os }}-${{ env.MONO_TAG }}-mono-sources key: ${{ runner.os }}-${{ env.MONO_TAG }}-mono-sources
- name: Checkout Mono Sources - name: Checkout Mono Sources
if: steps.cache_mono_sources.outputs.cache-hit != 'true' if: steps.cache_mono_sources.outputs.cache-hit != 'true'
uses: actions/checkout@v2 uses: actions/checkout@v3
with: with:
repository: mono/mono repository: mono/mono
ref: ${{ env.MONO_TAG }} ref: ${{ env.MONO_TAG }}
@@ -450,11 +449,11 @@ jobs:
- name: Clean Mono - name: Clean Mono
run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v3
with: with:
path: godot-mono-builds path: godot-mono-builds
- name: Setup Python - name: Setup Python
uses: actions/setup-python@v2.2.2 uses: actions/setup-python@v3
with: with:
python-version: ${{ env.PYTHON_VERSION }} python-version: ${{ env.PYTHON_VERSION }}
- name: Patch Mono - name: Patch Mono
@@ -471,7 +470,7 @@ jobs:
mkdir -p $HOME/mono-installs-artifacts mkdir -p $HOME/mono-installs-artifacts
(cd $HOME/mono-installs && zip -ry $HOME/mono-installs-artifacts/android-${{ matrix.target }}.zip android-${{ matrix.target }}-release) (cd $HOME/mono-installs && zip -ry $HOME/mono-installs-artifacts/android-${{ matrix.target }}.zip android-${{ matrix.target }}-release)
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: android-${{ matrix.target }} name: android-${{ matrix.target }}
path: ~/mono-installs-artifacts/android-${{ matrix.target }}.zip path: ~/mono-installs-artifacts/android-${{ matrix.target }}.zip
@@ -479,7 +478,7 @@ jobs:
run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd
- name: Upload config.log After Error - name: Upload config.log After Error
if: ${{ failure() }} if: ${{ failure() }}
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: android-${{ matrix.target }}-config.log name: android-${{ matrix.target }}-config.log
path: ~/mono-configs/android-${{ matrix.target }}-release/config.log path: ~/mono-configs/android-${{ matrix.target }}-release/config.log
@@ -491,7 +490,7 @@ jobs:
strategy: strategy:
matrix: matrix:
target: [cross-arm, cross-arm64, cross-x86, cross-x86_64, cross-arm-win, cross-arm64-win, cross-x86-win, cross-x86_64-win] target: [cross-arm, cross-arm64, cross-x86, cross-x86_64, cross-arm-win, cross-arm64-win, cross-x86-win, cross-x86_64-win]
os: [ubuntu-16.04, ubuntu-latest] os: [ubuntu-18.04, ubuntu-latest]
exclude: exclude:
- target: cross-arm - target: cross-arm
os: ubuntu-latest os: ubuntu-latest
@@ -502,30 +501,30 @@ jobs:
- target: cross-x86_64 - target: cross-x86_64
os: ubuntu-latest os: ubuntu-latest
- target: cross-arm-win - target: cross-arm-win
os: ubuntu-16.04 os: ubuntu-18.04
- target: cross-arm64-win - target: cross-arm64-win
os: ubuntu-16.04 os: ubuntu-18.04
- target: cross-x86-win - target: cross-x86-win
os: ubuntu-16.04 os: ubuntu-18.04
- target: cross-x86_64-win - target: cross-x86_64-win
os: ubuntu-16.04 os: ubuntu-18.04
include: include:
- target: cross-arm - target: cross-arm
llvm: llvm64 llvm: llvm64
runtime_target: armeabi-v7a runtime_target: armeabi-v7a
os: ubuntu-16.04 os: ubuntu-18.04
- target: cross-arm64 - target: cross-arm64
llvm: llvm64 llvm: llvm64
runtime_target: arm64-v8a runtime_target: arm64-v8a
os: ubuntu-16.04 os: ubuntu-18.04
- target: cross-x86 - target: cross-x86
llvm: llvm64 llvm: llvm64
runtime_target: x86 runtime_target: x86
os: ubuntu-16.04 os: ubuntu-18.04
- target: cross-x86_64 - target: cross-x86_64
llvm: llvm64 llvm: llvm64
runtime_target: x86_64 runtime_target: x86_64
os: ubuntu-16.04 os: ubuntu-18.04
- target: cross-arm-win - target: cross-arm-win
llvm: llvmwin64 llvm: llvmwin64
runtime_target: armeabi-v7a runtime_target: armeabi-v7a
@@ -564,13 +563,13 @@ jobs:
echo "ANDROID_NDK_ROOT=$ANDROID_SDK_ROOT/ndk/$ANDROID_NDK_VERSION" >> $GITHUB_ENV echo "ANDROID_NDK_ROOT=$ANDROID_SDK_ROOT/ndk/$ANDROID_NDK_VERSION" >> $GITHUB_ENV
- name: Cache Mono Sources - name: Cache Mono Sources
id: cache_mono_sources id: cache_mono_sources
uses: actions/cache@v2.1.5 uses: actions/cache@v3
with: with:
path: ${{ env.MONO_SOURCE_ROOT }} path: ${{ env.MONO_SOURCE_ROOT }}
key: ${{ runner.os }}-${{ env.MONO_TAG }}-mono-sources key: ${{ runner.os }}-${{ env.MONO_TAG }}-mono-sources
- name: Checkout Mono Sources - name: Checkout Mono Sources
if: steps.cache_mono_sources.outputs.cache-hit != 'true' if: steps.cache_mono_sources.outputs.cache-hit != 'true'
uses: actions/checkout@v2 uses: actions/checkout@v3
with: with:
repository: mono/mono repository: mono/mono
ref: ${{ env.MONO_TAG }} ref: ${{ env.MONO_TAG }}
@@ -579,15 +578,15 @@ jobs:
- name: Clean Mono - name: Clean Mono
run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v3
with: with:
path: godot-mono-builds path: godot-mono-builds
- name: Setup Python - name: Setup Python
uses: actions/setup-python@v2.2.2 uses: actions/setup-python@v3
with: with:
python-version: ${{ env.PYTHON_VERSION }} python-version: ${{ env.PYTHON_VERSION }}
- name: Download LLVM artifact - name: Download LLVM artifact
uses: actions/download-artifact@v2 uses: actions/download-artifact@v3
with: with:
name: llvm-${{ matrix.llvm }}-${{ matrix.os }} name: llvm-${{ matrix.llvm }}-${{ matrix.os }}
# Tilde ~/ not supported when downloading yet: https://github.com/actions/download-artifact/issues/37 # Tilde ~/ not supported when downloading yet: https://github.com/actions/download-artifact/issues/37
@@ -616,7 +615,7 @@ jobs:
mkdir -p $HOME/mono-installs-artifacts mkdir -p $HOME/mono-installs-artifacts
(cd $HOME/mono-installs && zip -ry $HOME/mono-installs-artifacts/android-${{ matrix.target }}.zip android-${{ matrix.target }}-release) (cd $HOME/mono-installs && zip -ry $HOME/mono-installs-artifacts/android-${{ matrix.target }}.zip android-${{ matrix.target }}-release)
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: android-${{ matrix.target }} name: android-${{ matrix.target }}
path: ~/mono-installs-artifacts/android-${{ matrix.target }}.zip path: ~/mono-installs-artifacts/android-${{ matrix.target }}.zip
@@ -624,13 +623,13 @@ jobs:
run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd
- name: Upload Runtime config.log After Error - name: Upload Runtime config.log After Error
if: ${{ failure() }} if: ${{ failure() }}
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: android-${{ matrix.target }}-runtime-config.log name: android-${{ matrix.target }}-runtime-config.log
path: ~/mono-configs/android-${{ matrix.runtime_target }}-release/config.log path: ~/mono-configs/android-${{ matrix.runtime_target }}-release/config.log
- name: Upload Cross config.log After Error - name: Upload Cross config.log After Error
if: ${{ failure() }} if: ${{ failure() }}
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: android-${{ matrix.target }}-config.log name: android-${{ matrix.target }}-config.log
path: ~/mono-configs/android-${{ matrix.target }}-release/config.log path: ~/mono-configs/android-${{ matrix.target }}-release/config.log
@@ -651,13 +650,13 @@ jobs:
sudo apt-get -y install git autoconf libtool libtool-bin automake build-essential gettext cmake python3 curl sudo apt-get -y install git autoconf libtool libtool-bin automake build-essential gettext cmake python3 curl
- name: Cache Mono Sources - name: Cache Mono Sources
id: cache_mono_sources id: cache_mono_sources
uses: actions/cache@v2.1.5 uses: actions/cache@v3
with: with:
path: ${{ env.MONO_SOURCE_ROOT }} path: ${{ env.MONO_SOURCE_ROOT }}
key: ${{ runner.os }}-${{ env.MONO_TAG }}-mono-sources key: ${{ runner.os }}-${{ env.MONO_TAG }}-mono-sources
- name: Checkout Mono Sources - name: Checkout Mono Sources
if: steps.cache_mono_sources.outputs.cache-hit != 'true' if: steps.cache_mono_sources.outputs.cache-hit != 'true'
uses: actions/checkout@v2 uses: actions/checkout@v3
with: with:
repository: mono/mono repository: mono/mono
ref: ${{ env.MONO_TAG }} ref: ${{ env.MONO_TAG }}
@@ -666,15 +665,15 @@ jobs:
- name: Clean Mono - name: Clean Mono
run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v3
with: with:
path: godot-mono-builds path: godot-mono-builds
- name: Setup Python - name: Setup Python
uses: actions/setup-python@v2.2.2 uses: actions/setup-python@v3
with: with:
python-version: ${{ env.PYTHON_VERSION }} python-version: ${{ env.PYTHON_VERSION }}
- name: Setup Emscripten SDK - name: Setup Emscripten SDK
uses: mymindstorm/setup-emsdk@v9 uses: mymindstorm/setup-emsdk@v11
with: with:
version: ${{ env.EMSDK_VERSION }} version: ${{ env.EMSDK_VERSION }}
- name: Patch Mono - name: Patch Mono
@@ -691,7 +690,7 @@ jobs:
mkdir -p $HOME/mono-installs-artifacts mkdir -p $HOME/mono-installs-artifacts
(cd $HOME/mono-installs && zip -ry $HOME/mono-installs-artifacts/wasm-${{ matrix.target }}.zip wasm-${{ matrix.target }}-release) (cd $HOME/mono-installs && zip -ry $HOME/mono-installs-artifacts/wasm-${{ matrix.target }}.zip wasm-${{ matrix.target }}-release)
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: wasm-${{ matrix.target }} name: wasm-${{ matrix.target }}
path: ~/mono-installs-artifacts/wasm-${{ matrix.target }}.zip path: ~/mono-installs-artifacts/wasm-${{ matrix.target }}.zip
@@ -699,7 +698,7 @@ jobs:
run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd
- name: Upload config.log After Error - name: Upload config.log After Error
if: ${{ failure() }} if: ${{ failure() }}
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: wasm-${{ matrix.target }}-config.log name: wasm-${{ matrix.target }}-config.log
path: ~/mono-configs/wasm-${{ matrix.target }}-release/config.log path: ~/mono-configs/wasm-${{ matrix.target }}-release/config.log
@@ -709,11 +708,11 @@ jobs:
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
strategy: strategy:
matrix: matrix:
os: [ubuntu-16.04, ubuntu-latest, macos-latest] os: [ubuntu-18.04, ubuntu-latest, macos-latest]
target: [llvm64, llvmwin64] target: [llvm64, llvmwin64]
exclude: exclude:
# Ubuntu 16.04 is only needed for the Linux build # Ubuntu 18.04 is only needed for the Linux build
- os: ubuntu-16.04 - os: ubuntu-18.04
target: llvmwin64 target: llvmwin64
# Ubuntu latest is only needed for the Windows build # Ubuntu latest is only needed for the Windows build
- os: ubuntu-latest - os: ubuntu-latest
@@ -724,7 +723,7 @@ jobs:
steps: steps:
- name: Cache LLVM - name: Cache LLVM
id: cache_llvm id: cache_llvm
uses: actions/cache@v2.1.5 uses: actions/cache@v3
with: with:
path: ~/mono-installs/llvm-${{ matrix.target }} path: ~/mono-installs/llvm-${{ matrix.target }}
key: ${{ runner.os }}-${{ env.MONO_TAG }}-llvm-${{ matrix.target }} key: ${{ runner.os }}-${{ env.MONO_TAG }}-llvm-${{ matrix.target }}
@@ -747,13 +746,13 @@ jobs:
- name: Cache Mono Sources - name: Cache Mono Sources
if: steps.cache_llvm.outputs.cache-hit != 'true' if: steps.cache_llvm.outputs.cache-hit != 'true'
id: cache_mono_sources id: cache_mono_sources
uses: actions/cache@v2.1.5 uses: actions/cache@v3
with: with:
path: ${{ env.MONO_SOURCE_ROOT }} path: ${{ env.MONO_SOURCE_ROOT }}
key: ${{ runner.os }}-${{ env.MONO_TAG }}-mono-sources key: ${{ runner.os }}-${{ env.MONO_TAG }}-mono-sources
- name: Checkout Mono Sources - name: Checkout Mono Sources
if: steps.cache_mono_sources.outputs.cache-hit != 'true' && steps.cache_llvm.outputs.cache-hit != 'true' if: steps.cache_mono_sources.outputs.cache-hit != 'true' && steps.cache_llvm.outputs.cache-hit != 'true'
uses: actions/checkout@v2 uses: actions/checkout@v3
with: with:
repository: mono/mono repository: mono/mono
ref: ${{ env.MONO_TAG }} ref: ${{ env.MONO_TAG }}
@@ -764,12 +763,12 @@ jobs:
run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd
- name: Checkout - name: Checkout
if: steps.cache_llvm.outputs.cache-hit != 'true' if: steps.cache_llvm.outputs.cache-hit != 'true'
uses: actions/checkout@v2 uses: actions/checkout@v3
with: with:
path: godot-mono-builds path: godot-mono-builds
- name: Setup Python - name: Setup Python
if: steps.cache_llvm.outputs.cache-hit != 'true' if: steps.cache_llvm.outputs.cache-hit != 'true'
uses: actions/setup-python@v2.2.2 uses: actions/setup-python@v3
with: with:
python-version: ${{ env.PYTHON_VERSION }} python-version: ${{ env.PYTHON_VERSION }}
- name: Patch Mono - name: Patch Mono
@@ -781,7 +780,7 @@ jobs:
run: run:
python3 godot-mono-builds/llvm.py make --target=${{ matrix.target }} -j 2 python3 godot-mono-builds/llvm.py make --target=${{ matrix.target }} -j 2
- name: Upload LLVM Artifact - name: Upload LLVM Artifact
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: llvm-${{ matrix.target }}-${{ matrix.os }} name: llvm-${{ matrix.target }}-${{ matrix.os }}
path: ~/mono-installs/llvm-${{ matrix.target }} path: ~/mono-installs/llvm-${{ matrix.target }}
@@ -790,14 +789,14 @@ jobs:
run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd
- name: Upload config.log After Error - name: Upload config.log After Error
if: ${{ failure() }} if: ${{ failure() }}
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: llvm-${{ matrix.target }}-${{ matrix.os }}-config.log name: llvm-${{ matrix.target }}-${{ matrix.os }}-config.log
path: ~/mono-configs/llvm-${{ matrix.target }}/config.log path: ~/mono-configs/llvm-${{ matrix.target }}/config.log
bcl: bcl:
name: BCL name: BCL
runs-on: ubuntu-16.04 runs-on: ubuntu-18.04
strategy: strategy:
matrix: matrix:
product: [desktop, desktop-win32, android, ios, wasm] product: [desktop, desktop-win32, android, ios, wasm]
@@ -811,13 +810,13 @@ jobs:
sudo apt-get -y install git autoconf libtool libtool-bin automake build-essential gettext cmake python3 curl sudo apt-get -y install git autoconf libtool libtool-bin automake build-essential gettext cmake python3 curl
- name: Cache Mono Sources - name: Cache Mono Sources
id: cache_mono_sources id: cache_mono_sources
uses: actions/cache@v2.1.5 uses: actions/cache@v3
with: with:
path: ${{ env.MONO_SOURCE_ROOT }} path: ${{ env.MONO_SOURCE_ROOT }}
key: ${{ runner.os }}-${{ env.MONO_TAG }}-mono-sources key: ${{ runner.os }}-${{ env.MONO_TAG }}-mono-sources
- name: Checkout Mono Sources - name: Checkout Mono Sources
if: steps.cache_mono_sources.outputs.cache-hit != 'true' if: steps.cache_mono_sources.outputs.cache-hit != 'true'
uses: actions/checkout@v2 uses: actions/checkout@v3
with: with:
repository: mono/mono repository: mono/mono
ref: ${{ env.MONO_TAG }} ref: ${{ env.MONO_TAG }}
@@ -826,11 +825,11 @@ jobs:
- name: Clean Mono - name: Clean Mono
run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v3
with: with:
path: godot-mono-builds path: godot-mono-builds
- name: Setup Python - name: Setup Python
uses: actions/setup-python@v2.2.2 uses: actions/setup-python@v3
with: with:
python-version: ${{ env.PYTHON_VERSION }} python-version: ${{ env.PYTHON_VERSION }}
- name: Patch Mono - name: Patch Mono
@@ -848,7 +847,7 @@ jobs:
mkdir -p $HOME/mono-installs-artifacts mkdir -p $HOME/mono-installs-artifacts
(cd $HOME/mono-installs && zip -ry $HOME/mono-installs-artifacts/bcl-${{ matrix.product }}.zip ${{ matrix.product }}-bcl) (cd $HOME/mono-installs && zip -ry $HOME/mono-installs-artifacts/bcl-${{ matrix.product }}.zip ${{ matrix.product }}-bcl)
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: bcl-${{ matrix.product }} name: bcl-${{ matrix.product }}
path: ~/mono-installs-artifacts/bcl-${{ matrix.product }}.zip path: ~/mono-installs-artifacts/bcl-${{ matrix.product }}.zip
@@ -856,7 +855,7 @@ jobs:
run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd run: pushd ${{ env.MONO_SOURCE_ROOT }} && git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive && popd
- name: Upload config.log After Error - name: Upload config.log After Error
if: ${{ failure() }} if: ${{ failure() }}
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: bcl-${{ matrix.product }}-config.log name: bcl-${{ matrix.product }}-config.log
path: ~/mono-configs/bcl/config.log path: ~/mono-configs/bcl/config.log
@@ -865,7 +864,7 @@ jobs:
if: success() && github.event_name == 'create' && startsWith(github.ref, 'refs/heads/release/') if: success() && github.event_name == 'create' && startsWith(github.ref, 'refs/heads/release/')
needs: [linux, windows, osx, ios, ios-cross, android, android-cross, wasm, bcl] needs: [linux, windows, osx, ios, ios-cross, android, android-cross, wasm, bcl]
name: Create Release name: Create Release
runs-on: ubuntu-16.04 runs-on: ubuntu-18.04
outputs: outputs:
release_upload_url: ${{ steps.create_release.outputs.upload_url }} release_upload_url: ${{ steps.create_release.outputs.upload_url }}
steps: steps:
@@ -894,7 +893,7 @@ jobs:
if: success() && github.event_name == 'create' && startsWith(github.ref, 'refs/heads/release/') if: success() && github.event_name == 'create' && startsWith(github.ref, 'refs/heads/release/')
needs: create-release needs: create-release
name: Upload Release Artifacts name: Upload Release Artifacts
runs-on: ubuntu-16.04 runs-on: ubuntu-18.04
strategy: strategy:
matrix: matrix:
artifact_name: [linux-x86, linux-x86_64, windows-x86, windows-x86_64, osx-x86_64, artifact_name: [linux-x86, linux-x86_64, windows-x86, windows-x86_64, osx-x86_64,
@@ -906,7 +905,7 @@ jobs:
bcl-desktop, bcl-desktop-win32, bcl-android, bcl-ios, bcl-wasm] bcl-desktop, bcl-desktop-win32, bcl-android, bcl-ios, bcl-wasm]
steps: steps:
- name: Download Artifact - name: Download Artifact
uses: actions/download-artifact@v2 uses: actions/download-artifact@v3
with: with:
name: ${{ matrix.artifact_name }} name: ${{ matrix.artifact_name }}
path: ./ path: ./

1
.gitignore vendored
View File

@@ -1,2 +1,3 @@
__pycache__/ __pycache__/
*.pyc *.pyc
.DS_Store

View File

@@ -9,9 +9,9 @@ This repository contains scripts for building the Mono runtime to use with Godot
The scripts are tested against specific versions of the toolchains used by Godot. The scripts are tested against specific versions of the toolchains used by Godot.
While they may work with other versions, you might have issues applying patches or compiling, so we recommend using the versions below. While they may work with other versions, you might have issues applying patches or compiling, so we recommend using the versions below.
- Mono: 6.12.0.144. - Mono: 6.12.0.178.
- Emscripten: 1.39.9. - Emscripten: 1.39.9.
- Android: API level 29. - Android: API level 30.
## Command-line options ## Command-line options
@@ -36,7 +36,7 @@ export MONO_SOURCE_ROOT=$HOME/git/mono
### Notes ### Notes
- Python 3.7 or higher is required. - Python 3.7 or higher is required.
- OSXCROSS is supported expect for building the Mono cross-compilers. - OSXCROSS is supported except for building the Mono cross-compilers.
- Building on Windows is not supported. It's possible to use Cygwin or WSL (Windows Subsystem for Linux) but this hasn't been tested. - Building on Windows is not supported. It's possible to use Cygwin or WSL (Windows Subsystem for Linux) but this hasn't been tested.
## Compiling Godot for Desktop with this Runtime ## Compiling Godot for Desktop with this Runtime

View File

@@ -104,17 +104,6 @@ def setup_android_target_template(env: dict, opts: AndroidOpts, target: str):
if target in extra_target_envs: if target in extra_target_envs:
env.update(extra_target_envs[target]) env.update(extra_target_envs[target])
android_new_ndk = True
with open(path_join(opts.android_ndk_root, 'source.properties')) as file:
for line in file:
line = line.strip()
if line.startswith('Pkg.Revision ') or line.startswith('Pkg.Revision='):
pkg_revision = line.split('=')[1].strip()
mayor = int(pkg_revision.split('.')[0])
android_new_ndk = mayor >= 18
break
arch = AndroidTargetTable.archs[target] arch = AndroidTargetTable.archs[target]
abi_name = AndroidTargetTable.abi_names[target] abi_name = AndroidTargetTable.abi_names[target]
host_triple = AndroidTargetTable.host_triples[target] host_triple = AndroidTargetTable.host_triples[target]
@@ -176,14 +165,14 @@ def setup_android_target_template(env: dict, opts: AndroidOpts, target: str):
CFLAGS += [ CFLAGS += [
'-fstack-protector', '-fstack-protector',
'-DMONODROID=1' '-DMONODROID=1'
'-D__ANDROID_API__=' + api,
] ]
CFLAGS += ['-D__ANDROID_API__=' + api] if android_new_ndk else []
CXXFLAGS += [ CXXFLAGS += [
'-fstack-protector', '-fstack-protector',
'-DMONODROID=1' '-DMONODROID=1'
'-D__ANDROID_API__=' + api,
] ]
CXXFLAGS += ['-D__ANDROID_API__=' + api] if android_new_ndk else []
CPPFLAGS += ['-I%s/sysroot/usr/include' % toolchain_path] CPPFLAGS += ['-I%s/sysroot/usr/include' % toolchain_path]
CXXCPPFLAGS += ['-I%s/sysroot/usr/include' % toolchain_path] CXXCPPFLAGS += ['-I%s/sysroot/usr/include' % toolchain_path]
@@ -216,7 +205,7 @@ def setup_android_target_template(env: dict, opts: AndroidOpts, target: str):
] ]
CONFIGURE_FLAGS += ['--enable-monodroid'] CONFIGURE_FLAGS += ['--enable-monodroid']
CONFIGURE_FLAGS += ['--with-btls-android-ndk-asm-workaround'] if android_new_ndk else [] CONFIGURE_FLAGS += ['--with-btls-android-ndk-asm-workaround']
CONFIGURE_FLAGS += [ CONFIGURE_FLAGS += [
'--with-btls-android-cmake-toolchain=%s/build/cmake/android.toolchain.cmake' % opts.android_ndk_root, '--with-btls-android-cmake-toolchain=%s/build/cmake/android.toolchain.cmake' % opts.android_ndk_root,
@@ -524,7 +513,7 @@ def main(raw_args):
parser.add_argument('--android-ndk', default=android_ndk_default, help=default_help) parser.add_argument('--android-ndk', default=android_ndk_default, help=default_help)
# Default API version should be in sync with Godot's platform/android/detect.py. # Default API version should be in sync with Godot's platform/android/detect.py.
# Note that `get_api_version_or_min` will upgrade it to 21 for arm64v8 and x86_64. # Note that `get_api_version_or_min` will upgrade it to 21 for arm64v8 and x86_64.
parser.add_argument('--android-api-version', default='18', help=default_help) parser.add_argument('--android-api-version', default='19', help=default_help)
parser.add_argument('--android-cmake-version', default='autodetect', help=default_help) parser.add_argument('--android-cmake-version', default='autodetect', help=default_help)
cmd_utils.add_runtime_arguments(parser, default_help) cmd_utils.add_runtime_arguments(parser, default_help)

38
bcl.py
View File

@@ -40,7 +40,7 @@ def get_profile_install_dirs(opts: BaseOpts, product: str):
profiles = profiles_table[product] profiles = profiles_table[product]
return [path_join(install_dir, get_profile_dir(profile, product)) for profile in profiles] return [path_join(install_dir, get_profile_dir(profile, product)) for profile in profiles]
def configure_bcl(opts: BclOpts): def configure_bcl(opts: BclOpts, product: str):
stamp_file = path_join(opts.configure_dir, '.stamp-bcl-configure') stamp_file = path_join(opts.configure_dir, '.stamp-bcl-configure')
if os.path.isfile(stamp_file): if os.path.isfile(stamp_file):
@@ -54,12 +54,21 @@ def configure_bcl(opts: BclOpts):
CONFIGURE_FLAGS = [ CONFIGURE_FLAGS = [
'--disable-boehm', '--disable-boehm',
'--disable-btls-lib',
'--disable-nls', '--disable-nls',
'--disable-support-build', '--disable-support-build',
'--with-mcs-docs=no' '--with-mcs-docs=no'
] ]
if product == 'desktop-win32':
CONFIGURE_FLAGS += [
'--enable-btls',
'--enable-btls-lib'
]
else:
CONFIGURE_FLAGS += [
'--disable-btls-lib'
]
configure = path_join(opts.mono_source_root, 'configure') configure = path_join(opts.mono_source_root, 'configure')
configure_args = CONFIGURE_FLAGS configure_args = CONFIGURE_FLAGS
@@ -84,8 +93,8 @@ def make_bcl(opts: BclOpts):
touch(stamp_file) touch(stamp_file)
def build_bcl(opts: BclOpts): def build_bcl(opts: BclOpts, product: str):
configure_bcl(opts) configure_bcl(opts, product)
make_bcl(opts) make_bcl(opts)
@@ -97,7 +106,7 @@ def clean_bcl(opts: BclOpts):
def make_product(opts: BclOpts, product: str): def make_product(opts: BclOpts, product: str):
build_bcl(opts) build_bcl(opts, product)
build_dir = path_join(opts.configure_dir, 'bcl') build_dir = path_join(opts.configure_dir, 'bcl')
@@ -178,6 +187,25 @@ def make_product(opts: BclOpts, product: str):
run_command('csc', android_env_csc_args) run_command('csc', android_env_csc_args)
# (custom 'Xamarin.iOS.dll')
if product == 'ios':
this_script_dir = os.path.dirname(os.path.realpath(__file__))
monotouch_profile_dir = '%s/%s' % (install_dir, 'monotouch')
refs = ['mscorlib.dll', 'System.Net.Http.dll']
mkdir_p(monotouch_profile_dir)
android_env_csc_args = [
path_join(this_script_dir, 'files', 'xi.cs'),
'-keyfile:' + path_join(this_script_dir, 'files', 'xi.snk'),
'-out:%s' % path_join(monotouch_profile_dir, 'Xamarin.iOS.dll'),
'-optimize', '-deterministic', '-publicsign', '-target:library',
'-nostdlib', '-noconfig', '-langversion:latest'
]
android_env_csc_args += ['-r:%s' % path_join(monotouch_profile_dir, r) for r in refs]
run_command('csc', android_env_csc_args)
def clean_product(opts: BclOpts, product: str): def clean_product(opts: BclOpts, product: str):
clean_bcl(opts) clean_bcl(opts)

View File

@@ -15,7 +15,7 @@ import runtime
targets = { targets = {
'linux': ['x86', 'x86_64'], 'linux': ['x86', 'x86_64'],
'windows': ['x86', 'x86_64'], 'windows': ['x86', 'x86_64'],
'osx': ['x86_64'] 'osx': ['arm64', 'x86_64']
} }
target_arch = { target_arch = {
@@ -28,14 +28,24 @@ target_arch = {
'x86_64': 'x86_64' 'x86_64': 'x86_64'
}, },
'osx': { 'osx': {
'arm64': 'arm64',
'x86_64': 'x86_64' 'x86_64': 'x86_64'
} }
} }
host_triples = { host_triples = {
'linux': '%s-linux-gnu', 'linux': {
'windows': '%s-w64-mingw32', 'x86': 'i686-linux-gnu',
'osx': '%s-apple-darwin', 'x86_64': 'x86_64-linux-gnu'
},
'windows': {
'x86': 'i686-w64-mingw32',
'x86_64': 'x86_64-w64-mingw32'
},
'osx': {
'arm64': 'aarch64-apple-darwin20',
'x86_64': 'x86_64-apple-darwin'
}
} }
llvm_table = { llvm_table = {
@@ -70,25 +80,26 @@ def get_osxcross_sdk(osxcross_bin, arch):
def setup_desktop_template(env: dict, opts: DesktopOpts, product: str, target_platform: str, target: str): def setup_desktop_template(env: dict, opts: DesktopOpts, product: str, target_platform: str, target: str):
host_triple = host_triples[target_platform] % target_arch[target_platform][target] host_triple = host_triples[target_platform][target]
CONFIGURE_FLAGS = [ CONFIGURE_FLAGS = [
'--disable-boehm', '--disable-boehm',
'--disable-mcs-build', '--disable-mcs-build',
'--enable-maintainer-mode', '--enable-maintainer-mode',
'--with-tls=pthread', '--with-tls=pthread',
'--without-ikvm-native' '--without-ikvm-native',
'--enable-btls',
] ]
if target_platform == 'windows': if target_platform == 'windows':
CONFIGURE_FLAGS += [ CONFIGURE_FLAGS += [
'--with-libgdiplus=%s' % opts.mxe_prefix '--with-libgdiplus=%s' % opts.mxe_prefix,
'--enable-btls-lib',
] ]
else: else:
CONFIGURE_FLAGS += [ CONFIGURE_FLAGS += [
'--disable-iconv', '--disable-iconv',
'--disable-nls', '--disable-nls',
'--enable-dynamic-btls',
'--with-sigaltstack=yes', '--with-sigaltstack=yes',
] ]
@@ -137,7 +148,20 @@ def setup_desktop_template(env: dict, opts: DesktopOpts, product: str, target_pl
# DTrace is not available when building with OSXCROSS # DTrace is not available when building with OSXCROSS
CONFIGURE_FLAGS += ['--enable-dtrace=no'] CONFIGURE_FLAGS += ['--enable-dtrace=no']
else: else:
env['_%s-%s_CC' % (product, target)] = 'cc' osx_toolchain = '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain'
env['_%s-%s_CC' % (product, target)] = '%s/usr/bin/clang' % osx_toolchain
env['_%s-%s_CXX' % (product, target)] = '%s/usr/bin/clang++' % osx_toolchain
osx_sysroot = '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk'
CFLAGS = [
'-isysroot', osx_sysroot,
'-arch', target_arch[target_platform][target]
]
env['_%s-%s_CFLAGS' % (product, target)] = CFLAGS
env['_%s-%s_CXXFLAGS' % (product, target)] = CFLAGS
env['_%s-%s_CONFIGURE_FLAGS' % (product, target)] = CONFIGURE_FLAGS env['_%s-%s_CONFIGURE_FLAGS' % (product, target)] = CONFIGURE_FLAGS
@@ -187,6 +211,14 @@ def configure(opts: DesktopOpts, product: str, target_platform: str, target: str
def make(opts: DesktopOpts, product: str, target_platform: str, target: str): def make(opts: DesktopOpts, product: str, target_platform: str, target: str):
build_dir = path_join(opts.configure_dir, '%s-%s-%s' % (product, target, opts.configuration)) build_dir = path_join(opts.configure_dir, '%s-%s-%s' % (product, target, opts.configuration))
if target_platform == 'windows':
mxe = 'mxe-Win64' if target == 'x86_64' else 'mxe-Win32'
replace_in_new_file(
src_file='%s/sdks/builds/%s.cmake.in' % (opts.mono_source_root, mxe),
search='@MXE_PATH@', replace=opts.mxe_prefix,
dst_file='%s/mono/btls/%s.cmake' % (opts.mono_source_root, mxe)
)
make_args = make_default_args(opts) make_args = make_default_args(opts)
make_args += ['-C', build_dir] make_args += ['-C', build_dir]
@@ -202,7 +234,7 @@ def copy_bcl(opts: DesktopOpts, product: str, target_platform: str, target: str)
from distutils.dir_util import copy_tree from distutils.dir_util import copy_tree
from bcl import get_profile_install_dirs from bcl import get_profile_install_dirs
dest_dir = path_join(opts.install_dir, '%s-%s-%s' % (product, target, opts.configuration), 'lib/mono/4.5') dest_dir = path_join(opts.install_dir, '%s-%s-%s' % (product, target, opts.configuration), 'lib/mono/4.5')
for src_dir in get_profile_install_dirs(opts, 'desktop'): for src_dir in get_profile_install_dirs(opts, 'desktop-win32' if target_platform == 'windows' else 'desktop'):
if not os.path.isdir(src_dir): if not os.path.isdir(src_dir):
raise BuildError('BCL source directory does not exist: %s. The BCL must be built prior to this.' % src_dir) raise BuildError('BCL source directory does not exist: %s. The BCL must be built prior to this.' % src_dir)
copy_tree(src_dir, dest_dir) copy_tree(src_dir, dest_dir)

View File

@@ -0,0 +1,33 @@
diff --git a/configure.ac b/configure.ac
index 088128e5e74..54693aace64 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5918,6 +5918,8 @@ if test "x$enable_btls" = "xyes"; then
if test "x$HAVE_YASM" != "xyes"; then
BTLS_CMAKE_ARGS="-DOPENSSL_NO_ASM=1"
fi
+ mono_btls_dir_abs=`cd $srcdir && pwd`/mono/btls
+ BTLS_CMAKE_ARGS="$BTLS_CMAKE_ARGS -DCYGWIN=TRUE -DCMAKE_TOOLCHAIN_FILE=\"$mono_btls_dir_abs/mxe-Win32.cmake\""
;;
esac
;;
@@ -5929,6 +5931,8 @@ if test "x$enable_btls" = "xyes"; then
if test "x$HAVE_YASM" != "xyes"; then
BTLS_CMAKE_ARGS="-DOPENSSL_NO_ASM=1"
fi
+ mono_btls_dir_abs=`cd $srcdir && pwd`/mono/btls
+ BTLS_CMAKE_ARGS="$BTLS_CMAKE_ARGS -DCYGWIN=TRUE -DCMAKE_TOOLCHAIN_FILE=\"$mono_btls_dir_abs/mxe-Win64.cmake\""
;;
esac
;;
diff --git a/mono/btls/CMakeLists.txt b/mono/btls/CMakeLists.txt
index 992f41e4c7f..9946f5d21a4 100644
--- a/mono/btls/CMakeLists.txt
+++ b/mono/btls/CMakeLists.txt
@@ -129,4 +129,5 @@ endif ()
if (CYGWIN)
target_link_libraries (mono-btls-shared wsock32 ws2_32)
+ target_link_options (mono-btls-shared PRIVATE -static-libgcc)
endif ()
\ No newline at end of file

View File

@@ -0,0 +1,48 @@
diff --git a/mono/metadata/threadpool-io.c b/mono/metadata/threadpool-io.c
index fdfef2de91e28..45ac0d84b2429 100644
--- a/mono/metadata/threadpool-io.c
+++ b/mono/metadata/threadpool-io.c
@@ -180,6 +180,7 @@ selector_thread_wakeup_drain_pipes (void)
{
gchar buffer [128];
gint received;
+ static gint warnings_issued = 0;
for (;;) {
#if !defined(HOST_WIN32)
@@ -192,11 +193,16 @@ selector_thread_wakeup_drain_pipes (void)
* some unices (like AIX) send ERESTART, which doesn't
* exist on some other OSes errno
*/
- if (errno != EINTR && errno != EAGAIN && errno != ERESTART)
+ if (errno != EINTR && errno != EAGAIN && errno != ERESTART) {
#else
- if (errno != EINTR && errno != EAGAIN)
+ if (errno != EINTR && errno != EAGAIN) {
#endif
- g_warning ("selector_thread_wakeup_drain_pipes: read () failed, error (%d) %s\n", errno, g_strerror (errno));
+ // limit amount of spam we write
+ if (warnings_issued < 100) {
+ g_warning ("selector_thread_wakeup_drain_pipes: read () failed, error (%d) %s\n", errno, g_strerror (errno));
+ warnings_issued++;
+ }
+ }
break;
}
#else
@@ -204,8 +210,13 @@ selector_thread_wakeup_drain_pipes (void)
if (received == 0)
break;
if (received == SOCKET_ERROR) {
- if (WSAGetLastError () != WSAEINTR && WSAGetLastError () != WSAEWOULDBLOCK)
- g_warning ("selector_thread_wakeup_drain_pipes: recv () failed, error (%d)\n", WSAGetLastError ());
+ if (WSAGetLastError () != WSAEINTR && WSAGetLastError () != WSAEWOULDBLOCK) {
+ // limit amount of spam we write
+ if (warnings_issued < 100) {
+ g_warning ("selector_thread_wakeup_drain_pipes: recv () failed, error (%d)\n", WSAGetLastError ());
+ warnings_issued++;
+ }
+ }
break;
}
#endif

15
files/xi.cs Normal file
View File

@@ -0,0 +1,15 @@
using System.Net.Http;
[assembly:System.Reflection.AssemblyVersionAttribute ("0.0.0.0")]
[assembly:System.Runtime.CompilerServices.InternalsVisibleTo ("System.Net.Http, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293")]
namespace ObjCRuntime
{
internal class RuntimeOptions
{
internal static HttpMessageHandler GetHttpMessageHandler()
{
return new HttpClientHandler();
}
}
}

BIN
files/xi.snk Normal file

Binary file not shown.

21
ios.py
View File

@@ -14,7 +14,7 @@ import runtime
this_script_dir = os.path.dirname(os.path.realpath(__file__)) this_script_dir = os.path.dirname(os.path.realpath(__file__))
device_targets = ['armv7', 'arm64'] device_targets = ['armv7', 'arm64']
sim_targets = ['i386', 'x86_64'] sim_targets = ['i386', 'x86_64', 'arm64-sim']
cross_targets = ['cross-armv7', 'cross-arm64'] cross_targets = ['cross-armv7', 'cross-arm64']
@@ -26,6 +26,7 @@ class iOSTargetTable:
archs = { archs = {
'armv7': 'arm', 'armv7': 'arm',
'arm64': 'arm64', 'arm64': 'arm64',
'arm64-sim': 'arm64',
'i386': 'i386', 'i386': 'i386',
'x86_64': 'x86_64' 'x86_64': 'x86_64'
} }
@@ -33,6 +34,7 @@ class iOSTargetTable:
host_triples = { host_triples = {
'armv7': 'arm-apple-darwin11', 'armv7': 'arm-apple-darwin11',
'arm64': 'aarch64-apple-darwin11', 'arm64': 'aarch64-apple-darwin11',
'arm64-sim': 'aarch64-apple-darwin11',
'i386': 'i386-apple-darwin11', 'i386': 'i386-apple-darwin11',
'x86_64': 'x86_64-apple-darwin11' 'x86_64': 'x86_64-apple-darwin11'
} }
@@ -40,6 +42,7 @@ class iOSTargetTable:
osxcross_tool_triples = { osxcross_tool_triples = {
'armv7': 'arm-apple-darwin11', # TODO: ? 'armv7': 'arm-apple-darwin11', # TODO: ?
'arm64': 'arm-apple-darwin11', 'arm64': 'arm-apple-darwin11',
'arm64-sim': 'arm-apple-darwin11',
'i386': 'i386-apple-darwin11', # TODO: ? 'i386': 'i386-apple-darwin11', # TODO: ?
'x86_64': 'x86_64-apple-darwin11' 'x86_64': 'x86_64-apple-darwin11'
} }
@@ -185,7 +188,7 @@ def setup_ios_simulator_template(env: dict, opts: iOSOpts, target: str):
if not ios_sysroot_path: if not ios_sysroot_path:
raise RuntimeError('Cannot find iOS SDK; specify one manually with \'--ios-sdk\'.') raise RuntimeError('Cannot find iOS SDK; specify one manually with \'--ios-sdk\'.')
sysroot_flags = ['-isysroot', ios_sysroot_path, '-miphoneos-version-min=%s' % opts.ios_version_min] sysroot_flags = ['-isysroot', ios_sysroot_path, '-mios-simulator-version-min=%s' % opts.ios_version_min]
arch = iOSTargetTable.archs[target] arch = iOSTargetTable.archs[target]
host_triple = iOSTargetTable.host_triples[target] host_triple = iOSTargetTable.host_triples[target]
@@ -306,8 +309,11 @@ class iOSCrossTable:
} }
def setup_ios_cross_template(env: dict, opts: iOSOpts, target: str, host_arch: str): def llvm_for(host_arch: str) -> str:
return 'llvmarm64' if host_arch == 'arm64' else 'llvm64'
def setup_ios_cross_template(env: dict, opts: iOSOpts, target: str, host_arch: str):
target_triple = iOSCrossTable.target_triples[target] target_triple = iOSCrossTable.target_triples[target]
device_target = iOSCrossTable.device_targets[target] device_target = iOSCrossTable.device_targets[target]
offsets_dumper_abi = iOSCrossTable.offsets_dumper_abis[target] offsets_dumper_abi = iOSCrossTable.offsets_dumper_abis[target]
@@ -411,7 +417,7 @@ def setup_ios_cross_template(env: dict, opts: iOSOpts, target: str, host_arch: s
env['_ios-%s_CONFIGURE_FLAGS' % target] = CONFIGURE_FLAGS env['_ios-%s_CONFIGURE_FLAGS' % target] = CONFIGURE_FLAGS
# Runtime cross template # Runtime cross template
runtime.setup_runtime_cross_template(env, opts, 'ios', target, host_triple, target_triple, device_target, 'llvm64', offsets_dumper_abi) runtime.setup_runtime_cross_template(env, opts, 'ios', target, host_triple, target_triple, device_target, llvm_for(host_arch), offsets_dumper_abi)
def strip_libs(opts: iOSOpts, product: str, target: str): def strip_libs(opts: iOSOpts, product: str, target: str):
@@ -427,8 +433,11 @@ def configure(opts: iOSOpts, product: str, target: str):
if is_cross(target): if is_cross(target):
import llvm import llvm
llvm.make(opts, 'llvm64') host_arch='x86_64'
setup_ios_cross_template(env, opts, target, host_arch='x86_64')
llvm.make(opts, llvm_for(host_arch))
setup_ios_cross_template(env, opts, target, host_arch)
else: else:
if is_sim: if is_sim:
setup_ios_simulator_template(env, opts, target) setup_ios_simulator_template(env, opts, target)

View File

@@ -11,7 +11,7 @@ from os_utils import *
# TODO: OSXCROSS # TODO: OSXCROSS
target_values = ['llvm32', 'llvm64', 'llvmwin32', 'llvmwin64'] target_values = ['llvm32', 'llvm64', 'llvmarm64', 'llvmwin32', 'llvmwin64']
mxe_targets = { mxe_targets = {
'llvmwin32': {'arch': 'i686', 'mxe': 'mxe-Win32'}, 'llvmwin32': {'arch': 'i686', 'mxe': 'mxe-Win32'},
'llvmwin64': {'arch': 'x86_64', 'mxe': 'mxe-Win64'} 'llvmwin64': {'arch': 'x86_64', 'mxe': 'mxe-Win64'}

View File

@@ -27,10 +27,12 @@ def main(raw_args):
patches = [ patches = [
'fix-mono-android-tkill.diff', 'fix-mono-android-tkill.diff',
'fix-mono-log-spam.diff',
'mono-dbg-agent-clear-tls-instead-of-abort.diff', 'mono-dbg-agent-clear-tls-instead-of-abort.diff',
'bcl-profile-platform-override.diff', 'bcl-profile-platform-override.diff',
'mono_ios_asl_log_deprecated.diff', 'mono_ios_asl_log_deprecated.diff',
'wasm_m2n_trampolines_hook.diff', 'wasm_m2n_trampolines_hook.diff',
'btls-cmake-args-linux-mingw.diff'
] ]
if os.path.isfile(os.path.join(mono_source_root, 'mono/tools/offsets-tool/offsets-tool.py')): if os.path.isfile(os.path.join(mono_source_root, 'mono/tools/offsets-tool/offsets-tool.py')):