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

90 Коммитов

Автор SHA1 Сообщение Дата
Rolf Bjarne Kvinge 7781c5184e
[system-dependencies] Remove the cmake dependency. (#21375)
It was needed to build Mono from source, which we haven't done in quite
a few years now.
2024-10-10 11:23:39 +02:00
Rolf Bjarne Kvinge ec7538047d
[system-dependencies.sh] We don't need the watchOS simulator anymore. (#21203) 2024-09-10 11:49:44 +02:00
Rolf Bjarne Kvinge f417c91828
[system-dependencies] We don't need autotools anymore, so don't check for it. (#21104)
Autotools was required to build mono from source, which we haven't done
in a *long* time.
2024-08-26 11:34:44 +02:00
Rolf Bjarne Kvinge f2ae944988
[system-dependencies] Only download the simulators for platforms we target. (#20842)
In particular we don't need the visionOS simulator/platform.
2024-07-10 12:58:16 +02:00
Rolf Bjarne Kvinge 808fb1f115
[system-dependencies] Split simulator installation. (#20837)
Split installing new and old simulators, so that we can choose to only
install the old simulators if we want so.

And then only install the old simulators when we're doing beta builds,
because that's the only time we need them.
2024-07-09 17:03:13 +02:00
Rolf Bjarne Kvinge 47806611e7
[siminstaller] Convert to .NET project. (#20739)
In addition to being good by itself, by fixing all the resulting nullability
warnings, this random problem goes away:

    Unhandled Exception:
    System.NullReferenceException: Object reference not set to an instance of an object
      at xsiminstaller.MainClass.Main (System.String[] args) [0x006ca] in /Users/builder/azdo/_work/4/s/xamarin-macios/tools/siminstaller/Program.cs:228
    [ERROR] FATAL UNHANDLED EXCEPTION: System.NullReferenceException: Object reference not set to an instance of an object
      at xsiminstaller.MainClass.Main (System.String[] args) [0x006ca] in /Users/builder/azdo/_work/4/s/xamarin-macios/tools/siminstaller/Program.cs:228

Also use HttpClient instead of WebClient (which is deprecated).
2024-06-19 15:10:39 +02:00
Michael Cummings (MSFT) cf2f3e612e
Update Homebrew install URL (#19968) 2024-02-05 10:03:21 -05:00
Alex Soto ed6affbb50
[xcode15] Bump Xcode 15 to Beta 6 (#18668) 2023-08-12 07:10:00 -04:00
Rolf Bjarne Kvinge 61a3921e0f [system-dependencies] Fix installing the simulator runtimes. 2023-08-04 11:47:27 -04:00
Rolf Bjarne Kvinge e05ec5d072 Don't try to figure out if we have the simulators we need or not.
There doesn't seem to be a reliable way to detect if there's anything that's
need to be installed.
2023-03-29 14:37:51 -04:00
Rolf Bjarne Kvinge 32dd91129b
[system-dependencies] Check the correct PROVISION_X variable when provisioning simulators. (#17884) 2023-03-23 14:50:54 +01:00
Rolf Bjarne Kvinge 02f5e2188c
[system-dependencies] Improve detection of existing simulator runtimes. (#17855)
Also fix a condition that would cause the script to provision simulator
runtimes as long as --provision-xcode was *not* passed to the script.
2023-03-22 07:48:10 +01:00
Rolf Bjarne Kvinge 08a162ad7f
[system-dependencies] Add diagnostics for duplicate sim download error. (#16845)
Trying to track down this:

    Downloading watchOS 9.1 Simulator (20S75): Installing (registering download)...
    Downloading watchOS 9.1 Simulator (20S75): Installing (registering download)...
    Downloading watchOS 9.1 Simulator (20S75): Error: Error Domain=SimDiskImageErrorDomain Code=5 "Duplicate of F879602F-0F22-47F5-8252-FF177B9032A0" UserInfo={NSLocalizedDescription=Duplicate of F879602F-0F22-47F5-8252-FF177B9032A0, unusableErrorDetail=}
2022-11-23 07:48:22 +01:00
Rolf Bjarne Kvinge b683378182 [system-dependencies] 'xcodebuild -downloadAllPlatforms' doesn't seen to need sudo. 2022-11-03 08:51:54 +01:00
Rolf Bjarne Kvinge 6b0d192131 Merge main into xcode14.1. 2022-10-10 13:02:13 +02:00
Rolf Bjarne Kvinge 6013e06418
[system-dependencies] Check for and install shellcheck and yamllint. (#16285)
Also make the build go into the tools/devops directory, which will run
shellcheck on the bash files. This also required fixing a couple of issues in
one of the bash scripts.

We currently don't use yamllint, but that's coming very soon.
2022-10-10 08:05:51 +02:00
Rolf Bjarne Kvinge c7badeacf1 Merge main into xcode14.1. 2022-10-04 16:21:54 +02:00
Rolf Bjarne Kvinge e8c7805ddf
Remove part of the maccore logic. (#16181)
* Don't load maccore/mk/versions.mk anymore, which means we're not checking
  any subsequent dependencies listed in maccore. Note that we still need the
  maccore dependency itself for a little while longer.
* Remove some outdated testing code that called into maccore.
* Don't recurse into the maccore directory during make.
* Remove some code checking for ENABLE_XAMARIN that's not used anymore, in
  particular in xharness.
2022-09-30 09:30:12 +02:00
Rolf Bjarne Kvinge ffca63b47c
[system-dependencies] Log what we do when downloading extra platforms. (#15809) 2022-08-31 16:43:43 +02:00
Rolf Bjarne Kvinge bcb31c7784
[system-dependencies] Compute the exact path of the path to the additional simulator runtimes. (#15395)
This avoids a few problems:

* The current logic fails if there are multiple candidate paths.
* The current logic doesn't detect if an additional simulator runtime must be
  installed if there's one already installed from a previous beta.
2022-07-12 16:26:12 +02:00
Rolf Bjarne Kvinge a358b493fd Merge remote-tracking branch 'origin/xcode14' into HEAD 2022-06-21 16:12:26 +02:00
Rolf Bjarne Kvinge e3bc284ab1
[build] Set DEVELOPER_DIR and MD_APPLE_SDK_ROOT to the Xcode we're using. (#15266)
This makes it not necessary to check for the currently selected Xcode in our
system dependency check. It also means it'll become much easier to work with
multiple branches simultaneously where each branch needs its own Xcode.
2022-06-20 09:52:21 +02:00
Rolf Bjarne Kvinge 9353d6af4d Mono.Options is sorely missed, yet again. 2022-06-14 15:26:32 +02:00
Rolf Bjarne Kvinge 6d103b6ded [build] Fix detecting additional Xcode platforms to install. 2022-06-14 14:46:37 +02:00
Rolf Bjarne Kvinge fc03a240a6 [system-dependencies] Add logic to automatically install additional platforms in Xcode. 2022-06-11 00:07:13 +02:00
Rolf Bjarne Kvinge a1d0b6eba9
Make our local .NET the default .NET for the build. (#15086)
Make our local .NET the default .NET (in the root's global.json), and then if
a directory wants to use the system .NET, then that directory would have to
opt-in (using its own global.json).

This way we don't have to copy global.json/NuGet.config files around to run
tests with the correct .NET setup.
2022-06-07 10:11:02 +02:00
Rolf Bjarne Kvinge e3a03d2804
Remove the Visual Studio dependency. (#15102)
Remove our dependency on Visual Studio. Use the 'dotnet-t4' tool instead of
invoking the t4 tool embedded in Visual Studio.

Fixes this build error after installing VS Mac 2022:

> Cannot open assembly '/Applications/Visual Studio.app/Contents/Resources/lib/monodevelop/AddIns/MonoDevelop.TextTemplating/TextTransform.exe': No such file or directory.
2022-05-25 08:26:51 +02:00
Rolf Bjarne Kvinge d1b7606181
Adjust versioning scheme for .NET to make the third field the commit distance. (#14923)
Adjust our versioning scheme so that the NuGet version is
`Major.Minor.CommitDistance`. The previous scheme ("Major.Minor.<fixed-ish
version>") causes problems on branches producing stable builds, because each
new commit would end up with the same NuGet version, and we wouldn't be able
to push those to a NuGet feed because there might already be an existing
version there.

By using the commit distance in the NuGet version we ensure that every commit
has a different version.
2022-05-10 09:28:39 +02:00
Chris Hamons 0fed58c38f
[system-dependencies.sh] Point to the correct pkg to install on M1 (#14614)
Co-authored-by: Manuel de la Pena <mandel@microsoft.com>
2022-04-02 15:19:39 -04:00
Rolf Bjarne Kvinge e44d0fd047
[.NET] Rename several DOTNET6_* variables to to DOTNET_*. (#14463)
Also rename DOTNET_VERSION to SYSTEM_DOTNET_VERSION to make it clear what it's
referring to (and to not clash with DOTNET6_VERSION which has now been renamed
to DOTNET_VERSION).

.NET 7 is right around the corner.
2022-03-23 08:07:34 +01:00
Rolf Bjarne Kvinge 88eb5e1ac8
Rename any *OSX_SDK_VERSION variables to *MACOS_SDK_VERSION. (#13411)
This makes it easier to iterate over all the *_SDK_VERSION variables in
template code, because they're all named using the standard platform names we
use elsewhere.
2021-11-22 18:48:05 +01:00
Manuel de la Pena 4394e2ef0f
[Makefile] Prevent people from bulding in the wrong dir. (#12493)
Special paths are protected by the OS. This paths are problematic
becasue the xpcproxy_sim might not have access to them, resulting in the
simulator tests failing (the process cannot return the PID used to
launch the app).

The problem with special folders.. is that they could be or not
translated or changed so we cannot hardcode them, yet we can use a small
apple script to return the path of the ones we know about (documents,
downloads, etc), get them and check if pwd is a substring.


Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
2021-08-20 15:19:30 -04:00
Manuel de la Pena b483c26db4
[Build] Add a rule to execute the first run of Xcode. Why copy paste a command? (#11180)
* [Build] Add a rule to execute the first run. Why copy paste a command\?

* Some info about the targets.
2021-04-09 21:41:29 -04:00
Peter Collins 5c12fdfac9
[build] Use arcade dependency management tooling (#10890)
* [build] Use arcade dependency management tooling

* Apply feedback

* Apply second round of feedback

* Always make dotnet.config before trying to read it

* Debugging

* Update dependencies, trim tabs and spaces

* [dotnet] Remove the existing workload shipped with .NET and install our locally built ones.

The new version of .NET ships with our workloads, but those aren't
the workloads we want to use, so replace them with our own.

* Update .gitignores.

* Bump to 6.0.100-preview.3.21181.5

That required renaming simulator runtime packs...

* More rename for simulator packages

* moar (hopefully all)

* Bump to 6.0.100-preview.3.21201.11

This fix the issue with `Wait` that failed several tests in monotouch-tests

However it does not include the fix for AppConext.GetData on device (AOT)

Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
Co-authored-by: Sebastien Pouliot <sebastien@xamarin.com>
2021-04-02 00:02:27 -04:00
Sebastien Pouliot df6717b5c0
[build] Fix incorrect warning about CoreSimulator.framework version (#11075)
Avoid this warning when checking for required tools/dependencies

```
    You should have exactly CoreSimulator.framework version 732.18 (found 732.18
732.18). Execute './system-dependencies.sh --provision-xcode' to install the expected version.
```

Right version, but found two times ?

Because we're looking at a (now) fat framework so we get things twice

```
lipo -info /Library/Developer/PrivateFrameworks/CoreSimulator.framework/Versions/A/CoreSimulator
Architectures in the fat file: /Library/Developer/PrivateFrameworks/CoreSimulator.framework/Versions/A/CoreSimulator are: x86_64 arm64e
```

Solution ? make it uniq

Co-authored-by: Sebastien Pouliot <sebastien.pouliot@microsoft.com>
2021-04-01 23:44:18 -04:00
Rolf Bjarne Kvinge d825679d20
[system-dependencies] Only use the locally installed .NET version. (#9885)
* [system-dependencies] Only use the locally installed .NET version.

We'll soon need to install files into the dotnet directory, and we don't want
to do that to the system dotnet. So just always use a locally installed .NET.

* Rework to not treat .NET 5 as an optional/installable dependency, instead download it always (like the mono archive).

This way no manual action is necessary to get it when needed, it will be
downloaded automatically.
2020-10-16 08:23:22 +02:00
Rolf Bjarne Kvinge 41147b5a45
[system-dependencies] Remove the 'com.apple.quarantine' attribute from the downloaded dotnet sdk. (#8617) 2020-05-20 15:04:10 +02:00
Rolf Bjarne Kvinge 5834572741
Create and publish .NET NuGet packages. (#8576)
Create the various NuGet packages to support .NET 5+. The packages are
currently empty (and not very useful), but the actual content will come later.

The current set of NuGet packages are (this list is duplicated for each
platform: iOS, tvOS, watchOS and macOS):

* Microsoft.iOS.Sdk: currently contains the basic MSBuild targets files for an
  MSBuild Project SDK. Will eventually contain all the build logic. Might also
  eventually contain other tools (mlaunch, bgen, etc.), but these might also
  end up in a different package.
* Microsoft.iOS.Ref: will contain the Xamarin.iOS.dll reference assembly.
* Microsoft.iOS.Runtime.[RID]: will contain architecture-specific files
  (libxamarin*.dylib, the Xamarin.iOS.dll implementation assembly, etc.):

The NuGets built on CI are automatically published to a NuGet feed.

The versioning for the NuGet packages required a few changes: OS bumps are now
changed in Make.versions instead of Make.config (this is explained in the
files themselves as well).
2020-05-13 15:23:29 +02:00
Rolf Bjarne Kvinge 82c146bbd4
[system-dependencies] Add support for provisioning .NET 5 separately. (#8578)
* [system-dependencies] Add support for provisioning .NET 5 separately.

Add support for provisioning .NET 5 separately, and by default install it
locally (into builds/downloads) to avoid consuming a lot of disk space with
the various preview versions we'll need. A system install is still detected
and used if available.

* Use full path to the dotnet binary, since it might not be in PATH.

* [jenkins] Clean first, then provision.

Otherwise we'll clean whatever we provision locally.
2020-05-13 08:31:40 +02:00
Rolf Bjarne Kvinge 58b6a3bd09
[system-dependencies] Remove unneeded hack to ensure Xcode's first install tasks are working. (#8506)
This hack was introduced because some branches was using broken logic; all
branches we care about are now using the correct logic (it's been fixed for
over 18 months), so we can remove the hack.
2020-05-05 15:31:49 +02:00
Rolf Bjarne Kvinge 3136610ca4
Add dotnet as a configure option and provision it. (#8052)
* [configure] Add --[enable|disable]-dotnet.

And make it enabled by default on CI and disabled by default elsewhere for now
(because it makes the build significantly slower).

* [system-dependencies] Add support for provisioning .NET.

Also write a global.json in the root directory which is how we select which
.NET version to use.
2020-03-05 22:03:38 +01:00
Vincent Dondain 5e52f30c05 Bump for Xcode 11.3 beta 1 (#7431)
* Bump for Xcode 11.3 beta 1

* [system-dependencies] Make it clearer what failed on the bots.

Locally we use colors to distinguish between warnings and failures, but colors
don't show up on the bots, so use text instead.

* Verbose provisioning.

* [system-dependencies] Improve simulator checks a bit.

* Non-verbose provisioning.
2019-11-14 14:32:26 +01:00
Rolf Bjarne Kvinge 2adecee3d9
Drop the Xcode 9.4 dependency. (#7044)
* Drop the Xcode 9.4 dependency.

Also bump mono to get the removal of the mac32 binaries.

New commits in mono/mono:

* mono/mono@70d6903053 [2019-08] [merp] Use a separate program as the hang supervisor. (#16900)
* mono/mono@4bff2b6370 [offsets-tool] Install clang into the user-specific python directory.
* mono/mono@81894ec8ca Implement WriteCore and ReadCore in DeflateStream
* mono/mono@bfbf823ca1 [ci] Remove more XCODE32_DIR usages (#16964)
* mono/mono@ce01b20a4d Add net_4.8.xml to EXTRA_DIST and bump binary-reference-assemblies again
* mono/mono@7a587d7fa6 Add .NET 4.8 reference assemblies (#16912)
* mono/mono@35e454a8f6 [sdks] Remove the mac32 build. (#16936)
* mono/mono@75eb342f53 [2019-08] [System] Make FileSystemWatcher backend non-static (#16926)
* mono/mono@5881981f79 [2019-08] [mini] Add missing membars when initializing rgctx entries (#16909)
* mono/mono@6290b6cd6e Temporarily disable embedded ppdb data decompression (#16911)
* mono/mono@a0e7f9eaf2 [2019-08] [arm64_32] make "Debug Mode" work on Watch series 4 with --interpreter (#16886)
* mono/mono@6275840a7f Rename bundle identifier for the various Mono.frameworks we create for Xamarin.iOS. Fixes xamarin/xamarin-macios#7005. (#16901)
* mono/mono@25f6093283 [corlib] Fix building nunit-lite twice (#16895)
* mono/mono@7ec17ba1be [2019-08] [android sdk] Add aprofutil tool (#16884)
* mono/mono@f755f3b539 [metadata] Fix leaks when handling a few attributes (#16850)
* mono/mono@5f9a2db39b [2019-08] Fix infrequent hangs in test-runner. (#16854)
* mono/mono@f31f5ea1f1 [2019-08] [threads] do not convert NULL thread name (#16828)
* mono/mono@20308e6f87 [aot] Do not wrap tool_prefix path when calling strip (#16820)
* mono/mono@cecda47c48 [aprofutil] Add -p and -f options
* mono/mono@824cc12ac3 Bump to mono/corefx@e79cf5b
* mono/mono@b77dc06a7e [aprofutil] Install the tool correctly (#16112)
* mono/mono@1848d78d60 [aotprof-tool] Initial import of AOT profiler tool (#15384)
* mono/mono@da0086e304 [2019-08] Add RenamedEvent* to FSW sources from CoreFX (#16756)
* mono/mono@0297b21b03 [msbuild][roslyn] Bump msbuild and roslyn to pull in new versions (#16768)
* mono/mono@40631e3b9e [2019-08] [aot] move method_addresses to data.rel.so section to avoid text relocations (#16751)
* mono/mono@68b77674e2 Vtable [i] can be null so this should be check before use it. Fixes #16712
* mono/mono@4a0b4f41ed [mini] publish global patches after JitInfo has been added
* mono/mono@7a1f63fde6 [debugger][android] It was not initialising seq_points on MonoCompile on Android, so when was compiling dynamic methods, seq_points wasn't created and we got the assert when try to single step.

Diff: 29b1ac19c9..70d6903053

* [tests] Add a fat macOS dylib for testing purposes.

Add a binary version of a fat macOS dylib (because we can't create one when we
need it since we can't create 32-bit slice anymore).

It was created like this (in tests/test-libraries):

	$ cat test.m
	int theUltimateAnswer ()
	{
		return 42;
	}

	$ /Applications/Xcode94.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang test.m -olibtest.i386.dylib -shared -isysroot /Applications/Xcode94.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -framework Foundation -framework CoreLocation -lz  -arch i386
	$ lipo -create libtest.i386.dylib .libs/macos/libtest.dylib -output libtest-fat.dylib

* [tests] Adjust XM tests to XM not having fat dylibs anymore.

* [tests] Adjust product tests to some libraries not being fat anymore.

* One more test fix.
2019-09-24 13:40:18 +02:00
Rolf Bjarne Kvinge 628649a4ac [system-dependencies] Mono requires python3 to build from source now. 2019-09-16 15:21:04 +02:00
Rolf Bjarne Kvinge 303aa0a649 Merge remote-tracking branch 'origin/xcode11' into master-xcode11 2019-09-13 18:35:18 +02:00
Rolf Bjarne Kvinge c61e9b1106
[system-dependencies] Improve error message when siminstaller can't find simulators to explain what to do. (#6632) 2019-07-23 07:39:18 -07:00
Manuel de la Pena 1d0207e611
[Dependencies] Do not check for Xcode 9.4 on Catalina. (#6605) 2019-07-18 17:45:40 +02:00
Rolf Bjarne Kvinge a8014fcdc2
[system-dependencies] Use 'xip' to decompress xip files. (#6413)
Archive Utility compresses into a directory specified by one of its
preferences, so we can't really say for sure where it will put the extracted
xip.

This is of course all sorts of fun, except none of the good ones.

So use the command-line xip utility to extract the xip instead, which is
documented to extract into the current directory.

The reason we didn't use the 'xip' tool from the beginning is that when Apple first started shipping Xcode as xips, the --expand option wasn't documented.
2019-06-24 16:10:12 +02:00
Rolf Bjarne Kvinge 523349bf69 Merge remote-tracking branch 'origin/d16-2' into xcode11-bump-mono-d16-2 2019-06-20 10:27:04 +02:00
monojenkins 4ccab3326c [system-dependencies] Add support for installing the expected CoreSimulator.framework version. (#6288)
This works around FB6149048: "Xcode 11 beta 1 breaks older simulators in Xcode 10.2."

Ref: https://trello.com/c/bqkONZFo/142-fb6149048-xcode-11-beta-1-breaks-older-simulators-in-xcode-102

Backport of #6275.
2019-06-20 07:45:53 +02:00