Skip to content

Commit a828e2e

Browse files
committed
[build] Allow building with msbuild.
Fix the solution and project files so that `msbuild` may be used to build the solution instead of requiring `xbuild`. There were a few issues that `msbuild` didn't like: 1. MSBuild doesn't like the "extra" configuration mappings in Xamarin.Android.sln. 2. MSBuild doesn't like the presence of `.dll` within `@(Reference)` entries. `<Reference Include="System.dll" />` is Bad™, so Don't Do That™.™. 3. Turning `$(AndroidSupportedAbis)` into an item group is...broken. (1) and (2) are straightforward fixes. (3) requires some explanation. `src/monodroid` needs to *only* build `libmonodroid.so` for the non-"host" ABIs within `$(AndroidSupportedAbis)`. It needs this restriction because non-selected ABIs may not be configured in `$(AndroidNdkDirectory)`, and thus can't be built. This *could* be done by following `build-tools/mono-runtimes/mono-runtimes.projitems` and doing lots of `Condition`s on `$(AndroidSupportedAbisForConditionalChecks)`: <_MonoRuntime Include="armeabi-v7a" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains(':armeabi-v7a:'))" /> ... However, that's kinda ugly when *all* we need is the ABI name, so `monodroid.projitems` was "cute": <PropertyGroup> <_SupportedAbis>$(AndroidSupportedAbis.Replace(':', ';'))</_SupportedAbis> </PropertyGroup> <ItemGroup> <_MonoRuntime Include="$(_SupportedAbis)" Exclude="@(HostOSName)" /> </ItemGroup> <!-- @(_MonoRuntime) is `armeabi-v7a` by default --> This works...on xbuild, but *not* `msbuild`. Doh! (`msbuild` is "smart" and doesn't treat the `;` as an item separator, so if `$(AndroidSupportedAbis)` is `host-Darwin;armeabi-v7a` then MSBuild treats the `;` as part of the filename -- NOT a filename separator -- and `@(_MonoRuntime)` contains *one* item with an `%(Identity)` of `host-Darwin;armeabi-v7a`. On the one hand, this is kinda awesome and answers the question "how can you have a filename that contains `;`?", but on the other hand it broke my project!) The only fix I could think of was to use `.Split(':')`: <_MonoRuntime Include="$(AndroidSupportedAbis.Split(':'))" Exclude="@(HostOSName)" /> That provides desired behavior with `msbuild`, but `xbuild` doesn't support it and appears to either *ignore* it, or treat it literally, in that `@(_MonoRuntime)` would contain a *single* item with the literal value `$(AndroidSupportedAbis.Split(':'))` (argh!). Fortunately, there's a "cute" workaround: using `.Split()` within an item's `Include` attribute doesn't work, but using `.Split()` within a property group declaration *does* work: <PropertyGroup> <_SupportedAbis>$(AndroidSupportedAbis.Split(':'))</_SupportedAbis> </PropertyGroup> <ItemGroup> <_MonoRuntime Include="$(_SupportedAbis)" Exclude="@(HostOSName)" /> </ItemGroup> <!-- @(_MonoRuntime) is `armeabi-v7a` by default --> This implies that a property value isn't limited to string values, but (as here) can be string *arrays*, which is interesting. ~~~ All that aside, while exploring the proper fix for (3) (it took a remarkably long time to run across it), I decided to reconsider the property and item arrangement here. The prior approach was to have a single `$(AndroidSupportedAbis)` MSBuild property which controlled *both* Android target ABIs and host ABIs. This worked...but wasn't entirely scalable (separate moving parts need to be kept in sync). Additionally, we need to add AOT cross-compiler support, which logically would be controlled by the same/similar mechanism, so a value of "build everything" would start to look insane: msbuild /p:AndroidSupportedAbis=armeabi:armeabi-v7a:arm64-v8a:x86:x86_64:host-Darwin:host-Win64:cross-Darwin-arm:cross-Darwin-arm64:cross-Darwin-x86:cross-Darwin-x86_64:cross-Win64-arm:cross-Win64-arm64:cross-Win64-x86:cross-Win64-x86_64 And that's assuming I'm not missing anything, or that we don't add MIPS support in the future, or... Blech. Furthermore, Xamarin.Android *already* uses [`$(AndroidSupportedAbis)` in its build system][0], which means a top-level override of `$(AndroidSupportedAbis)` would also impact all projects which build `.apk` files, e.g. `src/Mono.Android/Test/Mono.Android-Tests.csproj`, which might not be desirable. In short, I think we're overloading "Android supported ABIs," and it should be split up into smaller, easier to rationalize, chunks. Thus, leave `$(AndroidSupportedAbis)` to Xamarin.Android's tasks, and replace it with *two* new properties: * `$(AndroidSupportedHostJitAbis)`: The "host" ABIs to build. * `$(AndroidSupportedTargetJitAbis)`: The "target" ABIs to build. AOT support, when added, would use a new `$(AndroidSupportedHostAotAbis)` property, thus keeping the set of acceptable values small and more easily rationalizable. Finally, "split up" these new Abis properties into corresponding Abi item groups, to allow consistent and reusable "mapping" of ABI names to filesystem locations, etc. The new `@(AndroidSupportedHostAotAbi)` and `@(AndroidSupportedTargetJitAbi)` item groups are derived from their corresponding values. (Note singular from plural in naming.) [0]: https://developer.xamarin.com/guides/android/under_the_hood/build_process/#AndroidSupportedAbis
1 parent e094ce8 commit a828e2e

File tree

15 files changed

+105
-91
lines changed

15 files changed

+105
-91
lines changed

Configuration.Override.props.in

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<AndroidFrameworkVersion>v6.0</AndroidFrameworkVersion>
88

99
<!--
10-
Colon-separated list of ABIs to build mono for.
10+
Colon-separated list of ABIs to build the mono JIT for.
1111
Supported ABIs include:
1212
- armeabi
1313
- armeabi-v7a
@@ -16,7 +16,18 @@
1616
- x86_64
1717
Note: Why colon? Because comma `,` and semicolon `;` can't be specified on the command-line.
1818
-->
19-
<AndroidSupportedAbis>armeabi:armeabi-v7a:arm64-v8a:x86:x86_64</AndroidSupportedAbis>
19+
<AndroidSupportedTargetJitAbis>armeabi:armeabi-v7a:arm64-v8a:x86:x86_64</AndroidSupportedTargetJitAbis>
20+
21+
<!--
22+
Colon-separated list of ABIs to build a "host" mono JIT for.
23+
The host JIT is used for the Xamarin Studio Designer, among other things.
24+
Supported ABIs include:
25+
- Darwin
26+
- Linux
27+
- mxe-Win64
28+
Note: Why colon? Because comma `,` and semicolon `;` can't be specified on the command-line.
29+
-->
30+
<AndroidSupportedHostJitAbis>Darwin:mxe-Win64</AndroidSupportedHostJitAbis>
2031

2132
<!-- C and C++ compilers to emit host-native binaries -->
2233
<HostCc>clang</HostCc>

Configuration.props

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@
1919
<AndroidMxeInstallPrefix Condition=" '$(AndroidMxeInstallPrefix)' == '' ">$(AndroidToolchainDirectory)\mxe</AndroidMxeInstallPrefix>
2020
<AndroidSdkDirectory>$(AndroidToolchainDirectory)\sdk</AndroidSdkDirectory>
2121
<AndroidNdkDirectory>$(AndroidToolchainDirectory)\ndk</AndroidNdkDirectory>
22-
<AndroidSupportedAbis Condition=" '$(AndroidSupportedAbis)' == '' ">host-$(HostOS):armeabi-v7a</AndroidSupportedAbis>
22+
<AndroidSupportedHostJitAbis Condition=" '$(AndroidSupportedHostJitAbis)' == '' ">$(HostOS)</AndroidSupportedHostJitAbis>
23+
<AndroidSupportedTargetJitAbis Condition=" '$(AndroidSupportedTargetJitAbis)' == '' ">armeabi-v7a</AndroidSupportedTargetJitAbis>
2324
<MonoSourceDirectory>$(MSBuildThisFileDirectory)external\mono</MonoSourceDirectory>
2425
<SqliteSourceDirectory Condition=" '$(SqliteSourceDirectory)' == '' ">$(MSBuildThisFileDirectory)external\sqlite</SqliteSourceDirectory>
2526
<XamarinAndroidSourcePath>$(MSBuildThisFileDirectory)</XamarinAndroidSourcePath>
@@ -32,19 +33,30 @@
3233
<MonoSourceFullPath>$([System.IO.Path]::GetFullPath ('$(MonoSourceDirectory)'))</MonoSourceFullPath>
3334
<SqliteSourceFullPath>$([System.IO.Path]::GetFullPath ('$(SqliteSourceDirectory)'))</SqliteSourceFullPath>
3435
</PropertyGroup>
36+
<!--
37+
"Fixup" $(AndroidSupportedHostJitAbis) so that Condition attributes elsewhere
38+
can use `:ABI-NAME:`, to avoid substring mismatches.
39+
-->
40+
<PropertyGroup>
41+
<AndroidSupportedHostJitAbisForConditionalChecks>$(AndroidSupportedHostJitAbis)</AndroidSupportedHostJitAbisForConditionalChecks>
42+
<AndroidSupportedHostJitAbisForConditionalChecks Condition=" !$(AndroidSupportedHostJitAbisForConditionalChecks.EndsWith (':')) " >$(AndroidSupportedHostJitAbisForConditionalChecks):</AndroidSupportedHostJitAbisForConditionalChecks>
43+
<AndroidSupportedHostJitAbisForConditionalChecks Condition=" !$(AndroidSupportedHostJitAbisForConditionalChecks.StartsWith (':')) " >:$(AndroidSupportedHostJitAbisForConditionalChecks)</AndroidSupportedHostJitAbisForConditionalChecks>
44+
<AndroidSupportedHostJitAbisSplit>$(AndroidSupportedHostJitAbis.Split(':'))</AndroidSupportedHostJitAbisSplit>
45+
</PropertyGroup>
3546
<ItemGroup>
36-
<HostOSName Include="host-Darwin" />
37-
<HostOSName Include="host-Linux" />
38-
<HostOSName Include="host-win64" />
47+
<AndroidSupportedHostJitAbi Include="$(AndroidSupportedHostJitAbisSplit)" />
3948
</ItemGroup>
4049
<!--
41-
"Fixup" $(AndroidSupportedAbis) so that Condition attributes elsewhere
50+
"Fixup" $(AndroidSupportedTargetJitAbis) so that Condition attributes elsewhere
4251
can use `:ABI-NAME:`, to avoid substring mismatches.
4352
-->
4453
<PropertyGroup>
45-
<AndroidSupportedDeviceAbis>$([System.String]::Copy('$(AndroidSupportedAbis)').Replace (':', ';').Replace ('host-$(HostOS)', '').Replace (';;', ';')</AndroidSupportedDeviceAbis>
46-
<AndroidSupportedAbisForConditionalChecks>$(AndroidSupportedAbis)</AndroidSupportedAbisForConditionalChecks>
47-
<AndroidSupportedAbisForConditionalChecks Condition=" !$(AndroidSupportedAbisForConditionalChecks.EndsWith (':')) " >$(AndroidSupportedAbisForConditionalChecks):</AndroidSupportedAbisForConditionalChecks>
48-
<AndroidSupportedAbisForConditionalChecks Condition=" !$(AndroidSupportedAbisForConditionalChecks.StartsWith (':')) " >:$(AndroidSupportedAbisForConditionalChecks)</AndroidSupportedAbisForConditionalChecks>
54+
<AndroidSupportedTargetJitAbisForConditionalChecks>$(AndroidSupportedTargetJitAbis)</AndroidSupportedTargetJitAbisForConditionalChecks>
55+
<AndroidSupportedTargetJitAbisForConditionalChecks Condition=" !$(AndroidSupportedTargetJitAbisForConditionalChecks.EndsWith (':')) " >$(AndroidSupportedTargetJitAbisForConditionalChecks):</AndroidSupportedTargetJitAbisForConditionalChecks>
56+
<AndroidSupportedTargetJitAbisForConditionalChecks Condition=" !$(AndroidSupportedTargetJitAbisForConditionalChecks.StartsWith (':')) " >:$(AndroidSupportedTargetJitAbisForConditionalChecks)</AndroidSupportedTargetJitAbisForConditionalChecks>
57+
<AndroidSupportedTargetJitAbisSplit>$(AndroidSupportedTargetJitAbis.Split(':'))</AndroidSupportedTargetJitAbisSplit>
4958
</PropertyGroup>
59+
<ItemGroup>
60+
<AndroidSupportedTargetJitAbi Include="$(AndroidSupportedTargetJitAbisSplit)" />
61+
</ItemGroup>
5062
</Project>

README.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -32,30 +32,30 @@ Overridable MSBuild properties include:
3232
* `$(AndroidFrameworkVersion)`: The Xamarin.Android `$(TargetFrameworkVersion)`
3333
version which corresponds to `$(AndroidApiLevel)`. This is *usually* the
3434
Android version number with a leading `v`, e.g. `v4.0.3` for API-15.
35-
* `$(AndroidSupportedAbis)`: The Android ABIs to build for inclusion within
36-
apps. This is a `:`-separated list of ABIs to build. Supported values are:
37-
38-
* `armeabi`
39-
* `armeabi-v7a`
40-
* `arm64-v8a`
41-
* `x86`
42-
* `x86_64`
43-
44-
Addtionally there are a set of "host" values. The "host ABI" is used
45-
to build mono for the *currently executing operating system*, in
46-
particular to build the base class libraries such as `mscorlib.dll`.
35+
* `$(AndroidSupportedHostJitAbis)`: The Android ABIs for which to build a
36+
host JIT *and* Xamarin.Android base class libraries (`mscorlib.dll`/etc.).
37+
The "host JIT" is used e.g. with the Xamarin Studio Designer, to render
38+
Xamarin.Android apps on the developer's machine.
4739
There can also be support for cross-compiling mono for a different
4840
host, e.g. to build Windows `libmonosgen-2.0.dll` from OS X.
4941
Supported host values include:
5042

51-
* `host-Darwin`
52-
* `host-Linux`
53-
* `host-win64`: Cross-compile Windows 64-bit binaries from Unix.
43+
* `Darwin`
44+
* `Linux`
45+
* `mxe-Win64`: Cross-compile Windows 64-bit binaries from Unix.
5446

55-
The default value is `host-$(HostOS):armeabi-v7a`, where `$(HostOS)`
56-
is based on probing various environment variables and filesystem locations.
57-
On OS X, the default would be `host-Darwin:armeabi-v7a`.
47+
The default value is `$(HostOS)`, where `$(HostOS)` is based on probing
48+
various environment variables and filesystem locations.
49+
On OS X, the default would be `Darwin`.
50+
* `$(AndroidSupportedTargetJitAbis)`: The Android ABIs for which to build the
51+
the Mono JIT for inclusion within apps. This is a `:`-separated list of
52+
ABIs to build. Supported values are:
5853

54+
* `armeabi`
55+
* `armeabi-v7a`
56+
* `arm64-v8a`
57+
* `x86`
58+
* `x86_64`
5959
* `$(AndroidToolchainCacheDirectory)`: The directory to cache the downloaded
6060
Android NDK and SDK files. This value defaults to
6161
`$(HOME)\android-archives`.

Xamarin.Android.sln

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,6 @@ Global
8181
GlobalSection(SolutionConfigurationPlatforms) = preSolution
8282
Debug|AnyCPU = Debug|AnyCPU
8383
Release|AnyCPU = Release|AnyCPU
84-
XAIntegrationDebug|Any CPU = XAIntegrationDebug|Any CPU
85-
XAIntegrationRelease|Any CPU = XAIntegrationRelease|Any CPU
8684
XAIntegrationDebug|AnyCPU = XAIntegrationDebug|AnyCPU
8785
XAIntegrationRelease|AnyCPU = XAIntegrationRelease|AnyCPU
8886
EndGlobalSection

build-tools/android-toolchain/android-toolchain.projitems

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -44,19 +44,19 @@
4444
</AndroidSdkItem>
4545
</ItemGroup>
4646
<ItemGroup>
47-
<_NdkToolchain Include="arm-linux-androideabi-clang" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains(':armeabi:')) Or $(AndroidSupportedAbisForConditionalChecks.Contains(':armeabi-v7a:'))">
47+
<_NdkToolchain Include="arm-linux-androideabi-clang" Condition="$(AndroidSupportedTargetJitAbisForConditionalChecks.Contains(':armeabi:')) Or $(AndroidSupportedTargetJitAbisForConditionalChecks.Contains(':armeabi-v7a:'))">
4848
<Platform>android-4</Platform>
4949
<Arch>arm</Arch>
5050
</_NdkToolchain>
51-
<_NdkToolchain Include="aarch64-linux-android-clang" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains(':arm64-v8a:'))">
51+
<_NdkToolchain Include="aarch64-linux-android-clang" Condition="$(AndroidSupportedTargetJitAbisForConditionalChecks.Contains(':arm64-v8a:'))">
5252
<Platform>android-21</Platform>
5353
<Arch>arm64</Arch>
5454
</_NdkToolchain>
55-
<_NdkToolchain Include="x86-clang" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains(':x86:'))">
55+
<_NdkToolchain Include="x86-clang" Condition="$(AndroidSupportedTargetJitAbisForConditionalChecks.Contains(':x86:'))">
5656
<Platform>android-9</Platform>
5757
<Arch>x86</Arch>
5858
</_NdkToolchain>
59-
<_NdkToolchain Include="x86_64-clang" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains(':x86_64:'))">
59+
<_NdkToolchain Include="x86_64-clang" Condition="$(AndroidSupportedTargetJitAbisForConditionalChecks.Contains(':x86_64:'))">
6060
<Platform>android-21</Platform>
6161
<Arch>x86_64</Arch>
6262
</_NdkToolchain>
@@ -65,37 +65,37 @@
6565
<_RequiredProgram Include="$(ManagedRuntime)" Condition=" '$(ManagedRuntime)' != '' " />
6666
<_RequiredProgram Include="$(HostCc)" />
6767
<_RequiredProgram Include="$(HostCxx)" />
68-
<_RequiredProgram Include="7za" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))">
68+
<_RequiredProgram Include="7za" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))">
6969
<Homebrew>p7zip</Homebrew>
7070
</_RequiredProgram>
7171
<_RequiredProgram Include="autoconf" />
7272
<_RequiredProgram Include="automake" />
73-
<_RequiredProgram Include="cmake" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))" />
74-
<_RequiredProgram Include="gdk-pixbuf-csource" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))">
73+
<_RequiredProgram Include="cmake" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))" />
74+
<_RequiredProgram Include="gdk-pixbuf-csource" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))">
7575
<Homebrew>gdk-pixbuf</Homebrew>
7676
</_RequiredProgram>
77-
<_RequiredProgram Include="gettext" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))" />
78-
<_RequiredProgram Include="glibtool" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))">
77+
<_RequiredProgram Include="gettext" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))" />
78+
<_RequiredProgram Include="glibtool" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))">
7979
<Homebrew>libtool</Homebrew>
8080
</_RequiredProgram>
81-
<_RequiredProgram Include="gsed" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))">
81+
<_RequiredProgram Include="gsed" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))">
8282
<Homebrew>gnu-sed</Homebrew>
8383
</_RequiredProgram>
84-
<_RequiredProgram Include="intltoolize" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))">
84+
<_RequiredProgram Include="intltoolize" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))">
8585
<Homebrew>intltool</Homebrew>
8686
</_RequiredProgram>
8787
<_RequiredProgram Include="make" />
88-
<_RequiredProgram Include="pkg-config" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))">
88+
<_RequiredProgram Include="pkg-config" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))">
8989
<Homebrew>pkg-config</Homebrew>
9090
</_RequiredProgram>
91-
<_RequiredProgram Include="ruby" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))" />
92-
<_RequiredProgram Include="scons" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))">
91+
<_RequiredProgram Include="ruby" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))" />
92+
<_RequiredProgram Include="scons" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))">
9393
<Homebrew>scons</Homebrew>
9494
</_RequiredProgram>
95-
<_RequiredProgram Include="wget" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))">
95+
<_RequiredProgram Include="wget" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))">
9696
<Homebrew>wget</Homebrew>
9797
</_RequiredProgram>
98-
<_RequiredProgram Include="xz" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))">
98+
<_RequiredProgram Include="xz" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))">
9999
<Homebrew>xz</Homebrew>
100100
</_RequiredProgram>
101101
</ItemGroup>

