Граф коммитов

274 Коммитов

Автор SHA1 Сообщение Дата
Rolf Bjarne Kvinge 327c0a8ddf
[xibuild] Add support for /verbose, and use it accordingly. (#5224)
* [xibuild] Add support for /verbose, and use it accordingly.

Also stop using xibuild when it's not needed.

* Use the same verbosity for xibuild as we do for xbuild/msbuild.
2019-01-09 07:43:22 +01:00
Rolf Bjarne Kvinge d205f2215b
[builds] Consume llvm + cross compilers from mono's package. (#5254)
* [builds] Consume LLVM from mono's package.

* Fix mono sdk paths in makefile to be relative to the top.

* [builds] Make curl verbose if V=1.

* [builds] Improve llvm build targets.

* Fix dependencies so that 'make -j llvm' (and other variations of the same
  target) work properly.
* Rename things a bit to make it clear there are 32-bit and 64-bit llvm
  targets.

* [builds] Consume cross compilers from mono's package as well.

Compiling the cross compilers while using LLVM from mono's package becomes
complicated, so just go ahead and get the cross compilers from the mono
package as well.

* Make llvm rules symmetric between llvm32 and llvm64.
2018-12-17 10:22:54 +01:00
Rolf Bjarne Kvinge 0803f0917a
[builds] Download & extract the mono sdk package. (#5247)
We don't consume it yet, that will come in separate pull requests as the
necessary bits are included in the package.
2018-12-11 07:48:05 +01:00
Rolf Bjarne Kvinge f8a254d628 Merge remote-tracking branch 'origin/master' into mono-2018-08 2018-11-16 14:26:50 -05:00
Ankit Jain f865694f86 Move tests to use new tool xibuild and thus fix msbuild tests (#5128)
* xibuild: New wrapper tool to run msbuild or managed executables

MSBuild supports fallback paths for projects imported using
`$(MSBuildExtensionsPath)`, but these must be specified explicitly in
the app.config of the main executable. There was a PR to allow use of
properties for this in the app.config, but that was not accepted
upstream.

This is required for being able to:

1. build projects with msbuild against the in-tree XI/XM build output
2. and to run nunit tests against the same.

For this we introduce a new tool, `xibuild`, based on XA's `xabuild`.
This supports the fallback paths to be specified via the environment variable
`MSBuildExtensionsPathFallbackPathsOverride`[1].
It essentially operates in 3 modes:

1. `xibuild -c /path/to/foo.exe`
	Generates /path/to/foo.exe.config with the fallback paths inserted into that.

2. `xibuild -- /v:diag /path/to/project.csproj`
	Runs msbuild with the arguments after `--` with a custom app.config based on
	`MSBuild.dll.config`, with the fallback paths correctly inserted.
	This is in a temporary file and the original config file is not touched.

3. `xibuild -t -- /path/to/managed_tool.exe args`
	Generates `/path/to/managed_tool.exe.config` based on `MSBuild.dll.config` with
	the fallback paths inserted, and runs `managed_tool.exe` with the arguments.
	The default is to overwrite the config file.
	But there is also a switch to merge it with an existing config file.

--
1. Value of the environment variable $MSBuildExtensionsPathFallbackPathsOverride
is prepended to any existing list of search paths in `MSBuild.dll.config`, IOW,
it takes precedence. So, the order of lookup becomes:

  - Value of the property `$(MSBuildExtensionsPath)`
  - Value of the environment variable `$MSBuildExtensionsPathFallbackPathsOverride`
  - /Library/Frameworks/Mono.framework/External/xbuild on macOS

* Integrate use of `xibuild` with the tests

Update all uses of `msbuild` and invocations of tools like nunit that
might depend on using the in-tree builds to use `xibuild`.

* xibuild: Move help descriptions to OptionSet itself.
2018-11-16 14:24:35 -05:00
Rolf Bjarne Kvinge 1ca7da537d Mono 5.16.0.87+ breaks us, so make sure we don't use it for now. (#5088) 2018-11-06 09:05:02 -05:00
Rolf Bjarne Kvinge 38bae20618
Fix min macOS version confusion. (#5080)
* MIN_OSX_SDK_VERSION: the minimum macOS version we support for running macOS apps.
* MIN_OSX_VERSION_FOR_MAC: the minimum macOS version we support for running XM/XI themselves.

Change our build to make sure the above is respected, and in particular:

* The mac32 and mac64 builds must use MIN_OSX_SDK_VERSION.
* The runtime/ build must use MIN_OSX_SDK_VERSION.
* The tools64 build should use MIN_OSX_VERSION_FOR_MAC.

Also document a bit better the various version variables.
2018-11-05 14:46:41 +01:00
Sebastien Pouliot 3ab481ea70 Merge xcode10.1 into master
Also update apidiff from d15-9 since it's both frozen and includes xcode10.1
2018-10-31 15:54:48 -04:00
Sebastien Pouliot cbfb047adc
Update for Xcode 10.1 final release, including last minute Pen/Tap API (#5055) 2018-10-30 21:12:54 -04:00
Marek Safar 600da056f5 Bump system mono dependency 2018-10-30 14:26:34 +01:00
Rolf Bjarne Kvinge 7425218c78 Merge remote-tracking branch 'origin/master' into mono-2018-08 2018-10-30 07:42:02 +01:00
Rolf Bjarne Kvinge c69c74b3d3
Clone files if possible whenever it makes sense. (#5049)
Cloning is faster when supported, and it also saves disk space.
2018-10-29 16:09:30 +01:00
Rolf Bjarne Kvinge 82e0c73e0b Bump minimum mono one that has 'mono_dangerous_add_raw_internal_call'. 2018-10-26 17:15:19 +02:00
Rolf Bjarne Kvinge 04b7c94b17 Bump min mono version for XM system apps.
Using a system mono < 5.18 results in a TypeLoadException:

    Could not resolve type with token 01000032 from typeref (expected class 'Mono.ISystemDependencyProvider' in assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
2018-10-25 09:54:46 +02:00
Rolf Bjarne Kvinge cca50fe500 Mono 2018-08 requires macOS 10.9+, so Xamarin.Mac must as well. 2018-10-25 09:54:43 +02:00
Rolf Bjarne Kvinge 545c7bf4ba Merge remote-tracking branch 'origin/master' into mono-2018-08 2018-10-24 13:49:26 +02:00
Rolf Bjarne Kvinge d899d4fb70
Remove bitrotted support for a separate mono submodule for watchOS support. (#5022)
Unce upon a time we used a separate mono submodule for watchOS support, to make
development of watchOS support easier (we referenced mono/master, to avoid
backporting fixes for watchOS support through various release branches in
mono).

This only worked until our watchOS support became stable, since then we had to
start using a stable version of mono for watchOS support.

This means that our build support for using a separate mono clone for watchOS
support is no longer needed; and in any case it's broken because of build
changes done later.
2018-10-22 16:14:26 +02:00
Rolf Bjarne Kvinge 1279dd1eaa
Get the F# binaries from macios-binaries instead of building them every time. (#5015)
It's still possible to build from source if desired.

Also remove the fsharp submodule (it will be cloned manually only if building
from source).
2018-10-19 16:54:44 +02:00
Vincent Dondain 9e0ab2b5fe Bump for Xcode 10.1 beta 3 (#4987) 2018-10-15 19:57:54 -04:00
Sebastien Pouliot 8feb75335e
Merge branch 'master' into mono-2018-08 2018-10-15 11:23:27 -04:00
Rolf Bjarne Kvinge 745c18cc73 Merge remote-tracking branch 'origin/master' into msbuild-port 2018-10-11 07:31:58 +02:00
Aleksey Kliger cef512dc41 Merge remote-tracking branch 'origin/master' into mono-2018-08 2018-10-10 17:23:54 -04:00
Jo Shields 6f2ebedb74 Bump to mono:2018-06 (#4277)
* Bump to mono:2018-06

* Bump mono

* Updates compression to work with the public span

* Bump mono

* Fixes pointer check logic in Deflater

* Bump mono

* Fixes pointer check logic in Deflater

* Bump mono

* Bump Mono

* [runtime] always use `mono_jit_set_aot_mode` (#4491)

`mono_jit_set_aot_only` is deprecated and accidentally broke with
https://github.com/mono/mono/pull/7887

This should fix device tests with `mono-2018-06`

* Testing with Zoltan's patch

* Include libmono-system-native on Xamarin.Mac

* Bump Mono

Commit list for mono/mono:

* mono/mono@7bcda192a0 Bump llvm to release_60/fc854b8ec5873d294b80afa3e6cf6a88c5c48886. (#9786). (#9804)
* mono/mono@23e95ec7ad Apply F# portable pdb debug fix for pinvokes & bump (#9797)
* mono/mono@295f6d32af [2018-06] [MacOS] On Mac, use the copyfile API to copy files (#9696)

Diff: 7d5f4b6136...7bcda192a0

* Revert 4bacab3d5c, it doesn't fix the ios aot problems.

* Bump mono

* [tests] Adjust the MT0137 test for mcs change in behavior.

Starting with mono 5.16 mcs will now add assembly references when the assembly
is only used in attributes (this was already the case for csc in both 5.14 and
5.16, so it seems to be a compatibility change).

Adjust the MT0137 test accordingly.

* [msbuild] Fix parsing of json parser errors to handle trailing periods in the error message.

Fixes this test:

    1) Test Failure : Xamarin.iOS.Tasks.Bug60536.TestACToolTaskCatchesJsonException
         ColumnNumber
      Expected: 2
      But was:  0

* Bump mono

* [builds] Install the old llvm binaries into the LLVM36 directory and make the 32 bit builds use that.

* Bump mono

* Bump mono

* [jenkins] Don't give VSTS a fake branch. (#4667)

Something in VSTS changed, and now fake branch names don't work anymore.

So instead use real branch names (and for pull requests I've created a
'pull-request' branch we can use).

* Assembly.LoadFile accepts only absolute path

* [linker] Add new Facade (System.Threading.Tasks.Extensions).

Fixes these MTouch test failures:

    1. Xamarin.Linker.SdkTest.iOS_Unified :   Facades
      Expected:
      But was:  < "System.Threading.Tasks.Extensions" >

    2. Xamarin.Linker.SdkTest.tvOS :   Facades
      Expected:
      But was:  < "System.Threading.Tasks.Extensions" >

    3. Xamarin.Linker.SdkTest.watchOS :   Facades
      Expected:
      But was:  < "System.Threading.Tasks.Extensions" >

* [mono-sdks] Necessary changes to unify the LLVM provisioning for both iOS and Android. (#4732)

* Bump Mono

* [mtouch] add mixed-mode support (#4751)

* [mtouch] add --interp-mixed option

When enabling this option, mtouch will AOT compile `mscorlib.dll`.  At
runtime that means every method that wasn't AOT'd will be executed by
the runtime interpreter.

* [mtouch] Add support to --interpreter to list the assemblies to (not) interpret.

* [msbuild] Simplify interpreter code to use a single variable.

* Fix whitespace.

* [mtouch] Move mtouch-specific code to mtouch-specific file.

* [msbuild] An empty string is a valid value for 'Interpreter', so make it a non-required property.

* [mtouch] Add sanity check for aot-compiling interpreted assemblies.

* Bump Mono

* [linker] Updates SDKs facades list

* Bump mono

* [msbuild] Adds facades which might override default nuget version to framework list

The collision resolver task reads them from here https://github.com/dotnet/sdk/blob/master/src/Tasks/Common/ConflictResolution/FrameworkListReader.cs

* Bump to a VSfM version that can build XM Classic projects.
2018-10-10 11:02:28 -04:00
Rolf Bjarne Kvinge 2b3ef0e183 Try to make version numbers clearer, and establish some ground rules. (#4927) 2018-10-04 13:49:26 -04:00
Sebastien Pouliot 9f23f4b45a
Bump for Xcode 10.1 beta 2 (#4906) 2018-10-03 08:26:31 -04:00
Marek Safar 40569a2571 Bump mono system dependency 2018-10-03 12:52:35 +02:00
Rolf Bjarne Kvinge 53d51dc485 Bump to a VSfM version that can build XM Classic projects. 2018-10-02 15:32:41 -04:00
Aleksey Kliger 02867e5c98 Revert "Bump VSmac min version to 7.7.0.1373"
This reverts commit b2686bb152.
2018-10-02 15:31:17 -04:00
Aleksey Kliger b2686bb152 Bump VSmac min version to 7.7.0.1373
To pick up the fix for https://devdiv.visualstudio.com/DevDiv/_workitems/edit/658916/
Should fix the XM classic build failures
2018-10-02 15:02:21 -04:00
Sebastien Pouliot 7268716c87
Bump XM to 5.1 and audit fixes from `xcode10` (#4887)
We plan to release XM 5.0 based on 15.8
So xcode10.1 support is bumped to 5.1.x

Backport of
b40230c09d
2018-09-28 08:13:10 -04:00
Matt Sylvia 865ddb1d7a Bump master versions (#4878) 2018-09-27 17:26:55 -04:00
Aleksey Kliger f0f1332c50 Bump mono and minimum system mono 2018-09-26 15:56:27 -04:00
Aleksey Kliger 8eaf097104 Merge remote-tracking branch 'origin/master' into mono-2018-08 2018-09-20 16:40:54 -04:00
Vincent Dondain 29d90e5ecd [Make.config] Set IOS_PACKAGE_VERSION_REV (#4856)
If this isn't set the `Constants.*.cs.in` files won't have the proper version values. E.g: '12.3.' instead of '12.3.0'.
2018-09-20 16:18:24 -04:00
Sebastien Pouliot c53b64da1d
Bump for Xcode 10.1 beta 1 (#4836) 2018-09-19 08:56:43 -04:00
Vincent Dondain 2174ec41a2 Merge branch 'xcode10' 2018-09-18 14:12:39 -04:00
Sebastien Pouliot 84552a4602
Bump to Xcode 10 final (#4830) 2018-09-17 20:59:42 -04:00
Sebastien Pouliot aa622c481a
Bump for Xcode10 GM (#4794)
Note that it included 173 new API so xtro files were updated to
- include new API in .todo
- add some backlog to .ignore files
2018-09-12 19:27:11 -04:00
Rolf Bjarne Kvinge bd1ddd5b9d Merge remote-tracking branch 'origin/master' into mono-2018-08 2018-08-31 12:40:37 +02:00
Rolf Bjarne Kvinge 33c1db4b68
Store the minimum mono version for Xamarin.Mac in one place only (Make.config) and bump it to 5.14. Fixes #4120. (#4695)
* Store the minimum mono version for Xamarin.Mac in one place only (Make.config) and bump it to 5.14. Fixes #4120.

I've verified that we fail at launch of running on 5.12, while 5.14 works fine
(to launch at least), so the minimum system mono version is _at least_ 5.14.

Fixes https://github.com/xamarin/xamarin-macios/issues/4120.

* [mmp] Load mono's version file instead of using pkg-config to get mono's version.

pkg-config will only get three parts of the version, while the version file
has all four parts.

This is important, since we're now verifying the four parts of the version
file, and without loading those four from the system, we'll fail builds like
this:

    error MM0001: This version of Xamarin.Mac requires Mono 5.14.0.136 (the current Mono version is 5.14.0).

because the three part version's fourth number is assumed to be 0.

* Only verify mono runtime version when running with system/dynamic mono.

There should be no need to verify the mono runtime version when embedding mono:

* If it's a mono we're shipping, something very bad happened in our
  build/package for it to be an invalid mono.
* If it's a system mono that's being embedded, then we verify in mmp at build
  time.

In the first scenario (a mono we're shipping), the problem is that the mono
we've built does not report back the full version number (with four parts) [1],
which means we'll fail any check whose requirements are identical for the
first three parts, and non-zero for the last.

[1] The fourth part of the version number is created/calculated when packaging
mono, and we're not packaging it.
2018-08-29 14:28:56 +02:00
Vincent Dondain 20edb3561c
[makefile] Fix 'buildinfo' branch name on jenkins (#4703)
- Jenkins knows the branch name $(BRANCH_NAME) which Wrench didn't.
- Fixes #4674: [Makefile] Incorrect 'HEAD' word used as branch for xcode10 pkg.
  (https://github.com/xamarin/xamarin-macios/issues/4674)
2018-08-28 11:08:36 -04:00
Rolf Bjarne Kvinge 965e1f7bcc Merge remote-tracking branch 'origin/xcode10' into xcode10-rebase-15.8 2018-08-16 17:09:30 +02:00
Rolf Bjarne Kvinge f7f8f4e1d9
[builds] Only use Xcode 9.4 when we need it. Fixes #4582. (#4627)
Only use Xcode 9.4 to build 32-bit mac binaries, we don't need it to build
anything else.

This way we can revert 7227d8c478, which is
causing issue #4582 (that commit changed variables containing SDK paths to be
SDK version agnostic, so that the variables could be used for all Xcode
versions - but that unfortunately triggers an obscure ld bug. If we don't need
those variables to refer to Xcode 9.4 paths, they can contain versions just
fine).

Fixes https://github.com/xamarin/xamarin-macios/issues/4582.
2018-08-16 17:07:09 +02:00
Vincent Dondain c4e497b2c8 Fix mono/sdks
- Don't `XCODE_DEVELOPER_ROOT=$(XCODE94_DEVELOPER_ROOT)` this was causing everything to be built using 9.4.
- Build mac and ios targets with the right clang or xcode_dir based on if the target is 32 or 64 bit.
- Bump vsmac version
2018-08-15 18:13:39 -04:00
Sebastien Pouliot 605b992c62
Bump for beta 6 (#4613) 2018-08-15 13:23:31 -04:00
Vincent Dondain eec95e881c Merge branch 'd15-8' into xcode10-rebase-15.8 2018-08-13 21:04:56 -04:00
Jo Shields 204e5fc832
Fix typo 2018-08-09 14:05:52 -04:00
Sebastien Pouliot c982db842a
Bump XI/XM versions after 15.9 branch (#4593) 2018-08-08 14:16:53 -04:00
Jo Shields 878c9d5457
Bump to mono:2018-08 2018-08-08 12:22:25 -04:00
Miguel de Icaza 8960cc0022
Merge pull request #4251 from migueldeicaza/xcode10-network
[Network, Security] Bindings for Network, Security, DispatchIO and some classes needed to port samples
2018-08-08 09:55:06 -04:00