Skip to content

Commit

Permalink
iOS BCL: Build dummy Xamarin.iOS.dll which is necessary
Browse files Browse the repository at this point in the history
  • Loading branch information
neikeq committed May 22, 2021
1 parent aa9e050 commit 61df21a
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 0 deletions.
19 changes: 19 additions & 0 deletions bcl.py
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,25 @@ def make_product(opts: BclOpts, product: str):

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):
clean_bcl(opts)
Expand Down
15 changes: 15 additions & 0 deletions files/xi.cs
Original file line number Diff line number Diff line change
@@ -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();
}
}
}
Binary file added files/xi.snk
Binary file not shown.

0 comments on commit 61df21a

Please sign in to comment.