[sdks] Build Android SDK on Windows (#14402)
commitf4b86bbb410336c93b017577bc5186d3120d9735
authorAleksey Kliger (λgeek) <alklig@microsoft.com>
Fri, 10 May 2019 23:14:50 +0000 (10 19:14 -0400)
committerGitHub <noreply@github.com>
Fri, 10 May 2019 23:14:50 +0000 (10 19:14 -0400)
tree363ed585cb5363c89b0bd1b8651254a87c8cfe23
parent1d90dcfd357c2bc070affa56865ad8cfff2e4b2e
[sdks] Build Android SDK on Windows (#14402)

Modify the sdks/builds/ infrastructure to support compiling the Android SDK on Windows.

The initial goal of this commit is to build only the monodroid BCL on Windows.  Compilation of the host and cross-compiler mono binaries is future work.

There's one kind of hacky bit in here.  Had to make sure that scripts/ci/run-jenkins.sh does _not_ set MONO_EXECUTABLE.  Normally windows builds use the msvc in-tree compiled mono binary to build the BCL.  In the case of the SDKs, we don't build that msvc binary, and we just use the usual (cygwin) mono to build the BCL.

* [sdks] allow building on cygwin

* [sdks] Start adding stub templates to llvm.mk

* [sdks] provision-android stubs for win32

* [sdks] Pass cygwin host triple to calls to configure on win32

* [sdks] Add runtime stub templates

* [sdks] Add android stub templates for win32

This is enough to get configure-android to work on cygwin x86_64

* [sdks] On win32, the HostMxe build is the host buildwe want the x86_64-w64-mingw32 toolchain, not the cygwin toolchain

* [sdks] For android on cygwin depend on the mingw64-{x86_64,i686}-zlib

* [sdks] Add android SDK build artifacts to .gitignore

* [sdks] Add AndroidCrossMXETemplate stub to android.mk for Windows builds

* [sdks] Fixup comments in android.mk

* [sdks] use UNAME=Windows for Cygwin and WSL

Don't assume Cygwin is the build platform for Windows Android SDK builds.

Keep using UNAME for coarse platform descriptions.
Switch to HOST_ARCH_MINGW32 instead of CYGWIN_BUILD_MACHINE for variable holding
the machine part of the host triplet for Windows.

* [sdks] Dummy provision-mxe target for windows

* [ci] Don't provision-android on Windows

It doesn't work yet.

* [sdks] temporarily turn off android-host-mxe-Win64-release

Needs mingw64-x86_64-zlib on all the CI builds bots.

* FIXME: hack - don't set MONO_EXECUTABLE to the msvc mono for Android SDK build

* [sdks] drop LLVMProvisionTemplateStub
.gitignore
scripts/ci/run-jenkins.sh
sdks/builds/Makefile
sdks/builds/android.mk
sdks/builds/bcl.mk
sdks/builds/llvm.mk
sdks/builds/mxe.mk
sdks/builds/runtime.mk