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

878 Коммитов

Автор SHA1 Сообщение Дата
Rolf Bjarne Kvinge f0050b1f83
[dotnet] Disable support for custom runtime hosting. (#20128)
We don't need it, and it causes a trimmer warning.
2024-02-19 14:22:04 +01:00
Rolf Bjarne Kvinge 8b888f0375
[dotnet] Rename packs to contain target framework. (#19765)
This is the first step towards [multi-targeting support][1]. In order to
support multi-targeting, it must be possible to install several versions of
our packs simultaneously, and that also means that it becomes a lot easier to
visualize and work with the version we want to support if the packs were named
in a helpful way.

In particular, this PR changes the sdk, ref and runtime pack names to contain
the target framework + target platform version.

This will be the new names:

* iOS

    * Microsoft.iOS.Sdk.net8.0_17.2
    * Microsoft.iOS.Ref.net8.0_17.2
    * Microsoft.iOS.Runtime.ios-arm64.net8.0_17.2
    * Microsoft.iOS.Runtime.iossimulator-arm64.net8.0_17.2
    * Microsoft.iOS.Runtime.iossimulator-x64.net8.0_17.2

* tvOS

    * Microsoft.tvOS.Sdk.net8.0_17.2
    * Microsoft.tvOS.Ref.net8.0_17.2
    * Microsoft.tvOS.Runtime.ios-arm64.net8.0_17.2
    * Microsoft.tvOS.Runtime.iossimulator-arm64.net8.0_17.2
    * Microsoft.tvOS.Runtime.iossimulator-x64.net8.0_17.2

* Mac Catalyst

    * Microsoft.MacCatalyst.Sdk.net8.0_17.2
    * Microsoft.MacCatalyst.Ref.net8.0_17.2
    * Microsoft.MacCatalyst.Runtime.maccatalyst-x64.net8.0_17.2
    * Microsoft.MacCatalyst.Runtime.maccatalyst-arm64.net8.0_17.2

* macOS

    * Microsoft.macOS.Sdk.net8.0_14.2
    * Microsoft.macOS.Ref.net8.0_14.2
    * Microsoft.macOS.Runtime.osx-x64.net8.0_14.2
    * Microsoft.macOS.Runtime.osx-arm64.net8.0_14.2

There are two main benefits to renaming the packs:

* It becomes a lot easier to understand which versions we support when we
  support multi-targeting. For example, say we want to support:

	* net8.0-ios17.0
	* net8.0-ios17.2
	* net9.0-ios18.0

    In this case we'd ship packs for `Microsoft.iOS.Sdk.net8.0_17.0`,
    `Microsoft.iOS.Sdk.net8.0_17.2`, `Microsoft.iOS.Sdk.net9.0_18.0` (the
    exact version number for each pack wouldn't be important).

    If we didn't change the pack names, we'd need to track the exact versions
    of the Microsoft.iOS.Sdk pack, mapping them to the correct target
    framework + target platform version we want to support.

* It'll be possible to add maestro subscriptions between versions. Given the
  previous example:

	* net8.0-ios17.0
	* net8.0-ios17.2
	* net9.0-ios18.0

	The branch producing `net9.0-ios8.0` could have a maestro subscription on
	the branches producing `net7.0-ios17.0` and `net7.0-ios17.2`,
	automatically bumping the versions whenever those branches have any
	changes.

	This would be rather annoying to keep track of and bump manually.

[1]: https://github.com/xamarin/xamarin-macios/blob/main/docs/multi-target-framework.md
2024-02-19 13:14:20 +01:00
Rolf Bjarne Kvinge 9d9e5a0ca7
[dotnet] Don't build library projects multiple times for universal apps. (#19990)
Currently for universal apps we build the project once for each RuntimeIdentifier,
and each time we end up building any referenced projects as well.

It's not necessary to build referenced (library) projects on a per-RID basis, because
the RID isn't taken into account.

So optimize this:

1. Build project references in the containing build, before the RID-specific build.
   This is accomplished by adding a dependency on the ResolveReferences target (which
   also needs the BuildOnlySettings target to run first in order to actually build
   any referenced projects).

2. Set "BuildProjectReferences=false" when running the RID-specific build, so
   that any project references aren't built.

3. Also change how we override the BuildDependsOn property: we now have special
   logic for library projects, where we don't do any kind of app-building stuff,
   we only deal with resources.

4. This required adding another target dependency for _UnpackLibraryResources:
   it now depends on the BuildOnlySettings target as well (for the same reason as
   in point 1).
2024-02-07 11:05:33 +01:00
Haritha Mohan 6315e5d963
[build] Fix worktree support (#19972)
Fixes build error:

make: *** No rule to make target '../.git/HEAD', needed by
`Workloads/Microsoft.NET.Sdk.iOS/WorkloadManifest.targets'. Stop.

Refs:
https://github.com/xamarin/xamarin-macios/issues/18276
https://github.com/xamarin/xamarin-macios/pull/19240
2024-01-31 08:48:56 -08:00
Rolf Bjarne Kvinge fc7688cf8d
[dotnet] Fix typo causing universal builds to not keep any symbols when stripped. Fixes #19860. (#19900)
Fixes https://github.com/xamarin/xamarin-macios/issues/19860.
2024-01-29 20:19:11 +01:00
Rolf Bjarne Kvinge 546044fefa
[dotnet] Add warning when the TargetPlatformVersion isn't supported (#19901)
We've used to ignore the target platform version (the "17.0" part in "net8.0-ios17.0")
since our initial .NET relaese - customers could specify any valid OS version between
the minimum and maximum versions, and we'd completely ignore the value [1].

The purpose of the target platform version is to specify which bindings to choose:
"net8.0-ios17.0" would mean that the developer wants packages that have bindings
for iOS 17.0 (and earlier iOS versions, but not later iOS versions).

So saying "net8.0-ios11.0" would technically mean that the developer would want our
bindings for iOS 11.0 (and earlier iOS versions, but not later iOS versions). The
problem is that we don't ship any such thing... we shipped iOS 17.0 bindings in .NET
8, and that's it, you can't choose to build with something that does *not* have bindings
for iOS 17.0.

This will change with multi-targeting: we'll support *some* matrix of bindings. For
instance, we might want to support the OS version we shipped initial support in any
given .NET release + the latest OS version.

For example, we might want to support both of these:

* net8.0-ios17.0
* net8.0-ios17.2

This means that the target platform version (17.0/17.2) can't keep staying ignored.

There was an somewhat related issue with the `SdkSupportedTargetPlatformVersion`,
where we're now able to distinguish between old versions we no longer support and
new versions that limits the valid values for TargetPlatformVersion (see 74d83ca7e3).
We've already taken advantage of this to properly annotate every version, even in
.NET 8 (in a future service update), because the dotnet/sdk change required to understand
the new annotations (and ignore old versions in the `SdkSupportedTargetPlatformVersion`
item group) won't be shipped until .NET 9, so this won't be a breaking change in
.NET 8.

However, we'd still like to give customers a heads up that their project files need
to change, so this PR adds a warning (that tells developers what to do), and then
in .NET 9 we'll make the warning an error instead. Side note: Android is also making
an invalid target platform version an error in .NET 9: https://github.com/xamarin/xamarin-android/pull/8569.

[1]: We'd ignore the value for executable projects. It did have an effect for library
projects that were packed into NuGets: the target platform version would be stored
in the NuGet.
2024-01-25 09:23:03 +01:00
Rolf Bjarne Kvinge 74d83ca7e3
[dotnet] Differentiate between "OS version we support as TargetPlatformVersion" and "OS version we support or have supported". (#19882)
The `SdkSupportedTargetPlatformVersion` item group is used for (at least) two things:

1. Generate the `_OR_GREATER` preprocessing symbols:

bfd2919bc4/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.BeforeCommon.targets (L230-L237)

2. Validate the TargetPlatformVersion:

bfd2919bc4/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.TargetFrameworkInference.targets (L233-L246)

The problem is that these two uses aren't equivalent.

Take for example the following scenario:

We release bindings for iOS 10, and a library developer takes advantage of the
bindings for the new iOS version, while at the same time supporting
multi-targeting to older platforms:

```csharp
    #if IOS10_0_OR_GREATER
        UseNewApi ();
    #else
        UseOldApi ();
    #endif
```

Time passes, iOS 11 comes out, and we stop shipping bindings specifically for
iOS 10 (the APIs themselves would be included in the bindings for iOS 11). The
code above should continue to work, but iOS 10 is not a valid
TargetPlatformVersion anymore. However, with the current situation there's no
way to express this, because the moment we remove the "10.0" version from
SdkSupportedTargetPlatformVersion, the IOS10_0_OR_GREATER define isn't
generated anymore.

We discussed this in a meeting internally, and the suggestion that came up was
to use metadata to handle this situation, and we've decided to add the
"DefineConstantsOnly=true" metadata to items in
SdkSupportedTargetPlatformVersion that are "OS versions we support or have
supported", but not "OS versions we support as TargetPlatformVersion".

Note: we're adding this to .NET 8, but .NET will not understand the new
metadata until .NET 9, which means this won't be a breaking change until .NET
9.

In a different PR I'll add logic to warn if a project uses a
TargetPlatformVersion that is no longer valid (so that people will start
getting a warning in .NET 8 instead of getting surprised by a build error in
.NET 9).

Ref: https://github.com/dotnet/sdk/issues/38016
2024-01-23 19:17:25 +01:00
Rolf Bjarne Kvinge b1fa068fbc
[dotnet] Fix detecting if the interpreter is enabled. (#19812)
The canonical property we use for the interpreter is `MtouchInterpreter` - and
the interpreter is enabled if `MtouchInterpreter` is set to any value (the
`MtouchInterpreter` value is used to select which assemblies to interpret, the
only way to completely disable the interpreter is to not set
`MtouchInterpreter` at all).

So fix a couple of cases of wrong comparison:

* Don't use `UseInterpreter` - which is used to compute a specific value for
  `MtouchInterpreter` - because developers don't have to set `UseInterpreter`
  to enable the interpreter, they can set `MtouchInterpreter` directly.
* Don't compare `MtouchInterpreter` with `true`: that only checks if the
  assembly "true" is interpreted (which it rarely is).

Fixes https://github.com/dotnet/runtime/issues/96920.
2024-01-22 12:43:41 +01:00
Rolf Bjarne Kvinge 744902f014
Simplify argument logic in the C# scripts. (#19805)
When passing -s to the csharp binary, the remaining arguments passed to the
script will be available in the global 'Args' variable.

This way makes it easier to consume arguments in the script, since we won't
have to call Environment.GetCommandLineArgs () and then manually skip the
arguments to the native executable (which would be: the path to mono, the path
to the csharp binary, and the '-s' argument if applicable).
2024-01-15 16:51:36 +01:00
Rolf Bjarne Kvinge 47c5bbc57f
[builds] Create a separate Versions.plist.in for each .NET platform. (#19796)
In .NET the 4 platforms are 4 separate products, so it makes sense that each
Versions.plist only contains information for the corresponding platform.

This means we can share the same logic for all .NET platforms, instead of
having to special-case macOS.

It also decouples legacy logic from .NET logic, which makes it easier to
remove legacy logic when that time comes.
2024-01-12 13:51:22 +01:00
Rolf Bjarne Kvinge 1384f38c0b
[dotnet] Fix 'make install-system' to use 'dotnet workload install' instead of packages. (#19755)
Fix 'make install-system' to use 'dotnet workload install' + a rollback
file instead of packages.

This actually works...
2024-01-10 08:10:11 +01:00
Rolf Bjarne Kvinge 5b1fc67694
[dotnet] Stop using a separate default platform version. (#19754)
In theory we should define the default platform version if it's not specified
in the TFM, and this default should not change for a given .NET version:

* We release support for iOS 17.0 with .NET 8
* Apple releases iOS 18.0, we're still using .NET 8. This default continues to be iOS 17.0
* .NET 9 is shipped, and at this point we bump the default to iOS 18.0

Basically: this should be the last OS version of the platform in question when
the current major .NET version is first released to stable.

Ref: 8e6394406d/accepted/2020/net5/net5.md (os-versions)

However, this doesn't work well for Apple platforms: whenever Apple releases
new Xcode versions, our existing workloads might not be compatible with the
new Xcode. We'll of course ship updateds workload with support for the new
Xcode, but defaulting to an older target platform version would mean that
developers wouldn't get the new workload, they'd get the old one. This is
exacerbated by the fact that Apple aggressively auto-updates Xcode on
developers' machines: they might wake up one day to a broken build - the
obvious fix ("dotnet workload update") doesn't fix anything - even if we've
shipped updated workloads - because the default is to use the old one. They'd
have to manually specify the target platform version in the target platform to
get the updated workload ("net8.0-ios17.2" to use the iOS 17.2 workload
instead of "net8.0-ios", which would use the default (old/initial/17.0) .NET 8
workload) - and then update _again_ when the next Xcode comes around. At this
point the point of having a sane default value is totally out the window,
because everybody would have to specify (and continuously update) a platform
version in their project files to keep their projects building.

So we've made the decision that the default target platform version is always
the latest target platform version.
2024-01-09 09:47:07 +01:00
Rolf Bjarne Kvinge 3068610712
[msbuild/dotnet] Add support for app extensions which are xpc services. (#18295)
This was found while working on https://github.com/xamarin/xamarin-macios/issues/18242.
2024-01-03 12:41:37 +01:00
Rolf Bjarne Kvinge f4ad798deb
[dotnet] Call the _CreateAssetPackManifest target during the build. Fixes #19669. (#19681)
We're calling the _CreateAssetPackManifest target during the build for legacy
Xamarin apps, but somehow this seems to have been skipped over when
implementing .NET support.

The reason this has not showed up before is that it requires:

* OnDemand resources.
* An AdHoc provisioning profile (and a distribution certificate).

The last part makes it rather complicated to write a unit test, so this has
been verified manually.

Fixes https://github.com/xamarin/xamarin-macios/issues/19669.
2024-01-02 14:26:39 +01:00
Rolf Bjarne Kvinge cf398ed770
[dotnet] Compute the path to the Xamarin SDK root as a relative path to .NET's root directory. (#19404)
This is useful to compute the path to the Mac's Xamarin SDK from Windows: we
can compute the relative path on Windows, and then just prepend the Mac's path
to .NET.
2023-12-14 15:16:36 +01:00
Rolf Bjarne Kvinge eb3c561e7b
[msbuild] Parse --nowarn and --warnaserror from MtouchExtraArgs for .NET. (#19540) 2023-12-06 17:27:17 +01:00
Rolf Bjarne Kvinge 6169939693
[dotnet] Generate WorkloadManifest.targets for each platform using a script. (#19421)
This is easier than maintaining four different template files, also there will
be significant changes in the WorkloadManifest.targets file with the upcoming
multi-targeting changes, so this makes those changes simpler.
2023-11-13 10:36:40 +01:00
Rolf Bjarne Kvinge 65fef38e9f
[dotnet] Store the .NET version we target in a generated props file. (#19416)
This way we can avoid hardcoding the .NET version later in the build targets.
2023-11-10 12:08:24 +01:00
Rolf Bjarne Kvinge 2ec000fde2
Add special versioning rules for 'release-test/rt/' branches to have shorter versioning. (#19396)
Long versions are sometimes problematic on Windows, because of MAX_PATH
issues. Versions for release builds don't contain the pre-release part, and
are thus usually short, but pre-release versions (which include an arbitrarily
long branch name) can get too long for Windows. This is a complication when
testing a release pipeline/process: we have to use final versioning just for
testing. This isn't ideal, so we special-case branch names that start with
`release-test/rt/`:
  * Example: `iOS 15.1.123-rt` (and nothing else). This makes these versions
    exactly 3 characters longer than the release version, which is hopefully
    enough to avoid MAX_PATH issues on Windows.
2023-11-07 15:19:01 +01:00
Rolf Bjarne Kvinge bb465c38ef
[msbuild] Don't add frameworks with static libraries to Hot Restart apps. (#19300)
The main problem is that an app with unsigned executable code will fail any signing
verification, and the app won't install on device.

This is implemented by doing two changes:

1. Augment the FilterStaticFrameworks task to only filter out frameworks with
   static libraries (and thus keeping everything that's not a static framework, even
   if it's not even a framework).

2. Execute the FilterStaticFrameworks task to filter out static frameworks from
   the entire list of files to bundle in the hot restart app bundle.
2023-10-25 08:46:20 +02:00
Rolf Bjarne Kvinge 85ddcf2006
[dotnet] Remove support for MtouchArch and XamMacArch. (#19319)
When migrating Xamarin projects to .NET projects, somewhat frequently people
will leave the MtouchArch/XamMacArch properties in their project files with
old values. This won't work, since we use RuntimeIdentifier(s) now to control
the target architecture, so remove support for MtouchArch/XamMacArch, and show
an error if we detect that they're set.

This will hopefully prevent some really confusing problems, especially in the IDEs.

Example: https://github.com/xamarin/xamarin-macios/issues/19258
2023-10-25 08:33:06 +02:00
Haritha Mohan da08b89077
[build] Add support for worktree checkouts (#19240)
Was messing around with worktrees but our repo failed to build due to
not identifying the proper git directory.

Fixes #18276
2023-10-19 09:22:37 -07:00
Steve Hawley f4a0ea9ac2
[dotnet] Test integration (#18543)
Fixed an issue where the C# class name was coming in with `,
AssemblyName` tacked on the end.
Fixed an issue where a class that had an entry in the map didn't have a
`class_ptr` which was causing an NRE.
Fixed a predicate for deciding when to mark the assembly for save.

Note - for an as yet undetermined reason, the linker is not picking up
that I'm marking the assembly for save, which is why the `true` test
cases are commented out.
This fixes issue 16671 https://github.com/xamarin/xamarin-macios/issues/16671
2023-10-17 10:29:12 -04:00
Rolf Bjarne Kvinge 57f8d8522a
[dotnet/msbuild] Create directory in the ILStrip task instead of using MSBuild logic. (#19181)
The current logic doesn't work on Windows for some reason.

Also avoid extra slash in _StrippedAssemblyDirectory, because
DeviceSpecificIntermediateOutputPath already has a trailing slash.

Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1864985.
2023-10-17 07:58:50 +02:00
Rolf Bjarne Kvinge 7df4fc3274
[dotnet] Complete support for universal builds when using NativeAOT. (#19183)
We couldn't do universal builds using NativeAOT, because .NET had a sanity
check that was a bit too eager and caused unnecessary build failures. We've
now been able to add an escape hatch to that sanity check, so let's use it.

This makes universal builds using NativeAOT work, so we can also enable/add
corresponding test variations in xharness.

Also ask the runtime to allow SelfContained without a RuntimeIdentifier (the
runtime has an overeager sanity check that doesn't apply to us, so we must
skip it). Fixes #19142.

Fixes https://github.com/xamarin/xamarin-macios/issues/19142.
Fixes https://github.com/xamarin/xamarin-macios/issues/19206.
2023-10-16 10:19:55 +02:00
Alex Soto facd38c2b6
[sign] Update SignList to match mlaunch list (#19187) 2023-10-13 10:59:33 -04:00
Rolf Bjarne Kvinge b39a0f3f2a Merge remote-tracking branch 'origin/net8.0' into merge-net8.0-into-main 2023-10-11 16:40:24 +02:00
Rolf Bjarne Kvinge 50c34f31a8 Merge remote-tracking branch 'origin/net8.0-xcode15' into merge-xcode15-into-net8.0 2023-10-10 23:26:57 +02:00
Rolf Bjarne Kvinge f56a2575c3
[net8.0] Revert multi-targeting support. (#19145)
It turns out to have a few sharp edges we need to smooth out first.
2023-10-10 17:20:09 +02:00
dustin-wojciechowski a64506dd4a
Revert "[MacCatalyst] Added Default Entitlements for MacCatalyst projects" (#19125)
Reverts xamarin/xamarin-macios#18669 per discussion in MAUI about sdk
defaults.
2023-10-06 13:10:28 -07:00
Rolf Bjarne Kvinge 6a63e76e74 [net8.0-xcode15] Merge net8.0 into net8.0-xcode15. 2023-09-20 19:21:24 +02:00
Rolf Bjarne Kvinge 5f679459db
[dotnet] Work around an expectation mismatch between ILLink and library projects. Fixes #19037. (#19049)
ILLink doesn't handle library projects the way we need: the library is
automatically treated as a root assembly, with the entry point as the root.
This doesn't work, because library projects don't have an entry point.

In earlier versions of .NET (and Xamarin), we'd solved this by a custom linker
step that would manually root everything that needed to be rooted, but that
doesn't work anymore because we hit this sanity check in ILLink:

> ILLink : error IL1034: Root assembly 'MyExtension, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' does not have entry point.

Technically this happens because the library project is configured as a root
assembly, where the entry point is the root point (and in that regards the
sanity check is rather sane).

The best solution would be if we could just treat the library assembly as any
other assembly, and manually root it in our custom linker steps - but the
custom linker step we have for this kind of rooting will only iterate over
types in assemblies that are already marked somehow, and that's not
necessarily the case for app extension projects - the end result is that the
entire app extension assembly is linked away.

A close runner-up as the second best solution is to provide the API that needs
to be rooted as an xml file to the linker. This works, but we currently don't
have the infrastructure in the code to generate this xml file before running
the linker (it would be a rather major undertaking). This work is tentatively
scheduled for .NET 9 (https://github.com/xamarin/xamarin-macios/issues/17693).

So I went for the third option: set RootMode="Library" for the library
assembly. I'm not sure exactly what that means ILLink will mark, but as long
as _anything_ is marked, our custom linker step will run. This seems like an
acceptable workaround until we can implement the previous solution.

Fixes https://github.com/xamarin/xamarin-macios/issues/19037.
2023-09-20 08:24:12 +02:00
Rolf Bjarne Kvinge 79ff82d046 [net8.0-xcode15] Merge net8.0 into net8.0-xcode15. 2023-09-18 18:28:24 +02:00
Filip Navara 7f737324d4
[net8.0] Remove workarounds for SDK and runtime bugs (#18830)
Fixes #18741
Fixes #18784
2023-09-15 07:43:38 +02:00
Rolf Bjarne Kvinge 15e437aad3
[net8.0] Merge main into net8.0. (#19023) 2023-09-14 12:35:47 +02:00
Rolf Bjarne Kvinge 65f275b842
[dotnet] Load the current, not latest, sdk for the error logic in WorkloadManifest.targets. (#19011)
We might actually support a newer OS version than the one we're building for,
if we're supporting a preview version in a stable release. In this case, we
need to make sure to load the correct sdk when we run into errors, so that we
show the correct error messages.

Fixes this test failure:

    Xamarin.Tests.DotNetProjectTest.InvalidTargetPlatformVersion(MacCatalyst): Error message
    Expected string length 92 but was 87. Strings differ at index 84.
    Expected: "...ormVersion for MacCatalyst. Valid versions include:\n16.4\n17.0"
    But was: "...ormVersion for MacCatalyst. Valid versions include:\n17.0"
2023-09-14 10:15:02 +02:00
Rolf Bjarne Kvinge be6c348cfd [net8.0-xcode15] Merge net8.0 into net8.0-xcode15. 2023-09-14 07:25:58 +02:00
Rolf Bjarne Kvinge f88dc4406d [net8.0] Merge main into net8.0. 2023-09-14 07:23:52 +02:00
Rolf Bjarne Kvinge c901665f34
[net8.0] [devops] Fix boolean logic + update .NET files to sign (#18988)
* Fix boolean logic to determine whether .NET is enabled or not
* Update mlaunch to get a fix where we trim the project.
* Update the list of files that need to be signed from mlaunch.
2023-09-11 18:56:47 +02:00
Rolf Bjarne Kvinge ea8ad15db0
[dotnet] Copy the pdb for our platform assemblies to the app bundle. Fixes #11879. (#18970)
Copy the pdb for our platform assembly to the app bundle if we're in
Debug mode.

Fixes https://github.com/xamarin/xamarin-macios/issues/11879.
2023-09-11 18:36:59 +02:00
Rolf Bjarne Kvinge 9d8962c06c [net8.0] Merge main into net8.0. 2023-09-11 10:31:07 +02:00
Rolf Bjarne Kvinge de762d67cc
[dotnet] Point app extensions to any frameworks in the root app bundle. Fixes #17876. (#18913)
Put any frameworks in app extensions in the Frameworks directory in the
containing app bundle. This saves a lot of space if the same framework is used
in both an app extension and the containing project (or multiple app
extensions).

Fixes https://github.com/xamarin/xamarin-macios/issues/17876.
Fixes https://github.com/xamarin/xamarin-macios/issues/17679.
2023-09-11 09:52:54 +02:00
Rolf Bjarne Kvinge b44b57e59d
[dotnet] Make bundling the 'createdump' utility opt-in. Fixes #16189. (#18960)
Make bundling the 'createdump' utility opt-in by setting BundleCreateDump=true.

Fixes: https://github.com/xamarin/xamarin-macios/issues/16189
2023-09-11 09:52:14 +02:00
Ivan Povazan bf77022512
Simplify icudat file lookup by specifying ICU_DAT_FILE_PATH as a RuntimeHostConfigurationOption (#18914)
Fixes https://github.com/xamarin/xamarin-macios/issues/18471
2023-09-08 16:46:32 +02:00
Rolf Bjarne Kvinge 673dd5782b [net8.0-xcode15] Merge net8.0 into net8.0-xcode15. 2023-09-08 10:31:44 +02:00
Šimon Rozsíval aef2c916e9
[NativeAOT] Do not root platform assembly (#18885)
Closes #18779

Based on testing several MAUI samples, there doesn't seem to be a reason
to root the whole platform assembly anymore.
2023-09-07 08:13:02 +02:00
Rolf Bjarne Kvinge 42f523812f [dotnet] Add support for multi-targeting. 2023-09-06 11:32:54 +02:00
Rolf Bjarne Kvinge 19f30a1f06 [dotnet] Rename packs to contain target framework. 2023-09-06 11:29:16 +02:00
Rolf Bjarne Kvinge b3c869080e
Merge branch 'net8.0' into new-find-icu-data 2023-09-05 08:48:37 +02:00
Rolf Bjarne Kvinge 50071c37c9
[NativeAOT] Don't publish any *.o files that comes from NativeAOT. (#18904)
If anything we're supposed to link with *.o files, not publish them, but
since we're currently not handling any *.o files, just explicitly remove them
from the build. This avoids a warning where ComputeBundleLocation would issue
a warning about not knowing what to do with them.

Contributes towards https://github.com/xamarin/xamarin-macios/issues/18629.

---------

Co-authored-by: Ivan Povazan <55002338+ivanpovazan@users.noreply.github.com>
2023-09-05 08:07:19 +02:00