build-tools/android-toolchain/android-toolchain.targets

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,15 +112,15 @@
112112
/>
113113
</Target>
114114
<Target Name="_SetMxeToolchainMakefileTimeToLastCommitTimestamp"
115-
Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:')) Or $(AndroidSupportedAbisForConditionalChecks.Contains (':host-win32:'))">
115+
Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:')) Or $(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win32:'))">
116116
<Exec
117117
Command="touch -m -t `git log -1 --format=%25cd --date=format-local:%25Y%25m%25d%25H%25M.%25S` Makefile"
118118
WorkingDirectory="..\..\external\mxe"
119119
/>
120120
</Target>
121121
<Target Name="_CreateMxeW32Toolchain"
122122
DependsOnTargets="_SetMxeToolchainMakefileTimeToLastCommitTimestamp"
123-
Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))"
123+
Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))"
124124
Inputs="..\..\external\mxe\Makefile"
125125
Outputs="$(AndroidMxeFullPath)\bin\i686-w64-mingw32.static-gcc">
126126
<Exec
@@ -130,7 +130,7 @@
130130
</Target>
131131
<Target Name="_CreateMxeW64Toolchain"
132132
DependsOnTargets="_SetMxeToolchainMakefileTimeToLastCommitTimestamp"
133-
Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))"
133+
Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))"
134134
Inputs="..\..\external\mxe\Makefile"
135135
Outputs="$(AndroidMxeFullPath)\bin\x86_64-w64-mingw32.static-gcc">
136136
<Exec

