Skip to content

Conversation

@jonpryor
Copy link
Contributor

@jonpryor jonpryor commented May 13, 2016

Commit 38dbfca mentions that commercial Xamarin.Android 6.0
provides Mono for five architectures, but "[i]n the interest of
expediency" only adds support to build one architecture:
armeabi-v7a (32-bit ARM v7).

It's time to fix that: add build system support for armeabi,
arm64-v8a, x86, and x86_64.

However, it takes time to build all those ABIs: on a 2013 6-core
Mac Pro, it takes ~29 minutes to build all five of those ABIs plus the
"host" ABI (for BCL assemblies), which is presumably 29 minutes that
very few people want to spend, and will be even longer in a variety of
build environments (virtual machines, slower hardware, etc.).

Which means we don't want to require that they all be built.

To better support this, add a new $(AndroidSupportedAbis) MSBuild
property which contains a comma-separated-and-wrapped list of ABIs to
support. This allows manually overriding the ABIs on the command-line:

# build everything!
$ xbuild '/p:AndroidSupportedAbis=armeabi,armeabi-v7a,arm64-v8a,x86,x86_64,

or setting a value within Configuration.Override.props:

<PropertyGroup>
  <!-- only build x86 -->
  <AndroidSupportedAbis>x86,x86_64</AndroidSupportedAbis>
</PropertyGroup>

The default continues to be just armeabi-v7a.

@jonpryor jonpryor force-pushed the jonp-mono-abis branch 3 times, most recently from 27e569b to 7ceb6a0 Compare May 13, 2016 19:13
README.md Outdated
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 `,` list of ABIs to build. Supported values are:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"This is a , separated list of .. "?

<AndroidSupportedAbis Condition=" '$(AndroidSupportedAbis)' == '' ">armeabi-v7a</AndroidSupportedAbis>
</PropertyGroup>
<!--
"Fixup" $(AndroidSupportedAbis) so that Condition attriubutes elsewhere
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s,attriubutes,attributes,

…6_64

Commit 38dbfca mentions that commercial Xamarin.Android 6.0
provides Mono for five architectures, but "[i]n the interest of
expediency" only adds support to build *one* architecture:
armeabi-v7a (32-bit ARM v7).

It's time to fix that: add build system support for armeabi,
arm64-v8a, x86, and x86_64.

*However*, it takes *time* to build all those ABIs: on a 2013 6-core
Mac Pro, it takes ~29 minutes to build all five of those ABIs plus the
"host" ABI (for BCL assemblies), which is presumably 29 minutes that
very few people want to spend, and will be even longer in a variety of
build environments (virtual machines, slower hardware, etc.).

Which means we don't want to require that they all be built.

To better support this, add a new `$(AndroidSupportedAbis)` MSBuild
property which contains a comma-separated list of ABIs to support.
This allows manually overriding the ABIs on the command-line:

	# build everything!
	$ xbuild /p:AndroidSupportedAbis=armeabi,armeabi-v7a,arm64-v8a,x86,x86_64

or setting a value within `Configuration.Override.props`:

	<PropertyGroup>
	  <!-- only build x86 -->
	  <AndroidSupportedAbis>x86,x86_64</AndroidSupportedAbis>
	</PropertyGroup>

The *default* continues to be just armeabi-v7a.
@radical
Copy link
Member

radical commented May 13, 2016

LGTM

@radical radical merged commit ba00293 into dotnet:master May 13, 2016
radical pushed a commit that referenced this pull request May 8, 2018
[Java.Interop.Tools.JavaCallableWrappers-Tests] Add unit tests.
@github-actions github-actions bot locked and limited conversation to collaborators Feb 2, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants