Add Android build configurations for Mono/Libraries (#33881)
authorAlexander Köplinger <alex.koeplinger@outlook.com>
Tue, 24 Mar 2020 22:39:42 +0000 (23:39 +0100)
committerGitHub <noreply@github.com>
Tue, 24 Mar 2020 22:39:42 +0000 (23:39 +0100)
commit05954773b6ac44d171dded50e79686619fa71522
tree35454843e891f5cc26df9b42d71eab5bcaeb9b1d
parent5c8cad2b40fbe311da121060790461771091c844
Add Android build configurations for Mono/Libraries (#33881)

* Add Android build configurations

* Enable System.Globalization.Native on Android

Dynamically load the libicu from the system. Android NDK doesn't ship with icu headers so for now define prototypes for all the functions we use ourselves.

* Add temporary stub HashProvider that throws NIE on Android

We still need to hook up the native System.Security.Native library.

Unblocks Xamarin.Forms startup.
30 files changed:
eng/Subsets.props
eng/build.sh
eng/codeOptimization.targets
eng/native/configureplatform.cmake
eng/native/configuretools.cmake
eng/native/init-distro-rid.sh
src/libraries/Directory.Build.props
src/libraries/Native/Unix/CMakeLists.txt
src/libraries/Native/Unix/Common/pal_config.h.in
src/libraries/Native/Unix/System.Globalization.Native/CMakeLists.txt
src/libraries/Native/Unix/System.Globalization.Native/configure.cmake
src/libraries/Native/Unix/System.Globalization.Native/pal_icushim.c
src/libraries/Native/Unix/System.Globalization.Native/pal_icushim_internal.h
src/libraries/Native/Unix/System.Globalization.Native/pal_icushim_internal_android.h [new file with mode: 0644]
src/libraries/Native/Unix/System.IO.Compression.Native/CMakeLists.txt
src/libraries/Native/Unix/System.Native/pal_console.c
src/libraries/Native/Unix/System.Native/pal_interfaceaddresses.c
src/libraries/Native/Unix/System.Native/pal_networking.c
src/libraries/Native/Unix/System.Native/pal_process.c
src/libraries/Native/Unix/configure.cmake
src/libraries/Native/build-native.sh
src/libraries/OSGroups.json
src/libraries/System.Security.Cryptography.Algorithms/src/Internal/Cryptography/HashProviderDispenser.Android.cs [new file with mode: 0644]
src/libraries/System.Security.Cryptography.Algorithms/src/System.Security.Cryptography.Algorithms.csproj
src/libraries/restore/runtime/runtime.depproj
src/mono/Directory.Build.props
src/mono/mono.proj
src/mono/netcore/nuget/Directory.Build.props
src/mono/netcore/nuget/Microsoft.NETCore.Runtime.Mono/runtime.Android.Microsoft.NETCore.Runtime.Mono.props [new file with mode: 0644]
src/mono/netcore/nuget/Microsoft.NETCore.Tool.MonoAOT/runtime.Android.Microsoft.NETCore.Tool.MonoAOT.props [new file with mode: 0644]