Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions eng/Subsets.props
Original file line number Diff line number Diff line change
Expand Up @@ -640,7 +640,10 @@

<!-- Libraries sets -->
<ItemGroup Condition="$(_subset.Contains('+libs.native+'))">
<ProjectToBuild Include="$(SharedNativeRoot)libs\build-native.proj" Category="libs" />
<ProjectToBuild Include="$(SharedNativeRoot)libs\build-native.proj"
AdditionalProperties="LibrariesRuntimeFlavor=$(RuntimeFlavor);RuntimeFlavor=$(RuntimeFlavor)"
GlobalPropertiesToRemove="RuntimeIdentifier;TargetFramework"
Category="libs" />
</ItemGroup>

<ItemGroup Condition="$(_subset.Contains('+libs.sfx+'))">
Expand Down Expand Up @@ -780,7 +783,9 @@
</ItemGroup>
<ItemGroup>
<SharedFrameworkProjectToBuild Condition="'$(_BuildBundle)' == 'true'" Include="$(InstallerProjectRoot)pkg\sfx\bundle\Microsoft.NETCore.App.Bundle.bundleproj" />
<ProjectToBuild Include="@(SharedFrameworkProjectToBuild)" Category="packs" />
<ProjectToBuild Include="@(SharedFrameworkProjectToBuild)"
AdditionalProperties="%(SharedFrameworkProjectToBuild.AdditionalProperties);LibrariesRuntimeFlavor=$(RuntimeFlavor)"
Category="packs" />
</ItemGroup>
</Otherwise>
</Choose>
Expand Down
22 changes: 20 additions & 2 deletions eng/codeOptimization.targets
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,24 @@
<IsEligibleForNgenOptimization Condition="'$(TargetOS)' == 'osx' or '$(TargetsMobile)' == 'true'">false</IsEligibleForNgenOptimization>
</PropertyGroup>

<PropertyGroup>
<_MibcConfiguration Condition="'$(CoreCLRConfiguration)' == ''">$(Configuration)</_MibcConfiguration>
<_MibcConfiguration Condition="'$(CoreCLRConfiguration)' != ''">$(CoreCLRConfiguration)</_MibcConfiguration>
<UseMibcProjectReference Condition="'$(UseMibcProjectReference)' == '' and
'$(DotNetBuildSourceOnly)' != 'true' and
('$(PublishReadyToRun)' == 'true' or '$(BuildNativeAOTRuntimePack)' == 'true')">true</UseMibcProjectReference>
</PropertyGroup>

<ItemGroup Condition="'$(UseMibcProjectReference)' == 'true'">
<ProjectReference Include="$(CoreClrProjectRoot)merge-mibc.proj"
GlobalPropertiesToRemove="LibrariesRuntimeFlavor;RuntimeFlavor;RuntimeIdentifier;TargetFramework"
OutputItemType="MergedMibcFile"
ReferenceOutputAssembly="false"
SetConfiguration="Configuration=$(_MibcConfiguration)"
SkipGetTargetFrameworkProperties="true"
Targets="Build;GetMibcFile" />
</ItemGroup>

<Target Name="SetApplyNgenOptimization"
Condition="'$(IsEligibleForNgenOptimization)' == 'true'"
BeforeTargets="CoreCompile">
Expand All @@ -27,13 +45,13 @@
</PropertyGroup>
</Target>

<Target Name="AddReadyToRunPgoOptions" DependsOnTargets="ResolveRuntimeFilesFromLocalBuild" BeforeTargets="ResolveReadyToRunCompilers" Condition="'$(PublishReadyToRun)' == 'true'">
<Target Name="AddReadyToRunPgoOptions" DependsOnTargets="ResolveProjectReferences;ResolveRuntimeFilesFromLocalBuild" BeforeTargets="ResolveReadyToRunCompilers" Condition="'$(PublishReadyToRun)' == 'true'">
<PropertyGroup>
<!-- Only use mibc files if UsingToolIbcOptimization is false. Allows enabling/disabling using ibc instead of mibc data -->
<IncludeMibcFilesInReadyToRun Condition="'$(UsingToolIbcOptimization)' != 'true' and '$(EnableNgenOptimization)' == 'true' and '$(DotNetBuildSourceOnly)' != 'true'">true</IncludeMibcFilesInReadyToRun>
</PropertyGroup>
<ItemGroup>
<PublishReadyToRunPgoFiles Condition="'$(IncludeMibcFilesInReadyToRun)' == 'true'" Include="$(CoreCLRArtifactsPath)StandardOptimizationData.mibc"/>
<PublishReadyToRunPgoFiles Condition="'$(IncludeMibcFilesInReadyToRun)' == 'true'" Include="@(MergedMibcFile)"/>
</ItemGroup>

