Age | Commit message (Collapse) | Author |
|
(#71682)
|
|
|
|
* Enable using the new generator attributes before the new API shapes are approved
* Disable the diagnostic that verifies that a marshaller type has the v1 attribute.
* Convert some custom type marshallers to the v2 design.
Convert as many of the marshallers as possible to their correct representation with the currently implemented feature set.
This PR does not convert marshallers that can be represented with the new design but need more features to be accurately represented.
|
|
* Define convention to include analyzers in ref pack
Fixes https://github.com/dotnet/runtime/issues/61321
Until now we required source libraries to define ProjectReferences when
an analyzer should be part of the shared framework. That strategy causes
analyzer projects to leak into the ProjectReference closure and by that
into a solution file.
As an example:
When another library references the source library that references the
analyzer, the analyzer is part of the dependency closure even though it
might not be required.
This change makes it possible to define the shared framework analyzer
projects in the NetCoreAppLibrary.props file for both the .NETCoreApp,
and the AspNetCoreApp shared framework.
Out-of-band projects which ship analyzers inside their produced package,
continue to reference the analyzers via the `AnalyzerProject` item.
* Use AnalyzerReference consistently
* Don't reference analyzer when its packaged
* Fix P2P reference
* Fix multi target roslyn component target condition
|
|
* Update generators.targets
Changes:
- Improve perf of LibraryImportGenerator condition and simplify it
- Use the same msbuild code styling as in other projects in src/libraries
- Update comments that were outdated
- Remove the item conditions for the regex source generator which doesn't
work well with the CPS (common project system) inside VS.
- Remove unnecessary property
* Update eng/generators.targets
Co-authored-by: Jeremy Barton <jbarton@microsoft.com>
* Update generators.targets
* Update generators.targets
Co-authored-by: Jeremy Barton <jbarton@microsoft.com>
|
|
* Infra clean-up to simplify auto references
* Ref project file updates
* Src project file updates
* Test project file updates
|
|
* Fix VS complaining about missing projects in slns
Remove inbox (Project-)References in out-of-band projects as these
projects already build on top of the shared framework (targeting pack).
* Update Microsoft.Extensions ref projects
* Update Microsoft.Extensions src projects
* Update graph dependencies of Microsoft.Extensions*
* Update sources that complained about Span usage
|
|
|
|
Co-authored-by: Elinor Fung <elfung@microsoft.com>
|
|
marshaller types (#65591)
|
|
|
|
|
|
|
|
detection (#65896)
* Make Is*Project properties unambiguous
Currently these properties exist which categorize projects:
- IsReferenceAssembly: The project's parent directory is 'ref'
- IsGeneratorProject: The project's parent directory is 'gen'
- IsTestProject: The project is located somewhere under a '/tests/'
directory and the project name's suffix is either
'.Tests' or '.UnitTests'.
- IsTrimmingTestProject: Same as IsTestProject but the project name's
suffix is '.TrimmingTests'.
- IsTestSupportProject: The project is located somewhere under a
'/tests/' directory and the above IsTestProject
property is false.
- UsingMicrosoftNoTargetsSdk: The project uses the NoTargets msbuild SDK
- UsingMicrosoftTraversalSdk: The project uses the Traversal msbuild SDK
- IsRuntimeAssembly: True when all above is false
- IsSourceProject: True when the project's parent directory is 'src'
The IsRuntimeAssembly and IsSourceProject properties meanings are
ambiguous and the property names aren't consistent (IsReferenceAssembly
vs IsGeneratorProject).
I'm changing the above to the following:
- **IsReferenceSourceProject: The project's parent directory is 'ref'
or the parent of the parent directory is 'ref'**
- IsGeneratorProject: The project's parent directory is 'gen'
- IsTestProject: The project is located somewhere under a '/tests/'
directory and the project name's suffix is either
'.Tests' or '.UnitTests'.
- IsTrimmingTestProject: Same as IsTestProject but the project name's
suffix is '.TrimmingTests'.
- IsTestSupportProject: The project is located somewhere under a
'/tests/' directory and the above IsTestProject
**and IsTrimmingTestProject** props are false.
- UsingMicrosoftNoTargetsSdk: The project uses the NoTargets msbuild SDK
- UsingMicrosoftTraversalSdk: The project uses the Traversal msbuild SDK
- IsSourceProject: **True when all above is false.**
* React to PR feedback
|
|
* Add RegGen to System.ComponentModel.TypeConverter.
Added to src, not to test (no test found)
* Change to targets generator enablement
* Correct RegGen for System.ComponentModel.TypeConverter
* Remove extra space
Co-authored-by: kasperk81 <83082615+kasperk81@users.noreply.github.com>
* Remove .NetF inclusion definition
* Remove implicit regex generator entrypoint
* Remove regex generator enabled variable target.
* Update eng/generators.targets
Co-authored-by: kasperk81 <83082615+kasperk81@users.noreply.github.com>
Co-authored-by: Jose Perez Rodriguez <joperezr@microsoft.com>
|
|
Split the build of shared framework and out-of-band projects so that
it's possible to just build the shard framework projects, which was
requested by the CLR teams. In the next infrastructure rollout, the
current "libs.ref+libs.src" subsets should be removed. Generate the
targeting pack with an incomplete (without shims) frameworklist as part
of the "libs.sfx" subset.
Build the shim projects after the shared framework and oob projects and
re-generate the targeting pack's frameworklist to include the shims.
Refactor the shims so that they aren't grouped anymore by generated &
manual. Instead group them by "ref" and "src" same as other libraries
in the tree which allows to reference the source project shims and read
from the ReferenceAssembly metadata.
Use ProjectReferences in traversal projects and shim projects instead
of named references that point to binplace directories (see graph below)
This allows to build parts of the product dynamically, i.e. the shim
projects, apicompat.proj, sfx.proj and oob.proj.
|
|
|
|
* private assemblies moved from Internal to System Runtime.CompilerServices
* reformat existing unsafe vm intrinsics
* implement Copy, CopyBlock, CopyBlockUnaligned, InitBlock, InitBlockUnaligned, Unbox, Add, Subtract, SubtractByteOffset
* remove System.Runtime.CompilerServices.Unsafe il project and replace with forward only cs project
* change all ilproj references to csproj
* remove nativeaot Unsafe
* add conditional package reference for S.R.CS.Unsafe on netcoreapp 6.0
* regenerate solutions
* mono interp
* [mono][interp] Implement Copy and Unbox intrinsics
* [mono][jit] Implement Copy and Unbox intrinsics
Co-authored-by: Vlad Brezae <brezaevlad@gmail.com>
|
|
|
|
Co-authored-by: Aaron Robinson <arobins@microsoft.com>
|
|
we use the RTM sdk. (#62156)
Co-authored-by: Andy Gocke <andy@commentout.net>
|
|
|
|
System.Runtime.CompilerServices.Unsafe (#61704)
|
|
System.Diagnostics.Process, System.Diagnostics.Process, System.Diagnostics.FileVersionInfo, System.Runtime.InteropServices.RuntimeInformation (#61532)
|
|
* Remove all DLLIMPORTGENERATOR_ENABLED usage.
* Explicitly set EnableDllImportGenerator to true in test project.
|
|
|
|
GeneratedDllImport (#61184)
* Enable DllImport generator for all source projects.
* Convert OleDb to only use GeneratedDllImport.
* Update source generator to distinguish between "no marshalling info"
which can cause a failure vs "missing support" which enables us to
fallback to the marshalling forwarder.
* Remove unused DllImports.
* Reuse existing P/Invoke definitions.
|
|
|
|
This fixes an issue where a project that targets net7.0-windows accidentally ends up getting an output path pointing to the wrong directory for Microsoft.Interop.SourceGeneration.dll, which causes us to hit https://github.com/dotnet/roslyn/issues/56442.
|
|
regeneration).
Move System.Runtime.InteropServices unit tests to a subdirectory.
|
|
|
|
|
|
|