build-tools/mono-runtimes/mono-runtimes.projitems

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<ItemGroup>
4-
<_MonoRuntime Include="armeabi" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':armeabi:'))">
4+
<_MonoRuntime Include="armeabi" Condition="$(AndroidSupportedTargetJitAbis.Contains (':armeabi:'))">
55
<Ar>$(_ArmAr)</Ar>
66
<As>$(_ArmAs)</As>
77
<Cc>$(_ArmCc)</Cc>
@@ -21,7 +21,7 @@
2121
<OutputProfilerFilename>libmono-profiler-log</OutputProfilerFilename>
2222
<OutputMonoPosixHelperFilename>libMonoPosixHelper</OutputMonoPosixHelperFilename>
2323
</_MonoRuntime>
24-
<_MonoRuntime Include="armeabi-v7a" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':armeabi-v7a:'))">
24+
<_MonoRuntime Include="armeabi-v7a" Condition="$(AndroidSupportedTargetJitAbis.Contains (':armeabi-v7a:'))">
2525
<Ar>$(_ArmAr)</Ar>
2626
<As>$(_ArmAs)</As>
2727
<Cc>$(_ArmCc)</Cc>
@@ -41,7 +41,7 @@
4141
<OutputProfilerFilename>libmono-profiler-log</OutputProfilerFilename>
4242
<OutputMonoPosixHelperFilename>libMonoPosixHelper</OutputMonoPosixHelperFilename>
4343
</_MonoRuntime>
44-
<_MonoRuntime Include="arm64-v8a" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':arm64-v8a:'))">
44+
<_MonoRuntime Include="arm64-v8a" Condition="$(AndroidSupportedTargetJitAbis.Contains (':arm64-v8a:'))">
4545
<Ar>$(_Arm64Ar)</Ar>
4646
<As>$(_Arm64As)</As>
4747
<Cc>$(_Arm64Cc)</Cc>
@@ -61,7 +61,7 @@
6161
<OutputProfilerFilename>libmono-profiler-log</OutputProfilerFilename>
6262
<OutputMonoPosixHelperFilename>libMonoPosixHelper</OutputMonoPosixHelperFilename>
6363
</_MonoRuntime>
64-
<_MonoRuntime Include="x86" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':x86:'))">
64+
<_MonoRuntime Include="x86" Condition="$(AndroidSupportedTargetJitAbis.Contains (':x86:'))">
6565
<Ar>$(_X86Ar)</Ar>
6666
<As>$(_X86As)</As>
6767
<Cc>$(_X86Cc)</Cc>
@@ -81,7 +81,7 @@
8181
<OutputProfilerFilename>libmono-profiler-log</OutputProfilerFilename>
8282
<OutputMonoPosixHelperFilename>libMonoPosixHelper</OutputMonoPosixHelperFilename>
8383
</_MonoRuntime>
84-
<_MonoRuntime Include="x86_64" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':x86_64:'))">
84+
<_MonoRuntime Include="x86_64" Condition="$(AndroidSupportedTargetJitAbis.Contains (':x86_64:'))">
8585
<Ar>$(_X86_64Ar)</Ar>
8686
<As>$(_X86_64As)</As>
8787
<Cc>$(_X86_64Cc)</Cc>
@@ -101,7 +101,7 @@
101101
<OutputProfilerFilename>libmono-profiler-log</OutputProfilerFilename>
102102
<OutputMonoPosixHelperFilename>libMonoPosixHelper</OutputMonoPosixHelperFilename>
103103
</_MonoRuntime>
104-
<_MonoRuntime Include="host-Win64" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))">
104+
<_MonoRuntime Include="host-mxe-Win64" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))">
105105
<Ar>$(AndroidMxeFullPath)\bin\x86_64-w64-mingw32.static-ar</Ar>
106106
<As>$(AndroidMxeFullPath)\bin\x86_64-w64-mingw32.static-as</As>
107107
<Cc>$(AndroidMxeFullPath)\bin\x86_64-w64-mingw32.static-gcc</Cc>
@@ -122,7 +122,7 @@
122122
<OutputProfilerFilename></OutputProfilerFilename>
123123
<OutputMonoPosixHelperFilename>libMonoPosixHelper</OutputMonoPosixHelperFilename>
124124
</_MonoRuntime>
125-
<_MonoRuntime Include="host-Darwin" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-Darwin:'))">
125+
<_MonoRuntime Include="host-Darwin" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':Darwin:'))">
126126
<Ar>ar</Ar>
127127
<As>as</As>
128128
<Cc>$(HostCc)</Cc>
@@ -140,7 +140,7 @@
140140
<OutputProfilerFilename>libmono-profiler-log</OutputProfilerFilename>
141141
<OutputMonoPosixHelperFilename>libMonoPosixHelper</OutputMonoPosixHelperFilename>
142142
</_MonoRuntime>
143-
<_MonoRuntime Include="host-Linux" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-Linux:'))">
143+
<_MonoRuntime Include="host-Linux" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':Linux:'))">
144144
<Ar>ar</Ar>
145145
<As>as</As>
146146
<Cc>$(HostCc)</Cc>

external/Java.Interop

0 commit comments

Comments
 (0)