Skip to content

Mono 2019 06 xaprepare#3182

Merged
steveisok merged 5 commits intomono-2019-06from
mono-2019-06-xaprepare
Jun 7, 2019
Merged

Mono 2019 06 xaprepare#3182
steveisok merged 5 commits intomono-2019-06from
mono-2019-06-xaprepare

Conversation

@grendello
Copy link
Copy Markdown
Contributor

Rebase on master + some fixes

grendello and others added 5 commits June 7, 2019 13:58
Fixes: #2562

The `make prepare` **make** target and `msbuild /t:Prepare` MSBuild
target are used to "prepare" a `xamarin-android` checkout so that
the subsequent `make all` or `msbuild /t:Build` invocation will work.

The preparation step involves ensuring that all known required
dependencies exist or are provisioned (54a7a02), such as the build
utilities (`autoconf`/etc.), cross-compilers (MinGW), the Android SDK
and NDK, and building "enough" to allow `Xamarin.Android.sln` to
build (see also 7343965).

Unfortunately, the Glorious Idea™ of using MSBuild for significant
portions of this process is "baroque", making it difficult to
understand and maintain, and the requirement on `msbuild` means
that things break in really bizarre and obscure ways on Linux and
macOS if the installed `mono` version is "too old"...and the
determination of "too old" was being done via `mono` & `msbuild`!

Furthermore, there was duplication and repetition of various bits of
build configuration on Linux and macOS between Makefile and the
MSBuild project system, which made it easier to make mistakes.
(Then there's the occasional bizarro failures that would result from
attempting to evaluate `$(PRODUCT_VERSION)` within `make`; it would
fail when `MONO_LOG_LEVEL=info` was set.  Then there's...)

Instead of having `make prepare` be implemented as an unholy mess of
`make` and `msbuild`, introduce the new `build-tools/xaprepare` app.
`xaprepare` will be built and executed as part of `make prepare`,
and takes over responsibility for repo build preparation.

See also: build-tools/xaprepare/README.md

TODO: Windows support
Also do not set the CecilRestoreConfiguration as the default value
should work OK with mono/2019-06 and its cecil.
* mono-2019-06:
  Changing configuration to reference the right mono version after a mono bump
  Also update the Azure artefacts link to match the mono hash
  Rebase on master and bump mono
  Bump to mono:2019-06
@steveisok steveisok merged commit 1a8ac32 into mono-2019-06 Jun 7, 2019
@grendello grendello deleted the mono-2019-06-xaprepare branch June 7, 2019 20:10
@github-actions github-actions bot locked and limited conversation to collaborators Jan 30, 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