mirror of
https://github.com/VSadov/Satori.git
synced 2025-06-12 02:30:29 +09:00

* Work in progress: new Sdk that selects mono runtime components * Add props and targets description to the components doc * condition the _MonoRuntimeAvailableComponents by RuntimeIdentifier * [cmake] Write a component-manifest.props file during build If we're not building a mono aot cross compiler, generate a component-manifest.props file in artifacts/obj/mono/<host>/ that indicates if the host will use static or dynamic components, and a list of the available components, and the properties for constructing their names. * Build Microsoft.NETCore.App.Runtime.Mono.<RID>.Sdk shared framework nuget It seems to also generate a symbols nuget. And in the nuget there's a tools/mono-sdk-what-is-this.deps.json file from the SharedFrameworkHostFileNameOverride property. It would be nice to exclude that stuff. * put the compoonent-manifest.targets into the Sdk * delete WIP in mono/nuget/ * fixup static component names in component-manifest.targets * delete fixed fixme * add missing $ * fix whitespace * [cmake] switch to configure_file instead of file(CONFIGURE) * add missing trailing slashes in .props.in file * Add new Sdk packs to the workload manifest * rework component-manifest.targets to use ItemGroups; move to new SDK * Rename shared framework to Microsoft.NETCore.App.Runtime.Mono.<RID>.Props.Sdk And only include component-manifest.props, not the targets * Update manifest to include the new Props.Sdk and MonoTargets.Sdk * Move RuntimeConfigParserTask into Microsoft.NET.Runtime.MonoTargets.Sdk Consolidate all platform-independent tasks and targets into a single Sdk * Add iossimulator-x86 props * update components design doc * Fix typo * improve docs * Add _MonoRuntimeComponentDontLink target output * Drop component-manifest.props into runtime pack build/ directory Remove from the Microsoft.NETCore.App.Mono.Props.Sdk workload nuget * remove Microsoft.NETCore.App.Mono.Props.Sdk * Import component-manifest.props from the runtime pack Move the MonoTargets.Sdk import to each target platform that we support * Fix typos Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com> * Apply suggestions from code review Co-authored-by: Ankit Jain <radical@gmail.com> * Add JsonToItemsTaskFactory * fix whitespace * Do some validation earlier in _MonoComputeAvailableComponentDefinitions * Read component-manifest.json using the JsonToItemsTaskFactory and bundle it in Microsoft.NET.Runtime.MonoTargets.Sdk * remove ResolvedRuntimePack import from WorkloadManifest.targets it's too early, and we have the JsonToItemsTaskFactory now to read the manifest * Generate component-manifest.json in CMakeLists.txt * Fix some copy-paste nits * Use RuntimeFlavor==mono for runtime pack build directory instead of TargetsMobile. We want the build files (mono-components.json) in every mono runtime pack, not just on mobile targets * Apply suggestions from code review Co-authored-by: Ankit Jain <radical@gmail.com> * rename component-manifest to RuntimeComponentManifest * fixup nullability annotations * fix whitespace * fix formatting * Misc fixes to JsonToItemsTaskFactory * Rename MonoRuntimeComponentManifestReadTask from MonoRuntimeComponentsReadManifestTask * undo nullability annotation Build doesn't like it for some reason (probably net472) * fix incorrect task parameter name * Remove Identity metadata from dictionary at json parsing time Also improve nullability a bit by making the properties immutable * Throw correct json deserializer exceptions * Catch JsonException in an async function We get nice error messages now like ``` src/mono/nuget/Microsoft.NET.Runtime.MonoTargets.Sdk/Sdk/RuntimeComponentManifest.targets(8,5): error : Failed to deserialize json from file 'artifacts/bin/mono/iOSSimulator.x64.Release/build/RuntimeComponentManifest.json', JSON Path: $.items._MonoRuntimeAvailableComponents[2], Line: 14, Position: 1 [component-manifest.sample.proj] src/mono/nuget/Microsoft.NET.Runtime.MonoTargets.Sdk/Sdk/RuntimeComponentManifest.targets(8,5): error : JsonException: The JSON value could not be converted to System.Collections.Generic.Dictionary`2[System.String,System.String]. Path: $.identity | LineNumber: 0 | BytePositionInLine: 16. Path: $.items._MonoRuntimeAvailableComponents[2] | LineNumber: 14 | BytePositionInLine: 1. [component-manifest.sample.proj] src/mono/nuget/Microsoft.NET.Runtime.MonoTargets.Sdk/Sdk/RuntimeComponentManifest.targets(8,5): error : InvalidOperationException: Cannot get the value of a token type 'Number' as a string. [component-manifest.sample.proj] src/mono/nuget/Microsoft.NET.Runtime.MonoTargets.Sdk/Sdk/RuntimeComponentManifest.targets(8,5): error : [component-manifest.sample.proj] ``` * fixup comments Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com> Co-authored-by: Ankit Jain <radical@gmail.com>
32 lines
1.7 KiB
XML
32 lines
1.7 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
<PropertyGroup>
|
|
<TargetFrameworks>$(TargetFrameworkForNETCoreTasks);$(TargetFrameworkForNETFrameworkTasks)</TargetFrameworks>
|
|
<OutputType>Library</OutputType>
|
|
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
|
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
|
|
<Nullable>enable</Nullable>
|
|
<!-- Ignore nullable warnings on net4* -->
|
|
<!-- NoWarn Condition="$(TargetFramework.StartsWith('net4'))">$(NoWarn),CS8604,CS8602</NoWarn -->
|
|
</PropertyGroup>
|
|
<ItemGroup>
|
|
<PackageReference Include="Microsoft.Build" Version="$(RefOnlyMicrosoftBuildVersion)" />
|
|
<PackageReference Include="Microsoft.Build.Framework" Version="$(RefOnlyMicrosoftBuildFrameworkVersion)" />
|
|
<PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(RefOnlyMicrosoftBuildTasksCoreVersion)" />
|
|
<PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(RefOnlyMicrosoftBuildUtilitiesCoreVersion)" />
|
|
<PackageReference Include="System.Reflection.Metadata" Version="$(SystemReflectionMetadataVersion)" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<Compile Include="JsonToItemsTaskFactory.cs" />
|
|
</ItemGroup>
|
|
|
|
<!-- GetFilesToPackage assists to place `JsonToItemsTaskFactory.dll` in a NuGet package in Microsoft.NET.Runtime.MonoTargets.Sdk.pkgproj for external use -->
|
|
<Target Name="GetFilesToPackage" Returns="@(FilesToPackage)">
|
|
<ItemGroup>
|
|
<_PublishFramework Remove="@(_PublishFramework)" />
|
|
<_PublishFramework Include="$(TargetFrameworks)" />
|
|
|
|
<FilesToPackage Include="$(OutputPath)%(_PublishFramework.Identity)\$(AssemblyName).dll" TargetPath="tasks\%(_PublishFramework.Identity)" />
|
|
</ItemGroup>
|
|
</Target>
|
|
|
|
</Project>
|