diff --git a/Configuration.Override.props.in b/Configuration.Override.props.in
index d3a75d2e12b..ba4be4b9b5f 100644
--- a/Configuration.Override.props.in
+++ b/Configuration.Override.props.in
@@ -7,7 +7,7 @@
v6.0
- armeabi:armeabi-v7a:arm64-v8a:x86:x86_64
+ armeabi:armeabi-v7a:arm64-v8a:x86:x86_64
+
+
+ Darwin:mxe-Win64
clang
diff --git a/Configuration.props b/Configuration.props
index b2f41653912..31f583a0348 100644
--- a/Configuration.props
+++ b/Configuration.props
@@ -23,7 +23,8 @@
$(AndroidToolchainDirectory)\mxe
$(AndroidToolchainDirectory)\sdk
$(AndroidToolchainDirectory)\ndk
- host-$(HostOS):armeabi-v7a
+ $(HostOS)
+ armeabi-v7a
$(MSBuildThisFileDirectory)external\Java.Interop
$(MSBuildThisFileDirectory)external\mono
$(MSBuildThisFileDirectory)external\sqlite
@@ -38,19 +39,30 @@
$([System.IO.Path]::GetFullPath ('$(MonoSourceDirectory)'))
$([System.IO.Path]::GetFullPath ('$(SqliteSourceDirectory)'))
+
+
+ $(AndroidSupportedHostJitAbis)
+ $(AndroidSupportedHostJitAbisForConditionalChecks):
+ :$(AndroidSupportedHostJitAbisForConditionalChecks)
+ $(AndroidSupportedHostJitAbis.Split(':'))
+
-
-
-
+
- $([System.String]::Copy('$(AndroidSupportedAbis)').Replace (':', ';').Replace ('host-$(HostOS)', '').Replace (';;', ';')
- $(AndroidSupportedAbis)
- $(AndroidSupportedAbisForConditionalChecks):
- :$(AndroidSupportedAbisForConditionalChecks)
+ $(AndroidSupportedTargetJitAbis)
+ $(AndroidSupportedTargetJitAbisForConditionalChecks):
+ :$(AndroidSupportedTargetJitAbisForConditionalChecks)
+ $(AndroidSupportedTargetJitAbis.Split(':'))
+
+
+
diff --git a/README.md b/README.md
index a6dcc758aa3..749ac4865a3 100644
--- a/README.md
+++ b/README.md
@@ -32,30 +32,30 @@ Overridable MSBuild properties include:
* `$(AndroidFrameworkVersion)`: The Xamarin.Android `$(TargetFrameworkVersion)`
version which corresponds to `$(AndroidApiLevel)`. This is *usually* the
Android version number with a leading `v`, e.g. `v4.0.3` for API-15.
-* `$(AndroidSupportedAbis)`: The Android ABIs to build for inclusion within
- apps. This is a `:`-separated list of ABIs to build. Supported values are:
-
- * `armeabi`
- * `armeabi-v7a`
- * `arm64-v8a`
- * `x86`
- * `x86_64`
-
- Addtionally there are a set of "host" values. The "host ABI" is used
- to build mono for the *currently executing operating system*, in
- particular to build the base class libraries such as `mscorlib.dll`.
+* `$(AndroidSupportedHostJitAbis)`: The Android ABIs for which to build a
+ host JIT *and* Xamarin.Android base class libraries (`mscorlib.dll`/etc.).
+ The "host JIT" is used e.g. with the Xamarin Studio Designer, to render
+ Xamarin.Android apps on the developer's machine.
There can also be support for cross-compiling mono for a different
host, e.g. to build Windows `libmonosgen-2.0.dll` from OS X.
Supported host values include:
- * `host-Darwin`
- * `host-Linux`
- * `host-win64`: Cross-compile Windows 64-bit binaries from Unix.
+ * `Darwin`
+ * `Linux`
+ * `mxe-Win64`: Cross-compile Windows 64-bit binaries from Unix.
- The default value is `host-$(HostOS):armeabi-v7a`, where `$(HostOS)`
- is based on probing various environment variables and filesystem locations.
- On OS X, the default would be `host-Darwin:armeabi-v7a`.
+ The default value is `$(HostOS)`, where `$(HostOS)` is based on probing
+ various environment variables and filesystem locations.
+ On OS X, the default would be `Darwin`.
+* `$(AndroidSupportedTargetJitAbis)`: The Android ABIs for which to build the
+ the Mono JIT for inclusion within apps. This is a `:`-separated list of
+ ABIs to build. Supported values are:
+ * `armeabi`
+ * `armeabi-v7a`
+ * `arm64-v8a`
+ * `x86`
+ * `x86_64`
* `$(AndroidToolchainCacheDirectory)`: The directory to cache the downloaded
Android NDK and SDK files. This value defaults to
`$(HOME)\android-archives`.
diff --git a/Xamarin.Android.sln b/Xamarin.Android.sln
index de4d20d7a6f..6b3c16e7815 100644
--- a/Xamarin.Android.sln
+++ b/Xamarin.Android.sln
@@ -81,8 +81,6 @@ Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|AnyCPU = Debug|AnyCPU
Release|AnyCPU = Release|AnyCPU
- XAIntegrationDebug|Any CPU = XAIntegrationDebug|Any CPU
- XAIntegrationRelease|Any CPU = XAIntegrationRelease|Any CPU
XAIntegrationDebug|AnyCPU = XAIntegrationDebug|AnyCPU
XAIntegrationRelease|AnyCPU = XAIntegrationRelease|AnyCPU
EndGlobalSection
diff --git a/build-tools/android-toolchain/android-toolchain.projitems b/build-tools/android-toolchain/android-toolchain.projitems
index f84c761efef..633aee3efb1 100644
--- a/build-tools/android-toolchain/android-toolchain.projitems
+++ b/build-tools/android-toolchain/android-toolchain.projitems
@@ -44,19 +44,19 @@
- <_NdkToolchain Include="arm-linux-androideabi-clang" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains(':armeabi:')) Or $(AndroidSupportedAbisForConditionalChecks.Contains(':armeabi-v7a:'))">
+ <_NdkToolchain Include="arm-linux-androideabi-clang" Condition="$(AndroidSupportedTargetJitAbisForConditionalChecks.Contains(':armeabi:')) Or $(AndroidSupportedTargetJitAbisForConditionalChecks.Contains(':armeabi-v7a:'))">
android-4
arm
- <_NdkToolchain Include="aarch64-linux-android-clang" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains(':arm64-v8a:'))">
+ <_NdkToolchain Include="aarch64-linux-android-clang" Condition="$(AndroidSupportedTargetJitAbisForConditionalChecks.Contains(':arm64-v8a:'))">
android-21
arm64
- <_NdkToolchain Include="x86-clang" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains(':x86:'))">
+ <_NdkToolchain Include="x86-clang" Condition="$(AndroidSupportedTargetJitAbisForConditionalChecks.Contains(':x86:'))">
android-9
x86
- <_NdkToolchain Include="x86_64-clang" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains(':x86_64:'))">
+ <_NdkToolchain Include="x86_64-clang" Condition="$(AndroidSupportedTargetJitAbisForConditionalChecks.Contains(':x86_64:'))">
android-21
x86_64
@@ -65,37 +65,37 @@
<_RequiredProgram Include="$(ManagedRuntime)" Condition=" '$(ManagedRuntime)' != '' " />
<_RequiredProgram Include="$(HostCc)" />
<_RequiredProgram Include="$(HostCxx)" />
- <_RequiredProgram Include="7za" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))">
+ <_RequiredProgram Include="7za" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))">
p7zip
<_RequiredProgram Include="autoconf" />
<_RequiredProgram Include="automake" />
- <_RequiredProgram Include="cmake" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))" />
- <_RequiredProgram Include="gdk-pixbuf-csource" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))">
+ <_RequiredProgram Include="cmake" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))" />
+ <_RequiredProgram Include="gdk-pixbuf-csource" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))">
gdk-pixbuf
- <_RequiredProgram Include="gettext" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))" />
- <_RequiredProgram Include="glibtool" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))">
+ <_RequiredProgram Include="gettext" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))" />
+ <_RequiredProgram Include="glibtool" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))">
libtool
- <_RequiredProgram Include="gsed" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))">
+ <_RequiredProgram Include="gsed" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))">
gnu-sed
- <_RequiredProgram Include="intltoolize" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))">
+ <_RequiredProgram Include="intltoolize" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))">
intltool
<_RequiredProgram Include="make" />
- <_RequiredProgram Include="pkg-config" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))">
+ <_RequiredProgram Include="pkg-config" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))">
pkg-config
- <_RequiredProgram Include="ruby" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))" />
- <_RequiredProgram Include="scons" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))">
+ <_RequiredProgram Include="ruby" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))" />
+ <_RequiredProgram Include="scons" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))">
scons
- <_RequiredProgram Include="wget" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))">
+ <_RequiredProgram Include="wget" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))">
wget
- <_RequiredProgram Include="xz" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))">
+ <_RequiredProgram Include="xz" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))">
xz
diff --git a/build-tools/android-toolchain/android-toolchain.targets b/build-tools/android-toolchain/android-toolchain.targets
index 5a94714c616..6fe6cfb2ac8 100644
--- a/build-tools/android-toolchain/android-toolchain.targets
+++ b/build-tools/android-toolchain/android-toolchain.targets
@@ -112,7 +112,7 @@
/>
+ Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:')) Or $(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win32:'))">
- <_MonoRuntime Include="armeabi" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':armeabi:'))">
+ <_MonoRuntime Include="armeabi" Condition="$(AndroidSupportedTargetJitAbis.Contains (':armeabi:'))">
$(_ArmAr)
$(_ArmAs)
$(_ArmCc)
@@ -21,7 +21,7 @@
libmono-profiler-log
libMonoPosixHelper
- <_MonoRuntime Include="armeabi-v7a" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':armeabi-v7a:'))">
+ <_MonoRuntime Include="armeabi-v7a" Condition="$(AndroidSupportedTargetJitAbis.Contains (':armeabi-v7a:'))">
$(_ArmAr)
$(_ArmAs)
$(_ArmCc)
@@ -41,7 +41,7 @@
libmono-profiler-log
libMonoPosixHelper
- <_MonoRuntime Include="arm64-v8a" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':arm64-v8a:'))">
+ <_MonoRuntime Include="arm64-v8a" Condition="$(AndroidSupportedTargetJitAbis.Contains (':arm64-v8a:'))">
$(_Arm64Ar)
$(_Arm64As)
$(_Arm64Cc)
@@ -61,7 +61,7 @@
libmono-profiler-log
libMonoPosixHelper
- <_MonoRuntime Include="x86" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':x86:'))">
+ <_MonoRuntime Include="x86" Condition="$(AndroidSupportedTargetJitAbis.Contains (':x86:'))">
$(_X86Ar)
$(_X86As)
$(_X86Cc)
@@ -81,7 +81,7 @@
libmono-profiler-log
libMonoPosixHelper
- <_MonoRuntime Include="x86_64" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':x86_64:'))">
+ <_MonoRuntime Include="x86_64" Condition="$(AndroidSupportedTargetJitAbis.Contains (':x86_64:'))">
$(_X86_64Ar)
$(_X86_64As)
$(_X86_64Cc)
@@ -101,7 +101,7 @@
libmono-profiler-log
libMonoPosixHelper
- <_MonoRuntime Include="host-Win64" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))">
+ <_MonoRuntime Include="host-mxe-Win64" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))">
$(AndroidMxeFullPath)\bin\x86_64-w64-mingw32.static-ar
$(AndroidMxeFullPath)\bin\x86_64-w64-mingw32.static-as
$(AndroidMxeFullPath)\bin\x86_64-w64-mingw32.static-gcc
@@ -122,7 +122,7 @@
libMonoPosixHelper
- <_MonoRuntime Include="host-Darwin" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-Darwin:'))">
+ <_MonoRuntime Include="host-Darwin" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':Darwin:'))">
ar
as
$(HostCc)
@@ -140,7 +140,7 @@
libmono-profiler-log
libMonoPosixHelper
- <_MonoRuntime Include="host-Linux" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-Linux:'))">
+ <_MonoRuntime Include="host-Linux" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':Linux:'))">
ar
as
$(HostCc)
diff --git a/src/Mono.Android.Export/Mono.Android.Export.csproj b/src/Mono.Android.Export/Mono.Android.Export.csproj
index c02368d4c27..3d34a232afd 100644
--- a/src/Mono.Android.Export/Mono.Android.Export.csproj
+++ b/src/Mono.Android.Export/Mono.Android.Export.csproj
@@ -36,15 +36,15 @@
$(OutputPath)..\v1.0\mscorlib.dll
False
-
+
$(OutputPath)..\v1.0\System.dll
False
-
+
$(OutputPath)..\v1.0\System.Core.dll
False
-
+
$(OutputPath)..\v1.0\System.Xml.dll
False
diff --git a/src/Mono.Android/Mono.Android.csproj b/src/Mono.Android/Mono.Android.csproj
index 83f12fcefad..88013184d6c 100644
--- a/src/Mono.Android/Mono.Android.csproj
+++ b/src/Mono.Android/Mono.Android.csproj
@@ -39,23 +39,23 @@
$(OutputPath)..\v1.0\mscorlib.dll
False
-
+
$(OutputPath)..\v1.0\System.dll
False
-
+
$(OutputPath)..\v1.0\System.Core.dll
False
-
+
$(OutputPath)..\v1.0\System.Net.Http.dll
False
-
+
$(OutputPath)..\v1.0\System.Runtime.Serialization.dll
False
-
+
$(OutputPath)..\v1.0\System.Xml.dll
False
diff --git a/src/Mono.Data.Sqlite/Mono.Data.Sqlite.csproj b/src/Mono.Data.Sqlite/Mono.Data.Sqlite.csproj
index 24cbf3d0545..23b522f0583 100644
--- a/src/Mono.Data.Sqlite/Mono.Data.Sqlite.csproj
+++ b/src/Mono.Data.Sqlite/Mono.Data.Sqlite.csproj
@@ -179,8 +179,7 @@
- <_SupportedAbi Include="$(AndroidSupportedDeviceAbis)" />
-
+
diff --git a/src/Mono.Posix/Mono.Posix.csproj b/src/Mono.Posix/Mono.Posix.csproj
index 57fcd4e4c25..3039972d661 100644
--- a/src/Mono.Posix/Mono.Posix.csproj
+++ b/src/Mono.Posix/Mono.Posix.csproj
@@ -255,19 +255,19 @@
$(OutputPath)\..\..\..\xbuild\Xamarin\Android\lib
-
+
MonoPosixHelper\arm64-v8a\libMonoPosixHelper.so
-
+
MonoPosixHelper\armeabi\libMonoPosixHelper.so
-
+
MonoPosixHelper\armeabi-v7a\libMonoPosixHelper.so
-
+
MonoPosixHelper\x86\libMonoPosixHelper.so
-
+
MonoPosixHelper\x86_64\libMonoPosixHelper.so
diff --git a/src/monodroid/monodroid.projitems b/src/monodroid/monodroid.projitems
index 9c7e0040e0c..7378aba4c2b 100644
--- a/src/monodroid/monodroid.projitems
+++ b/src/monodroid/monodroid.projitems
@@ -1,11 +1,5 @@
-
- <_SupportedAbis>$(AndroidSupportedAbis.Replace(':', ';'))
-
-
- <_MonoRuntime Include="$(_SupportedAbis)" Exclude="@(HostOSName)" />
-
<_RequiredProgram Include="xxd" />
diff --git a/src/monodroid/monodroid.targets b/src/monodroid/monodroid.targets
index 5e3a057f0ae..6cdb61447e2 100644
--- a/src/monodroid/monodroid.targets
+++ b/src/monodroid/monodroid.targets
@@ -1,5 +1,6 @@
+
@@ -10,10 +11,10 @@
+ Outputs="@(AndroidSupportedTargetJitAbi->'$(OutputPath)\%(Identity)\libmono-android.$(_Conf).so')">
- <_AppAbi>@(_MonoRuntime->'%(Identity)', ' ')
+ <_AppAbi>@(AndroidSupportedTargetJitAbi->'%(Identity)', ' ')
-
-
+
+
diff --git a/src/sqlite-xamarin/sqlite-xamarin.targets b/src/sqlite-xamarin/sqlite-xamarin.targets
index 5c9be77e591..f2861089f30 100644
--- a/src/sqlite-xamarin/sqlite-xamarin.targets
+++ b/src/sqlite-xamarin/sqlite-xamarin.targets
@@ -16,7 +16,6 @@
- <_SupportedAbi Include="$(AndroidSupportedDeviceAbis)" />
- <_LibSqliteXamarin Include="@(_SupportedAbi->'src\main\libs\%(Identity)\libsqlite3_xamarin.so')" />
+ <_LibSqliteXamarin Include="@(AndroidSupportedTargetJitAbi->'src\main\libs\%(Identity)\libsqlite3_xamarin.so')" />
- <_AppAbi>$([System.String]::Copy('$(AndroidSupportedDeviceAbis)').Replace (';', ' '))
+ <_AppAbi>$(AndroidSupportedTargetJitAbis.Replace (':', ' '))