From 46b04cd69f92b3927d53250d82da6e204e2ee94a Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Fri, 8 Nov 2024 11:52:37 +0100 Subject: [PATCH 1/5] Avoid hardcoded illink.tasks TFM Replaces https://github.com/dotnet/runtime/pull/109619 We made a similar change recently in arcade to not use the TFM but a normalized value of the TargetFrameworkIdentifier property for tools packages. --- eng/packaging.targets | 10 +++++++++- .../build/Microsoft.NET.ILLink.Tasks.props | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/eng/packaging.targets b/eng/packaging.targets index c932768f71a102..4b72fe0a67a61d 100644 --- a/eng/packaging.targets +++ b/eng/packaging.targets @@ -303,13 +303,21 @@ + + net + netframework + + + + <_BuildOutputPackageFile Include="$(OutputPath)**" Exclude="$(OutputPath)publish\**; $(OutputPath)" /> + PackagePath="tools/$(BuildTaskTargetTfmSpecificFolder)/%(RecursiveDir)%(FileName)%(Extension)" /> true - $(MSBuildThisFileDirectory)..\tools\net9.0\ILLink.Tasks.dll - $(MSBuildThisFileDirectory)..\tools\net472\ILLink.Tasks.dll + $(MSBuildThisFileDirectory)..\tools\net\ILLink.Tasks.dll + $(MSBuildThisFileDirectory)..\tools\netframework\ILLink.Tasks.dll $(MSBuildThisFileDirectory)Microsoft.NET.ILLink.Analyzers.props From 053d845f2d00d5a104f081001f402e80561c8baa Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Fri, 8 Nov 2024 11:16:02 +0000 Subject: [PATCH 2/5] Apply suggestion from am11 --- .../src/ILLink.Tasks/ILLink.Tasks.csproj | 30 ------------------- src/tools/illink/src/ILLink.Tasks/LinkTask.cs | 3 +- 2 files changed, 1 insertion(+), 32 deletions(-) diff --git a/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj b/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj index 155ed36c8bb0ee..6332aeb7bc356c 100644 --- a/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj +++ b/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj @@ -78,34 +78,4 @@ - - - - - - -internal static class BuildMetadata -{ - public const string ILLinkImplFramework = "$(NetCoreAppToolCurrent)"; -} -]]> - - - - - - - - - - - - - diff --git a/src/tools/illink/src/ILLink.Tasks/LinkTask.cs b/src/tools/illink/src/ILLink.Tasks/LinkTask.cs index b54b2c7510df1d..979d5599fdab8f 100644 --- a/src/tools/illink/src/ILLink.Tasks/LinkTask.cs +++ b/src/tools/illink/src/ILLink.Tasks/LinkTask.cs @@ -270,8 +270,7 @@ public string ILLinkPath { #pragma warning restore IL3000 // Avoid accessing Assembly file path when publishing as a single file // IL Linker always runs on .NET Core, even when using desktop MSBuild to host ILLink.Tasks. - // ILLinkImplFramework ()= NetCoreAppToolCurrent) was used to build the corresponding illink.dll - string path = Path.Combine (Path.GetDirectoryName (taskDirectory), BuildMetadata.ILLinkImplFramework, "illink.dll"); + string path = Path.Combine (Path.GetDirectoryName (taskDirectory), "net", "illink.dll"); Log.LogMessage(MessageImportance.Normal, $"ILLink.Tasks path: {path}"); From a849cec815bd52f720e8e14a37e6e329620ef9b4 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Fri, 8 Nov 2024 11:50:02 +0000 Subject: [PATCH 3/5] Update build layout as well --- eng/liveILLink.targets | 5 ++--- src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj | 6 ++++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/eng/liveILLink.targets b/eng/liveILLink.targets index f18b89622982d9..4e5d5452d43a31 100644 --- a/eng/liveILLink.targets +++ b/eng/liveILLink.targets @@ -23,9 +23,8 @@ <_RequiresILLinkPack>false - - $(ToolsILLinkDir)$(NetCoreAppToolCurrent)\ILLink.Tasks.dll - $(ToolsILLinkDir)$(NetFrameworkToolCurrent)\ILLink.Tasks.dll + $(ToolsILLinkDir)net\ILLink.Tasks.dll + $(ToolsILLinkDir)netframework\ILLink.Tasks.dll diff --git a/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj b/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj index 6332aeb7bc356c..e753166d45f3bb 100644 --- a/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj +++ b/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj @@ -20,6 +20,12 @@ $(TargetsForTfmSpecificContentInPackage);AddBuildOutputToToolsPackage false + + false + $(OutputPath)net\ + $(OutputPath)netframework\ + $(IntermediateOutputPath)net\ + $(IntermediateOutputPath)netframework\ - + <_RequiresILLinkPack>false - $(ToolsILLinkDir)$(NetCoreAppToolCurrent)/ILLink.Tasks.dll + $(ToolsILLinkDir)net/ILLink.Tasks.dll From e8f7bb13d2068a00c55afc35c8461084b629da4d Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Fri, 8 Nov 2024 15:25:12 +0100 Subject: [PATCH 5/5] localbuild updates --- .../msbuild/apple/build/AppleBuild.LocalBuild.props | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/mono/msbuild/apple/build/AppleBuild.LocalBuild.props b/src/mono/msbuild/apple/build/AppleBuild.LocalBuild.props index f19d61649f97f2..b3319b190b9c47 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.LocalBuild.props +++ b/src/mono/msbuild/apple/build/AppleBuild.LocalBuild.props @@ -44,9 +44,9 @@ <_MonoAotCrossCompilerPath>$([MSBuild]::NormalizePath($(MonoAotCrossDir), 'mono-aot-cross')) <_MonoAotCrossCompilerPath Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">$(_MonoAotCrossCompilerPath).exe - $([MSBuild]::NormalizePath('$(ArtifactsBinDir)', 'ILLink.Tasks', '$(Configuration)', '$(_NetCoreAppToolCurrent)', 'build', 'Microsoft.NET.ILLink.Tasks.props')) - $([MSBuild]::NormalizePath('$(ArtifactsBinDir)', 'ILLink.Tasks', '$(Configuration)', '$(_NetCoreAppToolCurrent)', 'build', 'Microsoft.NET.ILLink.targets')) - <_ILLinkTasksAssembly>$([MSBuild]::NormalizePath('$(ArtifactsBinDir)', 'ILLink.Tasks', '$(Configuration)', '$(_NetCoreAppToolCurrent)', 'ILLink.Tasks.dll')) + $([MSBuild]::NormalizePath('$(ArtifactsBinDir)', 'ILLink.Tasks', '$(Configuration)', 'net', 'build', 'Microsoft.NET.ILLink.Tasks.props')) + $([MSBuild]::NormalizePath('$(ArtifactsBinDir)', 'ILLink.Tasks', '$(Configuration)', 'net', 'build', 'Microsoft.NET.ILLink.targets')) + <_ILLinkTasksAssembly>$([MSBuild]::NormalizePath('$(ArtifactsBinDir)', 'ILLink.Tasks', '$(Configuration)', 'net', 'ILLink.Tasks.dll')) @@ -68,9 +68,9 @@ $([MSBuild]::NormalizeDirectory('$(BuildBaseDir)', 'aotsdk')) $(MicrosoftNetCoreAppRuntimePackLibDir) $(MicrosoftNetCoreAppRuntimePackNativeDir) - $([MSBuild]::NormalizePath('$(BuildBaseDir)', '$(_NetCoreAppToolCurrent)', 'build', ''Microsoft.NET.ILLink.Tasks.props'')) - $([MSBuild]::NormalizePath('$(BuildBaseDir)', '$(_NetCoreAppToolCurrent)', 'build', 'Microsoft.NET.ILLink.targets')) - <_ILLinkTasksAssembly>$([MSBuild]::NormalizePath('$(BuildBaseDir)', '$(_NetCoreAppToolCurrent)', 'ILLink.Tasks.dll')) + $([MSBuild]::NormalizePath('$(BuildBaseDir)', 'net', 'build', ''Microsoft.NET.ILLink.Tasks.props'')) + $([MSBuild]::NormalizePath('$(BuildBaseDir)', 'net', 'build', 'Microsoft.NET.ILLink.targets')) + <_ILLinkTasksAssembly>$([MSBuild]::NormalizePath('$(BuildBaseDir)', 'net', 'ILLink.Tasks.dll')) <_MonoAotCrossCompilerPath>$([MSBuild]::NormalizePath($(MonoAotCrossDir), 'mono-aot-cross')) <_MonoAotCrossCompilerPath Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">$(_MonoAotCrossCompilerPath).exe