|
10 | 10 | <!-- If the current project is not System.Private.CoreLib, we enable the DllImportGenerator source generator |
11 | 11 | when the project is a C# source project that either: |
12 | 12 | - references System.Private.CoreLib, or |
13 | | - - references the following assemblies: |
14 | | - - System.Runtime.InteropServices |
15 | | - - System.Runtime.CompilerServices.Unsafe |
16 | | - - System.Memory --> |
| 13 | + - references System.Runtime.InteropServices --> |
17 | 14 | <EnabledGenerators Include="DllImportGenerator" |
18 | 15 | Condition="'$(EnableDllImportGenerator)' == '' |
19 | 16 | and '$(IsFrameworkSupportFacade)' != 'true' |
20 | 17 | and '$(IsSourceProject)' == 'true' |
21 | 18 | and '$(MSBuildProjectExtension)' == '.csproj' |
22 | 19 | and ( |
23 | 20 | ('@(Reference)' != '' |
24 | | - and @(Reference->AnyHaveMetadataValue('Identity', 'System.Runtime.InteropServices')) |
25 | | - and (@(Reference->AnyHaveMetadataValue('Identity', 'System.Runtime.CompilerServices.Unsafe')) |
26 | | - or ('@(ProjectReference)' != '' |
27 | | - and @(ProjectReference->AnyHaveMetadataValue('Identity', $([MSBuild]::NormalizePath('$(LibrariesProjectRoot)', 'System.Runtime.CompilerServices.Unsafe', 'src', 'System.Runtime.CompilerServices.Unsafe.ilproj')))))) |
28 | | - and @(Reference->AnyHaveMetadataValue('Identity', 'System.Memory'))) |
| 21 | + and @(Reference->AnyHaveMetadataValue('Identity', 'System.Runtime.InteropServices'))) |
29 | 22 | or ('@(ProjectReference)' != '' |
30 | 23 | and @(ProjectReference->AnyHaveMetadataValue('Identity', '$(CoreLibProject)'))))" /> |
31 | 24 | <EnabledGenerators Include="DllImportGenerator" |
|
45 | 38 |
|
46 | 39 | <!-- Only add the following files if we are on the latest TFM (that is, net7). --> |
47 | 40 | <Compile Condition="'$(NetCoreAppCurrentTargetFrameworkMoniker)' == '$(TargetFrameworkMoniker)'" Include="$(LibrariesProjectRoot)Common\src\System\Runtime\InteropServices\GeneratedMarshallingAttribute.cs" /> |
48 | | - <Compile Condition="'$(NetCoreAppCurrentTargetFrameworkMoniker)' == '$(TargetFrameworkMoniker)'" Include="$(LibrariesProjectRoot)Common\src\System\Runtime\InteropServices\ArrayMarshaller.cs" /> |
| 41 | + |
| 42 | + <!-- Only add the following files if we are on the latest TFM (that is, net7) and the project is SPCL or has references to System.Runtime.CompilerServices.Unsafe and System.Memory --> |
| 43 | + <Compile Condition="'$(NetCoreAppCurrentTargetFrameworkMoniker)' == '$(TargetFrameworkMoniker)' |
| 44 | + and ( |
| 45 | + '$(MSBuildProjectName)' == 'System.Private.CoreLib' |
| 46 | + or '$(EnableDllImportGenerator)' == 'true' |
| 47 | + or ('@(Reference)' != '' |
| 48 | + and (@(Reference->AnyHaveMetadataValue('Identity', 'System.Runtime.CompilerServices.Unsafe')) |
| 49 | + or ('@(ProjectReference)' != '' |
| 50 | + and @(ProjectReference->AnyHaveMetadataValue('Identity', $([MSBuild]::NormalizePath('$(LibrariesProjectRoot)', 'System.Runtime.CompilerServices.Unsafe', 'src', 'System.Runtime.CompilerServices.Unsafe.ilproj')))))) |
| 51 | + and @(Reference->AnyHaveMetadataValue('Identity', 'System.Memory'))) |
| 52 | + or ('@(ProjectReference)' != '' |
| 53 | + and @(ProjectReference->AnyHaveMetadataValue('Identity', '$(CoreLibProject)'))))" Include="$(LibrariesProjectRoot)Common\src\System\Runtime\InteropServices\ArrayMarshaller.cs" /> |
49 | 54 | </ItemGroup> |
50 | 55 |
|
51 | 56 | <Target Name="ConfigureGenerators" |
|
0 commit comments