Adding missing Configurations.props for refs and fixing the existing ones#15291
Adding missing Configurations.props for refs and fixing the existing ones#15291joperezr merged 5 commits intodotnet:masterfrom
Conversation
|
@tarekgh With these changes, building |
|
@weshaggard let me know if these changes are more or less what you had in mind, and if so I'll go ahead and start working on adding the right configurations to the implementation projects. |
|
LGTM |
| <BuildConfigurations> | ||
| netstandard; | ||
| netcoreapp; | ||
| uap; |
There was a problem hiding this comment.
With these we should also clean out the netcoreapp #ifdef's from the project and source files.
|
Yes this is along the lines of what I was expecting. You should also go through and clean out the #ifdefs. @ericstj should we add a default define for each configuration so it is present for each build config automatically? |
Done with 904aa39 |
| <TargetingPackDir Include="$(RefPath)" /> | ||
| <TargetingPackDir Condition="'$(IsNETCoreAppRef)' == 'true'" Include="$(BinDir)netcoreapp\pkg\ref" /> | ||
| </ItemGroup> | ||
| <ItemGroup Condition="'$(NuGetTargetMoniker)' == '' Or $(NuGetTargetMoniker.Contains('UAP'))"> |
There was a problem hiding this comment.
Just to clarify, if '$(NuGetTargetMoniker)' == '', then the TargetingPackDir includes both $(RefPath) and $(RefRootPath)uap/?
There was a problem hiding this comment.
RefPath should already be set to $(RefRootPath)uap so we shouldn't need to add this. Also this is going to cause issues for tests which blindly take *.dll from all the TargetingPackDir's
There was a problem hiding this comment.
'$(NuGetTargetMoniker)' == '' part of the condition was actually copy/pasted by mistake, the only condition that should be there is the UAP one. @weshaggard RefPath is not set to UAP since in dir.props it gets initialized to netcoreapp, so perhaps the change has to go there instead. I'll remove this small change on the file and try to figure out a better way to calculate this.
There was a problem hiding this comment.
Ah yes I forget we hardcoded that. We do need to move to a place where we compute that variable based on the BuildConfiguration.
There was a problem hiding this comment.
BuildConfiguration or Configuration? I'd imagine that it should be based off of Configuration, in which case it can just be a derived property in the data model.
There was a problem hiding this comment.
No this one should be based on BuildConfiguration, as we want to consistently create the targeting pack folders per BuildConfiguration. Similar to the runtime folders.
There was a problem hiding this comment.
I think that's broken. Consider I build a project with only a netstandard configuration for both BuildConfiguration netcoreapp and uap: separate vertical builds on same machine. It will reuse the same intermediate/bin directories (per design) but with different refs we'll potentially have different assemblies.
There was a problem hiding this comment.
I'm not sure I follow. It will be the same assembly just loaded from a different ref directory. The entire idea is that we want an easy reference resolution from flat targeting pack for each vertical BuildConfiguration and not have to try and add a bunch of logic to pick the correct reference for every library. We aren't in the contract store or nuget resolution world when we build a vertical. To resolve a Reference you are only looking in one targeting pack directory.
| <PropertyGroup> | ||
| <BuildConfigurations> | ||
| netcoreapp; | ||
| uap; |
There was a problem hiding this comment.
I don't think this one is supported on UAP.
There was a problem hiding this comment.
I believe it is, by looking at some pre-dev/eng packages it seems to have a netstandard1.3 reference assembly.
| <PropertyGroup> | ||
| <BuildConfigurations> | ||
| netcoreapp; | ||
| uap; |
There was a problem hiding this comment.
What do you think our best way to figure out uap support?
There was a problem hiding this comment.
Look at existing pkgproj, or package reports from pre-dev/eng build.
| <BuildConfigurations> | ||
| netcoreapp; | ||
| netstandard1.0; | ||
| <!-- portable_net40+sl4+win8+wp8-Windows_NT; Looks like our filtering mechanism doesn't understand this targetgroup. Do we even need it? --> |
There was a problem hiding this comment.
Yes we need it. Please add to data model.
| <PropertyGroup> | ||
| <BuildConfigurations> | ||
| netcoreapp; | ||
| netstandard1.0; |
There was a problem hiding this comment.
We need to preserve the older configs of this one. It'll ship a package.
There was a problem hiding this comment.
... And on desktop I'd expect it to build the netstandard1.0 config.
| <TargetingPackReference Include="System.Core" /> | ||
| </ItemGroup> | ||
| <ItemGroup Condition="'$(TargetGroup)' == 'netcoreapp'"> | ||
| <ItemGroup> |
There was a problem hiding this comment.
Don't remove this, update the condition.
| <Imports>netcore50aot</Imports> | ||
| <CompatibleWith>netstandard2.0</CompatibleWith> | ||
| </TargetGroups> | ||
| <TargetGroups Include="uap"> |
There was a problem hiding this comment.
Probably and we are going to need some corert variants as well.
904aa39 to
1c4b28c
Compare
|
@weshaggard @ericstj I've addressed the feedback and removed the uap configurations for the projects where we didn't support uwp previously. Also, I've added Eric's new logic for calculating RefPath based on the original TargetGroup |
| <BuildConfigurations> | ||
| netcoreapp; | ||
| uap; | ||
| ; |
There was a problem hiding this comment.
Is this one intentionally empty?
There was a problem hiding this comment.
yes. We haven't really added anything to these DirectoryServices assemblies yet, so it makes no sense to have them building on any framework. Plus, the code on the implementation side that we do have doesn't compile yet, so build is disabled there as well.
…ones (dotnet/corefx#15291) Adding missing Configurations.props for refs and fixing the existing ones Commit migrated from dotnet/corefx@2847e0e
…ones (dotnet/corefx#15291) Adding missing Configurations.props for refs and fixing the existing ones Commit migrated from dotnet/corefx@2847e0e
cc: @ericstj @tarekgh @weshaggard
FYI: @chcosta
netstandardconfig.