Optional only build MSVC runtime using make file system on Windows. (mono/mono#16915)
authorJohan Lorensson <lateralusx.github@gmail.com>
Thu, 3 Oct 2019 09:21:36 +0000 (11:21 +0200)
committerGitHub <noreply@github.com>
Thu, 3 Oct 2019 09:21:36 +0000 (11:21 +0200)
commit22fa2f75eb3cfd09886adf710491574de2bbf7b1
tree9cdb64e8c5fc5cecf5d3f97a113ceeb3cae543b6
parente612a7ae0a0ebde5a094d33a0a38e7f30486e7a3
Optional only build MSVC runtime using make file system on Windows. (mono/mono#16915)

* Build MSVC only runtime using make file system.

Add a new option to only build MSVC version of mono runtime and native
tools, --enable-msvc-only. In the past, --enable-msvc build both
mingw as well as MSVC runtime, this commit adds an option to only build
MSVC version of runtime and native tools using make file system.

Commit updates all native make file making sure mingw/gcc builds are
not done if --enable-msvc-only has been used. It also makes sure we
build and use MSVC based tools as part of build and tests.

Result will be a build without any mingw/gcc artifacts, but where all
existing make files still works with the MSVC build artifacts.

This commits is also preparing to switch the .NETCore build over to use
MSVC build runtime in order to get LLVM support, something that is
currently only supported on Windows MSVC build.

* Add link to mono-sgen.exe and clean windows binaries.

* Fix failures in mono/tests test-aot on Windows.

* Add fullaot-mixed tests on Windows x64.

* Run msbuild in parallel.

* Default to x64 mingw host on cygwin build.

Commit migrated from https://github.com/mono/mono/commit/55be8289ff1601824707bb2ef9d554b01123f713
21 files changed:
src/mono/configure.ac
src/mono/mono/dis/Makefile.am
src/mono/mono/eglib/Makefile.am
src/mono/mono/metadata/Makefile.am
src/mono/mono/mini/Makefile.am.in
src/mono/mono/mini/main.c
src/mono/mono/native/Makefile.am
src/mono/mono/sgen/Makefile.am
src/mono/mono/tests/Makefile.am
src/mono/mono/tests/fullaot-mixed/Makefile.am
src/mono/mono/tests/testing_gac/Makefile.am
src/mono/mono/utils/Makefile.am
src/mono/msvc/Makefile.am
src/mono/msvc/build-external-btls.bat
src/mono/msvc/build-external-llvm.bat
src/mono/msvc/libmono-dynamic.vcxproj
src/mono/msvc/libmono-static.vcxproj
src/mono/msvc/mono.sln
src/mono/msvc/monow.vcxproj [new file with mode: 0644]
src/mono/msvc/monow.vcxproj.filters [new file with mode: 0644]
src/mono/msvc/run-msbuild.bat