<PropertyGroup Condition="'$(IncludeMibcFilesInReadyToRun)' == 'true'">
Expand Down
80 changes: 51 additions & 29 deletions eng/liveBuilds.targets
Original file line number Diff line number Diff line change
@@ -1,19 +1,7 @@
<Project>
<!-- Accept override paths for live artifacts. -->
<!-- Set up live asset paths. -->
<PropertyGroup>
<CoreCLRArtifactsPath Condition="'$(CoreCLROverridePath)' != ''">$([MSBuild]::NormalizeDirectory('$(CoreCLROverridePath)'))</CoreCLRArtifactsPath>
<MonoArtifactsPath Condition="'$(MonoOverridePath)' != ''">$([MSBuild]::NormalizeDirectory('$(MonoOverridePath)'))</MonoArtifactsPath>
<LibrariesArtifactsPath Condition="'$(LibrariesOverridePath)' != ''">$([MSBuild]::NormalizeDirectory('$(LibrariesOverridePath)'))</LibrariesArtifactsPath>
<LibrariesAllConfigurationsArtifactsPath Condition="'$(LibrariesAllConfigurationsOverridePath)' != ''">$([MSBuild]::NormalizeDirectory('$(LibrariesAllConfigurationsOverridePath)'))</LibrariesAllConfigurationsArtifactsPath>

<!-- Honor the RuntimeArtifactsPath property. -->
<CoreCLRArtifactsPath Condition="'$(CoreCLRArtifactsPath)' == '' and '$(RuntimeArtifactsPath)' != ''">$([MSBuild]::NormalizeDirectory('$(RuntimeArtifactsPath)'))</CoreCLRArtifactsPath>
<MonoArtifactsPath Condition="'$(MonoArtifactsPath)' == '' and '$(RuntimeArtifactsPath)' != ''">$([MSBuild]::NormalizeDirectory('$(RuntimeArtifactsPath)'))</MonoArtifactsPath>
<LibrariesTargetOSConfigurationArchitecture Condition="'$(LibrariesTargetOSConfigurationArchitecture)' == ''">$(TargetOS)-$(LibrariesConfiguration)-$(TargetArchitecture)</LibrariesTargetOSConfigurationArchitecture>
</PropertyGroup>

<!-- Set up default live asset paths if no overrides provided. -->
<PropertyGroup>
<CoreCLRArtifactsPath Condition="'$(CoreCLRArtifactsPath)' == ''">$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)'))</CoreCLRArtifactsPath>
<MonoArtifactsPath Condition="'$(MonoArtifactsPath)' == ''">$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'mono', '$(TargetOS).$(TargetArchitecture).$(MonoConfiguration)'))</MonoArtifactsPath>
<LibrariesArtifactsPath Condition="'$(LibrariesArtifactsPath)' == ''">$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts'))</LibrariesArtifactsPath>
Expand Down Expand Up @@ -101,7 +89,12 @@
</PropertyGroup>

