feat: add custom props/targets to customize project build#3195
Open
filzrev wants to merge 1 commit into
Open
Conversation
43598ba to
750d31b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR add infrastructure to customize build with props/targets on CsProj based toolchain.
Background
Existing implementation have following limitations.
ImportDirectoryBuildProps/ImportDirectoryBuildTargetsare disabled.So there is no way to use custom setting when build original benchmark project.
/p:command line parameter. it's handled as global property and it's applied to all dependent projects.It need a way to set MsBuild property to specific project.
What's changed in this PR
1. Add custom props/targets template files
Following template files are added. (Currently, no settings are contained)
These files expected to be used for following purposes.
2.
GeneratorBase.csAdd
GenerateCustomBuildHooksAsyncvirtual API and invoke onGenerateProjectAsync.This API is used for generate custom props/targets files that are used on project build.
3.
CsProjGenerator.cs.csAdd
GenerateCustomBuildHooksAsyncAPI implementation.Additionally, some fixed project names are refactored to constant field.
4. Other
Templates/*.txtproject templatesAdd import for props/targets and apply code formatter.