Skip to content

Commit

Permalink
Update CoreCLR override to use the sharedFramework output folde… (dot…
Browse files Browse the repository at this point in the history
…net/core-setup#8842)

* Override the files coming from CoreCLR in the shared framework via the shared-framework folder (no package needed).

* Fix PDB issues. Correctly place cross-targeting files in the correct target path.

* Use NormalizePath to build up paths other than the globs themselves.

* Fix typo missed by rename.

* Normalize as directory. Fix naming.


Commit migrated from dotnet/core-setup@9af1be8
  • Loading branch information
jkoritzinsky committed Nov 13, 2019
1 parent 084dfc7 commit e68194a
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,34 +4,50 @@
<Target Name="OverrideRuntimeFilesFromPackageResolve" Condition="'$(CoreCLROverridePath)' != ''" BeforeTargets="GetFilesFromPackageResolve">
<Error Condition="!Exists('$(CoreCLROverridePath)')" Text="The path provided to CoreCLROverridePath ($(CoreCLROverridePath)) does not exist." />
<PropertyGroup>
<CoreCLRPDBOverridePath Condition="'$(CoreCLRPDBOverridePath)' == '' and Exists('$(CoreCLROverridePath)/PDB')">$(CoreCLROverridePath)/PDB</CoreCLRPDBOverridePath>
<CoreCLROverridePath>$([MSBuild]::NormalizeDirectory('$(CoreCLROverridePath)'))</CoreCLROverridePath>
</PropertyGroup>
<PropertyGroup>
<CoreCLRCrossTargetComponentDirName Condition="'$(TargetArchitecture)' == 'arm64' and '$(BuildArchitecture)' != 'arm64'">x64</CoreCLRCrossTargetComponentDirName>
<CoreCLRCrossTargetComponentDirName Condition="'$(TargetArchitecture)' == 'arm' and '$(BuildArchitecture)' != 'arm' and '$(TargetsWindows)' == 'true'">x86</CoreCLRCrossTargetComponentDirName>
<CoreCLRCrossTargetComponentDirName Condition="'$(TargetArchitecture)' == 'arm' and '$(BuildArchitecture)' != 'arm' and '$(TargetsLinux)' == 'true'">x64</CoreCLRCrossTargetComponentDirName>
<CoreCLRSharedFrameworkDir>$([MSBuild]::NormalizeDirectory('$(CoreCLROverridePath)','sharedFramework'))</CoreCLRSharedFrameworkDir>
<CoreCLRCrossTargetComponentDir
Condition="'$(CoreCLRCrossTargetComponentDirName)' != ''">$([MSBuild]::NormalizeDirectory('$(CoreCLROverridePath)','$(CoreCLRCrossTargetComponentDir)','sharedFramework'))</CoreCLRCrossTargetComponentDir>
</PropertyGroup>
<ItemGroup>
<CoreCLRFiles Include="$(CoreCLROverridePath)/*.*" />
<CoreCLRFiles Include="$(CoreCLROverridePath)/Redist/**/*.dll" />
<CoreCLRFiles Condition="'$(CoreCLRPDBOverridePath)' != ''"
Include="$(CoreCLRPDBOverridePath)/*.pdb;$(CoreCLRPDBOverridePath)/*.dbg;$(CoreCLRPDBOverridePath)/*.dwarf" />

<OverriddenRuntimeFiles Include="@(ReferenceCopyLocalPaths)" Condition="'@(CoreCLRFiles->'%(FileName)%(Extension)')' == '%(FileName)%(Extension)'">
<CoreCLRFile>@(CoreCLRFiles)</CoreCLRFile>
</OverriddenRuntimeFiles>

<LongNameDacFile Include="@(ReferenceCopyLocalPaths)" Condition="$([System.String]::Copy('%(FileName)').StartsWith('mscordaccore_'))">
<TargetPath>%(PathInPackage)</TargetPath>
</LongNameDacFile>

<ShortNameDacFileOverride Include="@(CoreCLRFiles)" Condition="'%(FileName)%(Extension)' == 'mscordaccore.dll'" />

<OverriddenRuntimeFiles Include="@(LongNameDacFile)">
<CoreCLRFile>@(ShortNameDacFileOverride)</CoreCLRFile>
</OverriddenRuntimeFiles>

<OverriddenRuntimeFiles>
<IsNative Condition="$([System.String]::new('%(Identity)').ToLowerInvariant().Replace('\', '/').Contains('/native/'))">true</IsNative>
</OverriddenRuntimeFiles>

<ReferenceCopyLocalPaths Remove="@(OverriddenRuntimeFiles)" />
<ReferenceCopyLocalPaths Include="@(OverriddenRuntimeFiles->Metadata('CoreCLRFile'))" />
<CoreCLRFiles Include="$(CoreCLRSharedFrameworkDir)*.*" />
<CoreCLRCrossTargetFiles Condition="'$(CoreCLRCrossTargetComponentDir)' != ''" Include="$(CoreCLRCrossTargetComponentDir)*.*" />
<CoreCLRFiles Include="$(CoreCLROverridePath)Redist/**/*.dll" />
<CoreCLRFiles>
<IsNative>true</IsNative>
</CoreCLRFiles>
<CoreCLRFiles Include="$(CoreCLROverridePath)System.Private.CoreLib.dll" />
<CoreCLRFiles
Include="
$(CoreCLRSharedFrameworkDir)PDB/*.pdb;
$(CoreCLRSharedFrameworkDir)PDB/*.dbg;
$(CoreCLRSharedFrameworkDir)PDB/*.dwarf" />
<CoreCLRFiles
Include="$(CoreCLROverridePath)PDB/System.Private.CoreLib.pdb;$(CoreCLROverridePath)PDB/System.Private.CoreLib.ni.pdb" />
<CoreCLRCrossTargetFiles Condition="'$(CoreCLRCrossTargetComponentDir)' != ''"
Include="
$(CoreCLRCrossTargetComponentDir)PDB/*.pdb;
$(CoreCLRCrossTargetComponentDir)PDB/*.dbg;
$(CoreCLRCrossTargetComponentDir)PDB/*.dwarf" />

<CoreCLRFiles>
<TargetPath>runtime/$(RuntimeIdentifier)/native</TargetPath>
</CoreCLRFiles>

<CoreCLRCrossTargetFiles>
<TargetPath>runtime/$(CoreCLRCrossTargetComponentDirName)_$(TargetArchitecture)/native</TargetPath>
</CoreCLRCrossTargetFiles>

<CoreCLRFiles Include="@(CoreCLRCrossTargetFiles)" />

<ReferenceCopyLocalPaths Remove="@(ReferenceCopyLocalPaths)" Condition="'@(CoreCLRFiles->'%(FileName)%(Extension)')' == '%(FileName)%(Extension)'"/>
<ReferenceCopyLocalPaths Remove="@(ReferenceCopyLocalPaths)" Condition="$([System.String]::Copy('%(FileName)').StartsWith('mscordaccore_'))" />
<ReferenceCopyLocalPaths Include="@(CoreCLRFiles)" />
</ItemGroup>

<Error Condition="'@(CoreCLRFiles)' == ''" Text="The path provided to CoreCLROverridePath ($(CoreCLROverridePath)) does not contain any files." />
Expand Down
3 changes: 2 additions & 1 deletion src/installer/pkg/projects/netcoreapp/src/netcoreapp.depproj
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,8 @@
<!-- Fetches all the runtime items from the packages that we want to redist -->
<Target Name="GetRuntimeFilesFromPackages"
BeforeTargets="GetRuntimeFilesToPackage"
DependsOnTargets="GetCorePackagePaths">
DependsOnTargets="GetCorePackagePaths"
Condition="'$(CoreCLROverridePath)' == ''">
<ItemGroup Condition="'$(PackageTargetRuntime)' != ''">
<_ToolsToPackage Include="$(_runtimePackageDir)tools/**/*.*"/>
<FilesToPackage Include="@(_ToolsToPackage)">
Expand Down

0 comments on commit e68194a

Please sign in to comment.