|
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