<ItemGroup Condition="'$(BuildNativeAOTRuntimePack)' == 'true'">
<_nativeAotRuntimeFiles Include="$(CoreCLRAotSdkDir)*" />
<_nativeAotProjectOutputFile Include="@(_RuntimeCoreLibFile);@(_NativeAotRuntimeAssembly)" />
<_nativeAotRuntimeAssemblyFiles Include="@(_nativeAotProjectOutputFile->'$(CoreCLRAotSdkDir)%(Filename)%(Extension)');
@(_nativeAotProjectOutputFile->'$(CoreCLRAotSdkDir)%(Filename).pdb')"
Condition="'$(UseRuntimeManagedProjectReferences)' == 'true'" />
<_nativeAotRuntimeFiles Include="$(CoreCLRAotSdkDir)*"
Exclude="@(_nativeAotRuntimeAssemblyFiles)" />
<RuntimeFiles Include="@(_nativeAotRuntimeFiles)" Condition="'%(Extension)' != '.xml'">
<IsNative>true</IsNative>
</RuntimeFiles>
Expand All @@ -114,20 +107,25 @@
<RuntimeFiles>
<IsNative>true</IsNative>
</RuntimeFiles>
<_systemPrivateCoreLib Include="$(CoreCLRArtifactsPath)System.Private.CoreLib.dll"
Condition="Exists('$(CoreCLRArtifactsPath)System.Private.CoreLib.dll')" />
<_systemPrivateCoreLib Include="$(CoreCLRArtifactsPath)IL/System.Private.CoreLib.dll"
Condition="Exists('$(CoreCLRArtifactsPath)IL/System.Private.CoreLib.dll') and '@(_systemPrivateCoreLib)' == ''" />
<RuntimeFiles Include="@(_systemPrivateCoreLib)" />
<RuntimeFiles
Include="
$(CoreCLRSharedFrameworkPdbDir)*.pdb;
$(CoreCLRSharedFrameworkPdbDir)*.dbg;
$(CoreCLRSharedFrameworkPdbDir)*.dwarf" IsNative="true" />
<RuntimeFiles Condition="Exists('$(CoreCLRArtifactsPdbDir)System.Private.CoreLib.pdb')"
Include="$(CoreCLRArtifactsPdbDir)System.Private.CoreLib.pdb" />
<RuntimeFiles Condition="Exists('$(CoreCLRArtifactsPdbDir)System.Private.CoreLib.ni.pdb')"
Include="$(CoreCLRArtifactsPdbDir)System.Private.CoreLib.ni.pdb" />
<_systemPrivateCoreLib Include="$(CoreCLRArtifactsPath)System.Private.CoreLib.dll"
Condition="'$(UseRuntimeManagedProjectReferences)' != 'true' and
Exists('$(CoreCLRArtifactsPath)System.Private.CoreLib.dll')" />
<_systemPrivateCoreLib Include="$(CoreCLRArtifactsPath)IL/System.Private.CoreLib.dll"
Condition="'$(UseRuntimeManagedProjectReferences)' != 'true' and
Exists('$(CoreCLRArtifactsPath)IL/System.Private.CoreLib.dll') and
'@(_systemPrivateCoreLib)' == ''" />
<RuntimeFiles Include="@(_systemPrivateCoreLib)" />
<RuntimeFiles Condition="'$(UseRuntimeManagedProjectReferences)' != 'true' and
Exists('$(CoreCLRArtifactsPdbDir)System.Private.CoreLib.pdb')"
Include="$(CoreCLRArtifactsPdbDir)System.Private.CoreLib.pdb" />
<RuntimeFiles Condition="'$(UseRuntimeManagedProjectReferences)' != 'true' and
Exists('$(CoreCLRArtifactsPdbDir)System.Private.CoreLib.ni.pdb')"
Include="$(CoreCLRArtifactsPdbDir)System.Private.CoreLib.ni.pdb" />

<CoreCLRCrossTargetFiles Condition="'$(CoreCLRCrossTargetComponentDir)' != ''"
Include="
Expand All @@ -141,7 +139,12 @@
</CoreCLRCrossTargetFiles>
</ItemGroup>
<ItemGroup Condition="'$(RuntimeFlavor)' == 'Mono'">
<RuntimeFiles Include="$(MonoArtifactsPath)\*.*" Exclude="$(MonoArtifactsPath)\*cdac*" />
<_monoRuntimeManagedProjectFiles Include="$(MonoArtifactsPath)\System.Private.CoreLib.dll;
$(MonoArtifactsPath)\System.Private.CoreLib.pdb"
Condition="'$(UseRuntimeManagedProjectReferences)' == 'true'" />
<RuntimeFiles Include="$(MonoArtifactsPath)\*.*"
Exclude="$(MonoArtifactsPath)\*cdac*;
@(_monoRuntimeManagedProjectFiles)" />
<RuntimeFiles>
<IsNative>true</IsNative>
</RuntimeFiles>
Expand All @@ -166,16 +169,25 @@
Ensure artifacts exist for the more advanced paths. If the configuration is '*', don't emit
these errors: it isn't a local dev scenario.
-->
<Target Name="EnsureLocalOSGroupConfigurationArchitectureSpecificArtifactsExist"
<Target Name="EnsureLocalLibrariesRuntimeArtifactsExist"
Condition="'$(LibrariesTargetOSConfigurationArchitecture)' != '*'">
<Error Condition="!Exists('$(LibrariesSharedFrameworkBinArtifactsPath)')"
Text="The 'libs' subset must be built before building this project. Missing artifacts: $(LibrariesSharedFrameworkBinArtifactsPath). Configuration: '$(LibrariesConfiguration)'. To use a different configuration, specify the 'LibrariesConfiguration' property." />
<Error Condition="'$(IncludeOOBLibraries)' == 'true' and !Exists('$(LibrariesAllBinArtifactsPath)')"
Text="The 'libs' subset must be built before building this project. Missing artifacts: $(LibrariesAllBinArtifactsPath). Configuration: '$(LibrariesConfiguration)'. To use a different configuration, specify the 'LibrariesConfiguration' property." />
</Target>

