From 07ae197db5a3ee08b7b146571bd70ab731c4275e Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Mon, 19 Jun 2023 23:27:38 +0200 Subject: [PATCH] Use analyzers from targeting pack for NetCoreAppCurrent (#87726) * Use analyzers from targeting pack for NetCoreAppCurrent Fixes that analyzer failures didn't show-up in #74897 Add analyzers to the frameworklist that OOB projects in src/libraries use, and only auto ProjectReference the analyzers in generators.targets when not using the analyzers from the targeting pack. Also move the generator projects related code into a separate file. Continuation of https://github.com/dotnet/runtime/pull/75093 * Fix project build * Add missing reference to Regex tests * Add missing generators for netfx build * Fix paht in test project * Fix typo * Disable runtime marshalling for SharedTypes.csproj * Disable runtime marshalling for NativeExports.csproj --- Directory.Build.targets | 31 ++++++--------- docs/coding-guidelines/project-guidelines.md | 2 +- eng/generatorProjects.targets | 34 ++++++++++++++++ eng/generators.targets | 39 ++++++++----------- eng/targetingpacks.targets | 6 ++- src/libraries/Directory.Build.targets | 2 +- .../Microsoft.NET.WebAssembly.Webcil.csproj | 2 + .../src/System.Data.Odbc.csproj | 7 ---- .../src/System.Data.OleDb.csproj | 6 --- .../tests/System.Memory.Data.Tests.csproj | 2 +- ...stem.Net.Http.Json.Functional.Tests.csproj | 9 ++++- ...ropServices.JavaScript.Legacy.Tests.csproj | 2 - ...me.InteropServices.JavaScript.Tests.csproj | 5 --- .../ComInterfaceGenerator.Tests.csproj | 8 +--- .../Directory.Build.props | 7 ---- .../NativeExports/NativeExports.csproj | 1 + .../TestAssets/SharedTypes/SharedTypes.csproj | 4 ++ .../tests/System.Runtime.Tests.csproj | 2 - .../System.Text.Json.TestLibrary.targets | 9 +++-- ...m.Text.Json.SourceGeneration.Tests.targets | 1 + .../System.Text.Json.Tests.csproj | 2 +- ...ystem.Text.RegularExpressions.Tests.csproj | 2 +- src/libraries/frameworklist.targets | 8 +++- src/libraries/oob.proj | 2 + src/libraries/sfx.proj | 2 +- src/mono/sample/mbr/browser/WasmDelta.csproj | 5 --- src/mono/sample/wasm/Directory.Build.props | 4 -- .../Console/Wasm.Console.Bench.Sample.csproj | 6 --- .../Wasm.Browser.Bench.Sample.csproj | 6 --- .../tests/debugger-test/debugger-test.csproj | 2 - .../WebAssembly/Directory.Build.props | 2 - 31 files changed, 103 insertions(+), 117 deletions(-) create mode 100644 eng/generatorProjects.targets delete mode 100644 src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Tests/Directory.Build.props diff --git a/Directory.Build.targets b/Directory.Build.targets index 88c4fb80d3c..7e26eef0a49 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -12,6 +12,7 @@ + @@ -115,26 +116,6 @@ - - - <_analyzerPath>analyzers/dotnet - <_analyzerPath Condition="'$(AnalyzerRoslynVersion)' != ''">$(_analyzerPath)/roslyn$(AnalyzerRoslynVersion) - <_analyzerPath Condition="'$(AnalyzerLanguage)' != ''">$(_analyzerPath)/$(AnalyzerLanguage) - - - - - <_AnalyzerPackFile Include="@(_BuildOutputInPackage->WithMetadataValue('TargetFramework', 'netstandard2.0'))" IsSymbol="false" /> - <_AnalyzerPackFile Include="@(_TargetPathsToSymbols->WithMetadataValue('TargetFramework', 'netstandard2.0'))" IsSymbol="true" /> - <_AnalyzerPackFile PackagePath="$(_analyzerPath)/%(TargetPath)" /> - - - - - + + + <_targetingPackAnalyzerReferenceWithProjectName Include="@(Analyzer->WithMetadataValue('ExternallyResolved', 'true')->Metadata('Filename'))" + OriginalIdentity="%(Identity)" /> + <_targetingPackIncludedAnalyzerReferenceWithProjectName Include="@(_targetingPackAnalyzerReferenceWithProjectName)" + Exclude="@(_targetingPackReferenceExclusion)" /> + <_targetingPackExcludedAnalyzerReferenceWithProjectName Include="@(_targetingPackAnalyzerReferenceWithProjectName)" + Exclude="@(_targetingPackIncludedAnalyzerReferenceWithProjectName)" /> + + + + <_AnalyzerPackFile Include="@(_BuildOutputInPackage->WithMetadataValue('TargetFramework', 'netstandard2.0'))" IsSymbol="false" /> + <_AnalyzerPackFile Include="@(_TargetPathsToSymbols->WithMetadataValue('TargetFramework', 'netstandard2.0'))" IsSymbol="true" /> + <_AnalyzerPackFile PackagePath="$(_analyzerPath)/%(TargetPath)" /> + + + + + + \ No newline at end of file diff --git a/eng/generators.targets b/eng/generators.targets index 64aa5d6c95c..365c8ad14dd 100644 --- a/eng/generators.targets +++ b/eng/generators.targets @@ -1,4 +1,5 @@ + true @@ -13,7 +14,7 @@ AnyHaveMetadataValue('Identity', 'System.Runtime.InteropServices')) - ) or - ( - '@(ProjectReference)' != '' and - @(ProjectReference->AnyHaveMetadataValue('Identity', '$(CoreLibProject)')) + '$(DisableImplicitFrameworkReferences)' == 'true' and + ( + '@(Reference->AnyHaveMetadataValue('Identity', 'System.Runtime.InteropServices'))' == 'true' or + '@(ProjectReference->AnyHaveMetadataValue('Identity', '$(CoreLibProject)'))' == 'true' + ) ) )" /> @@ -61,18 +60,14 @@ - - - - + OutputItemType="Analyzer" + Condition="@(EnabledGenerators->AnyHaveMetadataValue('Identity', 'LibraryImportGenerator'))" /> + OutputItemType="Analyzer" + Condition="@(EnabledGenerators->AnyHaveMetadataValue('Identity', 'ComInterfaceGenerator'))" /> true - - - + diff --git a/eng/targetingpacks.targets b/eng/targetingpacks.targets index 14ceef19b70..b3ad8560d63 100644 --- a/eng/targetingpacks.targets +++ b/eng/targetingpacks.targets @@ -129,12 +129,14 @@ + + + Condition="'%(ResolvedTargetingPack.RuntimeFrameworkName)' == '$(LocalFrameworkOverrideName)'" /> diff --git a/src/libraries/Directory.Build.targets b/src/libraries/Directory.Build.targets index 8e000b5f4d7..a97fa3de8c6 100644 --- a/src/libraries/Directory.Build.targets +++ b/src/libraries/Directory.Build.targets @@ -90,7 +90,7 @@ - diff --git a/src/libraries/Microsoft.NET.WebAssembly.Webcil/src/Microsoft.NET.WebAssembly.Webcil.csproj b/src/libraries/Microsoft.NET.WebAssembly.Webcil/src/Microsoft.NET.WebAssembly.Webcil.csproj index 6c66737e553..dee9811870c 100644 --- a/src/libraries/Microsoft.NET.WebAssembly.Webcil/src/Microsoft.NET.WebAssembly.Webcil.csproj +++ b/src/libraries/Microsoft.NET.WebAssembly.Webcil/src/Microsoft.NET.WebAssembly.Webcil.csproj @@ -6,6 +6,8 @@ true true false + + false diff --git a/src/libraries/System.Data.Odbc/src/System.Data.Odbc.csproj b/src/libraries/System.Data.Odbc/src/System.Data.Odbc.csproj index 56bcf649fcd..179d48f4b97 100644 --- a/src/libraries/System.Data.Odbc/src/System.Data.Odbc.csproj +++ b/src/libraries/System.Data.Odbc/src/System.Data.Odbc.csproj @@ -138,13 +138,6 @@ System.Data.Odbc.OdbcTransaction Link="Common\System\Runtime\InteropServices\HandleRefMarshaller.cs" /> - - - - diff --git a/src/libraries/System.Data.OleDb/src/System.Data.OleDb.csproj b/src/libraries/System.Data.OleDb/src/System.Data.OleDb.csproj index 18323cfaa0d..bb549009216 100644 --- a/src/libraries/System.Data.OleDb/src/System.Data.OleDb.csproj +++ b/src/libraries/System.Data.OleDb/src/System.Data.OleDb.csproj @@ -153,10 +153,4 @@ System.Data.OleDb.OleDbTransaction - - - diff --git a/src/libraries/System.Memory.Data/tests/System.Memory.Data.Tests.csproj b/src/libraries/System.Memory.Data/tests/System.Memory.Data.Tests.csproj index a2eb4ed1d56..b491d2539a0 100644 --- a/src/libraries/System.Memory.Data/tests/System.Memory.Data.Tests.csproj +++ b/src/libraries/System.Memory.Data/tests/System.Memory.Data.Tests.csproj @@ -12,7 +12,7 @@ - + diff --git a/src/libraries/System.Net.Http.Json/tests/FunctionalTests/System.Net.Http.Json.Functional.Tests.csproj b/src/libraries/System.Net.Http.Json/tests/FunctionalTests/System.Net.Http.Json.Functional.Tests.csproj index 20aff79b1d8..fdc00db7ae3 100644 --- a/src/libraries/System.Net.Http.Json/tests/FunctionalTests/System.Net.Http.Json.Functional.Tests.csproj +++ b/src/libraries/System.Net.Http.Json/tests/FunctionalTests/System.Net.Http.Json.Functional.Tests.csproj @@ -1,16 +1,20 @@ + $(NetCoreAppCurrent);$(NetFrameworkCurrent) + + + @@ -23,11 +27,14 @@ + - + + + diff --git a/src/libraries/System.Runtime.InteropServices.JavaScript/tests/System.Runtime.InteropServices.JavaScript.Legacy.UnitTests/System.Runtime.InteropServices.JavaScript.Legacy.Tests.csproj b/src/libraries/System.Runtime.InteropServices.JavaScript/tests/System.Runtime.InteropServices.JavaScript.Legacy.UnitTests/System.Runtime.InteropServices.JavaScript.Legacy.Tests.csproj index e3d9f5609c7..41aaf18747b 100644 --- a/src/libraries/System.Runtime.InteropServices.JavaScript/tests/System.Runtime.InteropServices.JavaScript.Legacy.UnitTests/System.Runtime.InteropServices.JavaScript.Legacy.Tests.csproj +++ b/src/libraries/System.Runtime.InteropServices.JavaScript/tests/System.Runtime.InteropServices.JavaScript.Legacy.UnitTests/System.Runtime.InteropServices.JavaScript.Legacy.Tests.csproj @@ -32,7 +32,5 @@ - - diff --git a/src/libraries/System.Runtime.InteropServices.JavaScript/tests/System.Runtime.InteropServices.JavaScript.UnitTests/System.Runtime.InteropServices.JavaScript.Tests.csproj b/src/libraries/System.Runtime.InteropServices.JavaScript/tests/System.Runtime.InteropServices.JavaScript.UnitTests/System.Runtime.InteropServices.JavaScript.Tests.csproj index b3f923ae5c2..13a08edcbf2 100644 --- a/src/libraries/System.Runtime.InteropServices.JavaScript/tests/System.Runtime.InteropServices.JavaScript.UnitTests/System.Runtime.InteropServices.JavaScript.Tests.csproj +++ b/src/libraries/System.Runtime.InteropServices.JavaScript/tests/System.Runtime.InteropServices.JavaScript.UnitTests/System.Runtime.InteropServices.JavaScript.Tests.csproj @@ -22,9 +22,4 @@ - - - - - diff --git a/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Tests/ComInterfaceGenerator.Tests.csproj b/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Tests/ComInterfaceGenerator.Tests.csproj index 88114bc4d06..c01c4554f8a 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Tests/ComInterfaceGenerator.Tests.csproj +++ b/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Tests/ComInterfaceGenerator.Tests.csproj @@ -1,13 +1,10 @@ + $(NetCoreAppCurrent) - false - Preview true - true - - false true + true @@ -16,7 +13,6 @@ - diff --git a/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Tests/Directory.Build.props b/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Tests/Directory.Build.props deleted file mode 100644 index fa9c3a4001d..00000000000 --- a/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Tests/Directory.Build.props +++ /dev/null @@ -1,7 +0,0 @@ - - - - - true - - diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/NativeExports/NativeExports.csproj b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/NativeExports/NativeExports.csproj index 515dd243036..b5763ece685 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/NativeExports/NativeExports.csproj +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/NativeExports/NativeExports.csproj @@ -20,6 +20,7 @@ + + diff --git a/src/libraries/sfx.proj b/src/libraries/sfx.proj index e0d781ca85f..1f961cf6f2b 100644 --- a/src/libraries/sfx.proj +++ b/src/libraries/sfx.proj @@ -11,12 +11,12 @@ SharedFrameworkAssembly + - diff --git a/src/mono/sample/mbr/browser/WasmDelta.csproj b/src/mono/sample/mbr/browser/WasmDelta.csproj index ff2698061c8..f040a672401 100644 --- a/src/mono/sample/mbr/browser/WasmDelta.csproj +++ b/src/mono/sample/mbr/browser/WasmDelta.csproj @@ -56,9 +56,4 @@ - - - - - diff --git a/src/mono/sample/wasm/Directory.Build.props b/src/mono/sample/wasm/Directory.Build.props index a5af908c5fe..ee667c57c94 100644 --- a/src/mono/sample/wasm/Directory.Build.props +++ b/src/mono/sample/wasm/Directory.Build.props @@ -33,10 +33,6 @@ - - - - diff --git a/src/mono/sample/wasm/browser-bench/Console/Wasm.Console.Bench.Sample.csproj b/src/mono/sample/wasm/browser-bench/Console/Wasm.Console.Bench.Sample.csproj index 17ad0810312..d43314d4b31 100644 --- a/src/mono/sample/wasm/browser-bench/Console/Wasm.Console.Bench.Sample.csproj +++ b/src/mono/sample/wasm/browser-bench/Console/Wasm.Console.Bench.Sample.csproj @@ -19,10 +19,4 @@ - - - - diff --git a/src/mono/sample/wasm/browser-bench/Wasm.Browser.Bench.Sample.csproj b/src/mono/sample/wasm/browser-bench/Wasm.Browser.Bench.Sample.csproj index 2292a242731..aa763adaaca 100644 --- a/src/mono/sample/wasm/browser-bench/Wasm.Browser.Bench.Sample.csproj +++ b/src/mono/sample/wasm/browser-bench/Wasm.Browser.Bench.Sample.csproj @@ -20,10 +20,4 @@ - - - - diff --git a/src/mono/wasm/debugger/tests/debugger-test/debugger-test.csproj b/src/mono/wasm/debugger/tests/debugger-test/debugger-test.csproj index e9d4067311a..632550798d5 100644 --- a/src/mono/wasm/debugger/tests/debugger-test/debugger-test.csproj +++ b/src/mono/wasm/debugger/tests/debugger-test/debugger-test.csproj @@ -115,8 +115,6 @@ - - diff --git a/src/tests/FunctionalTests/WebAssembly/Directory.Build.props b/src/tests/FunctionalTests/WebAssembly/Directory.Build.props index 3b9e4d47c94..3eabd3de6b4 100644 --- a/src/tests/FunctionalTests/WebAssembly/Directory.Build.props +++ b/src/tests/FunctionalTests/WebAssembly/Directory.Build.props @@ -13,8 +13,6 @@ - -