<Target Name="EnsureLocalLibrariesNativeArtifactsExist"
Condition="'$(LibrariesTargetOSConfigurationArchitecture)' != '*'">
<Error Condition="!Exists('$(LibrariesNativeArtifactsPath)')"
Text="The 'libs' subset must be built before building this project. Missing artifacts: $(LibrariesNativeArtifactsPath). Configuration: '$(LibrariesConfiguration)'. To use a different configuration, specify the 'LibrariesConfiguration' property." />
</Target>
Comment thread
jkoritzinsky marked this conversation as resolved.

<Target Name="EnsureLocalOSGroupConfigurationArchitectureSpecificArtifactsExist"
DependsOnTargets="
EnsureLocalLibrariesRuntimeArtifactsExist;
EnsureLocalLibrariesNativeArtifactsExist" />

<Target Name="ResolveLibrariesRefAssembliesFromLocalBuild"
DependsOnTargets="EnsureLocalArtifactsExist">
<ItemGroup>
Expand All @@ -185,10 +197,8 @@
<Error Condition="'@(LibrariesRefAssemblies)' == ''" Text="The 'libs' subset must be built before building this project." />
</Target>

<Target Name="ResolveLibrariesRuntimeFilesFromLocalBuild"
DependsOnTargets="
EnsureLocalArtifactsExist;
EnsureLocalOSGroupConfigurationArchitectureSpecificArtifactsExist">
<Target Name="ResolveLibrariesManagedRuntimeFilesFromLocalBuild"
DependsOnTargets="EnsureLocalLibrariesRuntimeArtifactsExist">
<ItemGroup>
<LibrariesRuntimeFiles Condition="'$(IncludeOOBLibraries)' != 'true'" Include="
$(LibrariesSharedFrameworkBinArtifactsPath)*.dll;
Expand All @@ -198,6 +208,13 @@
$(LibrariesAllBinArtifactsPath)*.dll;
$(LibrariesAllBinArtifactsPath)*.pdb"
IsNative="" />
</ItemGroup>
<Error Condition="'@(LibrariesRuntimeFiles)' == ''" Text="The 'libs' subset must be built before building this project." />
</Target>

<Target Name="ResolveLibrariesNativeRuntimeFilesFromLocalBuild"
DependsOnTargets="EnsureLocalLibrariesNativeArtifactsExist">
<ItemGroup>
<ExcludeNativeLibrariesRuntimeFiles Condition="'$(IncludeOOBLibraries)' != 'true'"
Include="$(LibrariesNativeArtifactsPath)libSystem.IO.Ports.Native.*" />

Expand Down Expand Up @@ -373,6 +390,11 @@
<Error Condition="'@(LibrariesRuntimeFiles)' == ''" Text="The 'libs' subset must be built before building this project." />
</Target>

<Target Name="ResolveLibrariesRuntimeFilesFromLocalBuild"
DependsOnTargets="
ResolveLibrariesManagedRuntimeFilesFromLocalBuild;
ResolveLibrariesNativeRuntimeFilesFromLocalBuild" />

<Target Name="ResolveLibrariesFromLocalBuild"
DependsOnTargets="
ResolveLibrariesRefAssembliesFromLocalBuild;
Expand Down
Loading
Loading