|
|
@@ -1,388 +0,0 @@
|
|
|
-<!--
|
|
|
-This file defines targets for building a shared framework.
|
|
|
-This targets file should only be imported by .shfxproj files.
|
|
|
--->
|
|
|
-<Project>
|
|
|
-
|
|
|
- <PropertyGroup>
|
|
|
- <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
|
|
|
-
|
|
|
- <CoreBuildDependsOn>
|
|
|
- BuildOnlySettings;
|
|
|
- PrepareForBuild;
|
|
|
- PreBuildEvent;
|
|
|
- ResolveReferences;
|
|
|
- GenerateSharedFxVersionsFile;
|
|
|
- GenerateBuildDependencyFile;
|
|
|
- PrepareForPublish;
|
|
|
- GenerateBuildRuntimeConfigurationFiles;
|
|
|
- ComputeAndCopyFilesToPublishDirectory;
|
|
|
- GeneratePublishDependencyFile;
|
|
|
- GenerateSharedFxMetadataFiles;
|
|
|
- CopySharedFxToOutput;
|
|
|
- CollectSharedFxOutput;
|
|
|
- PostBuildEvent;
|
|
|
- GetTargetPath;
|
|
|
- PrepareForRun;
|
|
|
- </CoreBuildDependsOn>
|
|
|
-
|
|
|
- <CollectOutputSharedFxDependsOn>
|
|
|
- PrepareForCrossGen;
|
|
|
- CrossGenAssemblies;
|
|
|
- CrossGenSymbols;
|
|
|
- </CollectOutputSharedFxDependsOn>
|
|
|
-
|
|
|
- <PrepareForBuildDependsOn>
|
|
|
- PrepareOutputPaths;
|
|
|
- </PrepareForBuildDependsOn>
|
|
|
-
|
|
|
- <ResolveReferencesDependsOn>
|
|
|
- BeforeResolveReferences;
|
|
|
- AssignProjectConfiguration;
|
|
|
- ResolveProjectReferences;
|
|
|
- FindInvalidProjectReferences;
|
|
|
- AfterResolveReferences
|
|
|
- </ResolveReferencesDependsOn>
|
|
|
-
|
|
|
- <PrepareForRunDependsOn>
|
|
|
- CollectSharedFxOutput;
|
|
|
- GetCopyToSharedFrameworkItems;
|
|
|
- InstallFrameworkIntoLocalDotNet;
|
|
|
- </PrepareForRunDependsOn>
|
|
|
-
|
|
|
- <!-- The name of the shared framework. -->
|
|
|
- <SharedFxName Condition=" '$(SharedFxName)' == '' ">$(MSBuildProjectName)</SharedFxName>
|
|
|
-
|
|
|
- <LibPrefix Condition=" '$(TargetOsName)' != 'win' ">lib</LibPrefix>
|
|
|
- <LibExtension>.so</LibExtension>
|
|
|
- <LibExtension Condition=" '$(TargetOsName)' == 'win' ">.dll</LibExtension>
|
|
|
- <LibExtension Condition=" '$(TargetOsName)' == 'osx' ">.dylib</LibExtension>
|
|
|
- <ExeExtension Condition=" '$(TargetOsName)' == 'win' ">.exe</ExeExtension>
|
|
|
- <!-- 3B = semicolon in ASCII -->
|
|
|
- <PathSeparator Condition="'$(PathSeparator)' == ''">:</PathSeparator>
|
|
|
- <PathSeparator Condition=" '$(TargetOsName)' == 'win' ">%3B</PathSeparator>
|
|
|
-
|
|
|
- <IntermediateOutputPath>$(IntermediateOutputPath)$(TargetRuntimeIdentifier)\</IntermediateOutputPath>
|
|
|
-
|
|
|
- <!-- Override the SDK Default for this location for copying published output. -->
|
|
|
- <PublishDir>$(IntermediateOutputPath)u\</PublishDir>
|
|
|
-
|
|
|
- <!-- If symbols generation is disabled, there is no use in producing a symbols.nupkg files. -->
|
|
|
- <IncludeSymbols Condition="'$(CrossgenSymbolsOutput)' == 'false'">false</IncludeSymbols>
|
|
|
-
|
|
|
- <ManifestOutputDir Condition="'$(ManifestOutputDir)' == ''">$(OutputPath)manifest\</ManifestOutputDir>
|
|
|
- <MetadataOutputPath Condition="'$(MetadataOutputPath)' == ''">$(OutputPath)files\</MetadataOutputPath>
|
|
|
- <SymbolsOutputPath Condition="'$(SymbolsOutputPath)' == ''">$(OutputPath)symbols\</SymbolsOutputPath>
|
|
|
- <NativeAssetsOutputPath Condition="'$(NativeAssetsOutputPath)' == ''">$(OutputPath)native\</NativeAssetsOutputPath>
|
|
|
- <RuntimeAssetsOutputPath Condition="'$(RuntimeAssetsOutputPath)' == ''">$(OutputPath)lib\$(TargetFramework)\</RuntimeAssetsOutputPath>
|
|
|
- <LocalInstallationOutputPath>$(LocalDotNetRoot)shared\$(SharedFxName)\$(SharedFxVersion)\</LocalInstallationOutputPath>
|
|
|
-
|
|
|
- <CrossGenToolDir>$(IntermediateOutputPath)crossgen\</CrossGenToolDir>
|
|
|
- <!-- Crossgen executable name -->
|
|
|
- <CrossGenExecutable>crossgen</CrossGenExecutable>
|
|
|
- <CrossGenExecutable Condition=" '$(TargetOsName)' == 'win' ">$(CrossGenExecutable).exe</CrossGenExecutable>
|
|
|
- <!-- Default crossgen executable relative path -->
|
|
|
- <CrossGenTool>$(CrossGenExecutable)</CrossGenTool>
|
|
|
- <!-- Disambiguated RID-specific crossgen executable relative path -->
|
|
|
- <CrossGenTool Condition=" '$(TargetRuntimeIdentifier)' == 'linux-arm' ">x64_arm\$(CrossGenTool)</CrossGenTool>
|
|
|
- <CrossGenTool Condition=" '$(TargetRuntimeIdentifier)' == 'linux-arm64' ">x64_arm64\$(CrossGenTool)</CrossGenTool>
|
|
|
- <CrossGenTool Condition=" '$(TargetRuntimeIdentifier)' == 'win-arm' ">x86_arm\$(CrossGenTool)</CrossGenTool>
|
|
|
-
|
|
|
- <!-- Map BaseSharedFrameworkName into properties used by the SDK to determine publish output trimming and deps.json generation -->
|
|
|
- <MicrosoftNETPlatformLibrary>$(BaseSharedFrameworkName)</MicrosoftNETPlatformLibrary>
|
|
|
- <!-- Prevents runtimeconfig.dev.json from ending up in publish output. -->
|
|
|
- <ProjectRuntimeConfigDevFilePath>$(IntermediateOutputPath)$(SharedFxName).runtimeconfig.dev.json</ProjectRuntimeConfigDevFilePath>
|
|
|
- <!-- Redirects the output of GeneratePublishDependencyFile into obj/ because we need to do post-processing on the .deps.json file -->
|
|
|
- <ProjectDepsFilePath>$(IntermediateOutputPath)$(SharedFxName).intermediate.deps.json</ProjectDepsFilePath>
|
|
|
- <PublishDepsFilePath>$(ProjectDepsFilePath)</PublishDepsFilePath>
|
|
|
-
|
|
|
- <!-- The output path of generated files -->
|
|
|
- <PublishRuntimeConfigFilePath>$(MetadataOutputPath)$(SharedFxName).runtimeconfig.json</PublishRuntimeConfigFilePath>
|
|
|
- <!-- The SDK renamed PublishRuntimeConfigFilePath to PublishRuntimeConfigFilePath, so set both to be safe. -->
|
|
|
- <ProjectRuntimeConfigFilePath>$(PublishRuntimeConfigFilePath)</ProjectRuntimeConfigFilePath>
|
|
|
- <SharedFxDepsFilePath>$(MetadataOutputPath)$(SharedFxName).deps.json</SharedFxDepsFilePath>
|
|
|
- <VersionFileOutputPath>$(MetadataOutputPath).version</VersionFileOutputPath>
|
|
|
- <PlatformManifestOutputPath>$(ManifestOutputDir)$(SharedFxName).PlatformManifest.txt</PlatformManifestOutputPath>
|
|
|
- </PropertyGroup>
|
|
|
-
|
|
|
- <ItemGroup>
|
|
|
- <CopyToSharedFramework Include="$(SharedFxDepsFilePath)" OutputPath="$(LocalInstallationOutputPath)$(SharedFxName).deps.json" />
|
|
|
- <CopyToSharedFramework Include="$(VersionFileOutputPath)" OutputPath="$(LocalInstallationOutputPath).version" />
|
|
|
- <CopyToSharedFramework Include="$(PublishRuntimeConfigFilePath)" OutputPath="$(LocalInstallationOutputPath)$(SharedFxName).runtimeconfig.json" />
|
|
|
- </ItemGroup>
|
|
|
-
|
|
|
- <ItemDefinitionGroup>
|
|
|
- <TargetPathWithTargetPlatformMoniker>
|
|
|
- <!--
|
|
|
- This lists all folders of assets which should be collected into the same folder in a shared framework installer.
|
|
|
- This is set on this item group so it flows across project references into installer projects.
|
|
|
- -->
|
|
|
- <InstallerAssetPaths>
|
|
|
- $(MetadataOutputPath);
|
|
|
- $(RuntimeAssetsOutputPath);
|
|
|
- $(NativeAssetsOutputPath);
|
|
|
- </InstallerAssetPaths>
|
|
|
- <MetadataOutputPath>$(MetadataOutputPath)</MetadataOutputPath>
|
|
|
- <RuntimeAssetsOutputPath>$(RuntimeAssetsOutputPath)</RuntimeAssetsOutputPath>
|
|
|
- <NativeAssetsOutputPath>$(NativeAssetsOutputPath)</NativeAssetsOutputPath>
|
|
|
- <!-- Don't include the platform manifest in installer assets. -->
|
|
|
- <ManifestOutputDir>$(ManifestOutputDir)</ManifestOutputDir>
|
|
|
- <SharedFxName>$(SharedFxName)</SharedFxName>
|
|
|
- <PackageId>$(PackageId)</PackageId>
|
|
|
- </TargetPathWithTargetPlatformMoniker>
|
|
|
- </ItemDefinitionGroup>
|
|
|
-
|
|
|
- <ItemGroup>
|
|
|
- <!-- Add version metadata. These are expected to match the metapackage version. -->
|
|
|
- <AspNetCoreAppReferenceAndPackage Update="@(AspNetCoreAppReferenceAndPackage)" Version="$(SharedFxVersion)" />
|
|
|
- <AspNetCoreAppReference Update="@(AspNetCoreAppReference)" Version="$(SharedFxVersion)" />
|
|
|
-
|
|
|
- <!-- Note: do not add _TransitiveExternalAspNetCoreAppReference to this list. This is intentionally not listed as a direct package reference. -->
|
|
|
- <PackageReference Include="@(AspNetCoreAppReference);@(AspNetCoreAppReferenceAndPackage);@(ExternalAspNetCoreAppReference)">
|
|
|
- <IncludeAssets>Runtime;Native</IncludeAssets>
|
|
|
- <Publish>true</Publish>
|
|
|
- </PackageReference>
|
|
|
- </ItemGroup>
|
|
|
-
|
|
|
- <!-- Check some required properties before building a shared framework/ -->
|
|
|
- <Target Name="_CheckForRequiredFxProperties" BeforeTargets="_CheckForInvalidConfigurationAndPlatform">
|
|
|
- <Error Condition=" '$(BaseSharedFrameworkName)' == '' "
|
|
|
- Text="Missing required property: BaseSharedFrameworkName. Shared frameworks must specify which framework is used at the base." />
|
|
|
-
|
|
|
- <Error Condition=" '$(TargetRuntimeIdentifier)' == '' "
|
|
|
- Text="Missing required property: TargetRuntimeIdentifier. Shared frameworks are rid-specific, so this must be set." />
|
|
|
-
|
|
|
- <ItemGroup>
|
|
|
- <_UnknownRid Remove="@(_UnknownRid)" />
|
|
|
- <_UnknownRid Include="$(TargetRuntimeIdentifier)" Exclude="$(SupportedRuntimeIdentifiers)" />
|
|
|
- </ItemGroup>
|
|
|
-
|
|
|
- <Error Condition=" '@(_UnknownRid)' != '' "
|
|
|
- Text=""$(TargetRuntimeIdentifier)" not acceptable runtime identifier. Please specify an acceptable value: {$(SupportedRuntimeIdentifiers)}." />
|
|
|
-
|
|
|
- <Message Importance="High" Text="Building $(SharedFxName) (fx: $(TargetRuntimeIdentifier))" />
|
|
|
- </Target>
|
|
|
-
|
|
|
- <Target Name="PrepareOutputPaths">
|
|
|
- <MakeDir Directories="$(MetadataOutputPath);$(SymbolsOutputPath);$(NativeAssetsOutputPath);$(RuntimeAssetsOutputPath);$(LocalInstallationOutputPath)" />
|
|
|
- </Target>
|
|
|
-
|
|
|
- <!-- Generates the .version file in the shared framework -->
|
|
|
- <Target Name="GenerateSharedFxVersionsFile" DependsOnTargets="InitializeSourceControlInformation">
|
|
|
- <ItemGroup>
|
|
|
- <VersionLines Include="$(SourceRevisionId)" />
|
|
|
- <VersionLines Include="$(PackageVersion)" />
|
|
|
- </ItemGroup>
|
|
|
-
|
|
|
- <WriteLinesToFile
|
|
|
- File="$(VersionFileOutputPath)"
|
|
|
- Lines="@(VersionLines)"
|
|
|
- Overwrite="true" />
|
|
|
- </Target>
|
|
|
-
|
|
|
- <!-- Generates the .deps.json and PlatformManifest.txt files for a shared framework. -->
|
|
|
- <Target Name="GenerateSharedFxMetadataFiles"
|
|
|
- Inputs="$(PublishDepsFilePath);$(ProjectAssetsFile);$(MSBuildAllProjects)"
|
|
|
- Outputs="$(SharedFxDepsFilePath)">
|
|
|
- <GenerateSharedFrameworkMetadataFiles
|
|
|
- FrameworkName="$(SharedFxName)"
|
|
|
- FrameworkVersion="$(SharedFxVersion)"
|
|
|
- AssetsFilePath="$(ProjectAssetsFile)"
|
|
|
- TargetFramework="$(TargetFramework)"
|
|
|
- DepsFilePath="$(PublishDepsFilePath)"
|
|
|
- DepsFileOutputPath="$(SharedFxDepsFilePath)"
|
|
|
- PlatformManifestOutputPath="$(PlatformManifestOutputPath)"
|
|
|
- BaseRuntimeIdentifier="$(TargetOsName)" />
|
|
|
- </Target>
|
|
|
-
|
|
|
- <!-- Optimizes shared framework output -->
|
|
|
- <Target Name="CollectSharedFxOutput" DependsOnTargets="$(CollectOutputSharedFxDependsOn)">
|
|
|
- <Message Importance="High" Text="$(SharedFxName) (fx: $(TargetRuntimeIdentifier)) -> $(OutputPath)" />
|
|
|
- </Target>
|
|
|
-
|
|
|
- <!-- Prepare the project to run crossgen. -->
|
|
|
- <Target Name="CopySharedFxToOutput" DependsOnTargets="_GetCopyToOutputItems;_BatchCopyToOutputIfNewer" />
|
|
|
-
|
|
|
- <Target Name="_GetCopyToOutputItems" DependsOnTargets="RunResolvePackageDependencies;ComputeFilesToPublish">
|
|
|
- <ItemGroup>
|
|
|
- <NativeAssetsToPublish Include="@(_ResolvedCopyLocalPublishAssets)" Condition="'%(AssetType)' == 'native' " />
|
|
|
- <ResourceAssetsToPublish Include="@(_ResolvedCopyLocalPublishAssets)" Condition="'%(AssetType)' == 'resources'" />
|
|
|
- <RuntimeAssetsToPublish Include="@(_ResolvedCopyLocalPublishAssets)" Condition="'%(AssetType)' == 'runtime'" />
|
|
|
- <OtherAssemblies Include="@(_ResolvedCopyLocalPublishAssets)" Exclude="@(NativeAssetsToPublish);@(ResourceAssetsToPublish);@(RuntimeAssetsToPublish)" />
|
|
|
- </ItemGroup>
|
|
|
-
|
|
|
- <Error Text="Unaccounted shared framework assemblies found: @(OtherAssemblies). These files have an unknown asset type." Condition="'@(OtherAssemblies)' != ''" />
|
|
|
-
|
|
|
- <ItemGroup>
|
|
|
- <CopyToOutputItem Condition=" '$(CrossGenOutput)' != 'true' "
|
|
|
- Include="@(RuntimeAssetsToPublish)" OutputPath="$(RuntimeAssetsOutputPath)%(RuntimeAssetsToPublish.DestinationSubPath)" />
|
|
|
- <CopyToSharedFramework Condition=" '$(CrossGenOutput)' != 'true' "
|
|
|
- Include="@(RuntimeAssetsToPublish)" OutputPath="$(LocalInstallationOutputPath)%(RuntimeAssetsToPublish.DestinationSubPath)" />
|
|
|
- <CopyToOutputItem Include="@(NativeAssetsToPublish)" OutputPath="$(NativeAssetsOutputPath)%(NativeAssetsToPublish.DestinationSubPath)" />
|
|
|
- <CopyToSharedFramework Include="@(NativeAssetsToPublish)" OutputPath="$(LocalInstallationOutputPath)%(NativeAssetsToPublish.DestinationSubPath)" />
|
|
|
- <CopyToOutputItem Include="@(ResourceAssetsToPublish)" OutputPath="$(RuntimeAssetsOutputPath)%(ResourceAssetsToPublish.DestinationSubPath)" />
|
|
|
- <CopyToSharedFramework Include="@(ResourceAssetsToPublish)" OutputPath="$(LocalInstallationOutputPath)%(ResourceAssetsToPublish.DestinationSubPath)" />
|
|
|
- </ItemGroup>
|
|
|
- </Target>
|
|
|
-
|
|
|
- <Target Name="_BatchCopyToOutputIfNewer"
|
|
|
- Inputs="@(CopyToOutputItem)"
|
|
|
- Outputs="@(CopyToOutputItem->'%(OutputPath)')">
|
|
|
- <Copy SourceFiles="@(CopyToOutputItem)"
|
|
|
- DestinationFiles="@(CopyToOutputItem->'%(OutputPath)')"
|
|
|
- UseHardlinksIfPossible="true" />
|
|
|
- </Target>
|
|
|
-
|
|
|
- <Target Name="PrepareForCrossGen" DependsOnTargets="RunResolvePackageDependencies;RunResolvePublishAssemblies" Condition=" '$(CrossGenOutput)' != 'false' ">
|
|
|
- <MakeDir Directories="$(CrossGenToolDir)" />
|
|
|
-
|
|
|
- <PropertyGroup>
|
|
|
- <RuntimePackageName>Microsoft.NETCore.App</RuntimePackageName>
|
|
|
- </PropertyGroup>
|
|
|
-
|
|
|
- <ItemGroup>
|
|
|
- <RuntimePackage Include="@(PackageDefinitions)" Condition="$([System.String]::new('%(PackageDefinitions.Name)').Contains('runtime')) AND $([System.String]::new('%(PackageDefinitions.Name)').Contains('$(RuntimePackageName)'))" />
|
|
|
- </ItemGroup>
|
|
|
-
|
|
|
- <Error Text="Could not identify the crossgen package for $(TargetRuntimeIdentifier)" Condition="@(RuntimePackage->Count()) == 0" />
|
|
|
-
|
|
|
- <ItemGroup>
|
|
|
- <RuntimePackageFiles Include="%(RuntimePackage.ResolvedPath)\runtimes\**\*" />
|
|
|
- <CrossGenToolFile Include="%(RuntimePackage.ResolvedPath)\**\$(CrossGenTool)" />
|
|
|
- </ItemGroup>
|
|
|
-
|
|
|
- <!-- Create tool directory with crossgen executable and runtime assemblies -->
|
|
|
- <Copy SourceFiles="@(RuntimePackageFiles);@(CrossGenToolFile)" DestinationFolder="$(CrossGenToolDir)"/>
|
|
|
-
|
|
|
- <ItemGroup>
|
|
|
- <ClrJitAssembly Include="$(CrossGenToolDir)\**\$(LibPrefix)clrjit$(LibExtension)" />
|
|
|
- </ItemGroup>
|
|
|
-
|
|
|
- <Error Text="Expected to resolve a single runtime package but instead resolved @(RuntimePackage->Count()) with identities %(RuntimePackage.Identity)" Condition="'@(RuntimePackage->Count())' != 1" />
|
|
|
- <Error Text="Could not find crossgen $(CrossGenTool) in %(RuntimePackage.ResolvedPath)" Condition="@(CrossGenToolFile->Count()) == 0" />
|
|
|
- <Error Text="Found multiple crossgen $(CrossGenTool) in %(RuntimePackage.ResolvedPath)" Condition="@(CrossGenToolFile->Count()) > 1" />
|
|
|
- <Error Text="Expected to resolve a single clr jit assembly but instead resolved @(ClrJitAssembly->Count()) with identities %(ClrJitAssembly.Identity)" Condition="'@(ClrJitAssembly->Count())' != 1" />
|
|
|
-
|
|
|
- <!-- Resolve list of assemblies to crossgen -->
|
|
|
- <ItemGroup>
|
|
|
- <AssembliesToCrossgen Include="@(RuntimeAssetsToPublish)">
|
|
|
- <Source>%(FullPath)</Source>
|
|
|
- <Rsp>$(IntermediateOutputPath)%(RecursiveDir)%(Filename).rsp</Rsp>
|
|
|
- <SymbolsRsp>$(IntermediateOutputPath)%(RecursiveDir)%(Filename).symbols.rsp</SymbolsRsp>
|
|
|
- <SymbolsOutputPath>$(SymbolsOutputPath)%(RecursiveDir)%(Filename).ni.pdb</SymbolsOutputPath>
|
|
|
- <Destination>$(RuntimeAssetsOutputPath)%(RecursiveDir)%(Filename)%(Extension)</Destination>
|
|
|
- <DestinationSubPath>%(RecursiveDir)%(Filename)%(Extension)</DestinationSubPath>
|
|
|
- <Symbols>$(SymbolsOutputPath)%(RecursiveDir)</Symbols>
|
|
|
- </AssembliesToCrossgen>
|
|
|
- <CopyToSharedFramework Include="%(AssembliesToCrossgen.Destination)" OutputPath="$(LocalInstallationOutputPath)%(AssembliesToCrossgen.DestinationSubPath)" />
|
|
|
- </ItemGroup>
|
|
|
- </Target>
|
|
|
-
|
|
|
- <!--
|
|
|
- Run the crossgen tool.
|
|
|
- This uses .rsp files to get around OS limitations in the maximum number of characters that can be passed in on command-line.
|
|
|
- -->
|
|
|
- <Target Name="CrossGenAssemblies" Condition=" '$(CrossGenOutput)' != 'false' "
|
|
|
- DependsOnTargets="CopySharedFxToOutput;ResolveReferences"
|
|
|
- Inputs="@(AssembliesToCrossgen)"
|
|
|
- Outputs="%(AssembliesToCrossgen.Destination)">
|
|
|
-
|
|
|
- <ItemGroup>
|
|
|
- <!-- These are the paths used by crossgen to find assemblies that are expected to exist at runtime in the shared frameworks. -->
|
|
|
- <_PlatformAssemblyPaths Remove="@(_PlatformAssemblyPaths)" />
|
|
|
- <_PlatformAssemblyPaths Include="$(CrossGenToolDir)" />
|
|
|
- <_PlatformAssemblyPaths Include="$(PublishDir)" />
|
|
|
- </ItemGroup>
|
|
|
-
|
|
|
- <PropertyGroup>
|
|
|
- <PlatformAssemblyPaths>@(_PlatformAssemblyPaths->Distinct(), '$(PathSeparator)')</PlatformAssemblyPaths>
|
|
|
- </PropertyGroup>
|
|
|
-
|
|
|
- <ItemGroup>
|
|
|
- <CrossGenArgs Include="-nologo" />
|
|
|
- <CrossGenArgs Include="-readytorun" />
|
|
|
- <CrossGenArgs Include="-in %(AssembliesToCrossgen.Source)" />
|
|
|
- <CrossGenArgs Include="-out %(AssembliesToCrossgen.Destination)" />
|
|
|
- <CrossGenArgs Include="-platform_assemblies_paths $(PlatformAssemblyPaths)" />
|
|
|
- <CrossGenArgs Include="-JITPath %(ClrJitAssembly.FullPath)" />
|
|
|
- </ItemGroup>
|
|
|
-
|
|
|
- <MakeDir Directories="$([System.IO.Path]::GetDirectoryName('%(AssembliesToCrossgen.Rsp)'))" />
|
|
|
- <MakeDir Directories="$([System.IO.Path]::GetDirectoryName('%(AssembliesToCrossgen.Destination)'))" />
|
|
|
- <WriteLinesToFile File="%(AssembliesToCrossgen.Rsp)" Lines="@(CrossGenArgs)" Overwrite="true" />
|
|
|
-
|
|
|
- <Copy Condition="'$(CrossGenSharedFx)' == 'false'"
|
|
|
- SourceFiles="%(AssembliesToCrossgen.Source)"
|
|
|
- DestinationFiles="%(AssembliesToCrossgen.Destination)" />
|
|
|
- <Exec Condition="'$(CrossGenSharedFx)' != 'false'"
|
|
|
- Command="$(CrossGenToolDir)$(CrossGenExecutable) @%(AssembliesToCrossgen.Rsp)"
|
|
|
- EnvironmentVariables="COMPlus_PartialNGen=0"
|
|
|
- IgnoreStandardErrorWarningFormat="true"
|
|
|
- StandardOutputImportance="Normal" />
|
|
|
- </Target>
|
|
|
-
|
|
|
- <Target Name="CrossGenSymbols" Condition=" '$(CrossgenSymbolsOutput)' != 'false' "
|
|
|
- DependsOnTargets="CrossGenAssemblies"
|
|
|
- Inputs="@(AssembliesToCrossgen)"
|
|
|
- Outputs="%(AssembliesToCrossgen.SymbolsOutputPath)">
|
|
|
- <PropertyGroup>
|
|
|
- <CrossGenSymbolsType>CreatePerfMap</CrossGenSymbolsType>
|
|
|
- <CrossGenSymbolsType Condition="'$(OS)' == 'Windows_NT'">CreatePDB</CrossGenSymbolsType>
|
|
|
- </PropertyGroup>
|
|
|
-
|
|
|
- <ItemGroup>
|
|
|
- <CrossGenSymbolsArgs Include="-nologo" />
|
|
|
- <CrossGenSymbolsArgs Include="-readytorun" />
|
|
|
- <CrossGenSymbolsArgs Include="-platform_assemblies_paths $(PlatformAssemblyPaths)" />
|
|
|
- <CrossGenSymbolsArgs Include="-$(CrossGenSymbolsType)" />
|
|
|
- <CrossGenSymbolsArgs Include="%(AssembliesToCrossgen.Symbols)" />
|
|
|
- <CrossGenSymbolsArgs Include="%(AssembliesToCrossgen.Destination)" />
|
|
|
- </ItemGroup>
|
|
|
-
|
|
|
- <MakeDir Directories="$([System.IO.Path]::GetDirectoryName('%(AssembliesToCrossgen.Symbols)'))" />
|
|
|
- <WriteLinesToFile File="%(AssembliesToCrossgen.SymbolsRsp)" Lines="@(CrossGenSymbolsArgs)" Overwrite="true" />
|
|
|
-
|
|
|
- <Exec Command="$(CrossGenToolDir)$(CrossGenExecutable) @%(AssembliesToCrossgen.SymbolsRsp)"
|
|
|
- EnvironmentVariables="COMPlus_PartialNGen=0"
|
|
|
- IgnoreStandardErrorWarningFormat="true"
|
|
|
- StandardOutputImportance="Normal" />
|
|
|
- </Target>
|
|
|
-
|
|
|
- <Target Name="CreateManifestResourceNames" />
|
|
|
-
|
|
|
- <Target Name="PopulateNuspec" BeforeTargets="GenerateNuspec">
|
|
|
- <PropertyGroup>
|
|
|
- <NuspecProperties>
|
|
|
- id=$(PackageId);
|
|
|
- version=$(PackageVersion);
|
|
|
- authors=$(Authors);
|
|
|
- rid=$(TargetRuntimeIdentifier);
|
|
|
- description=$(PackageDescription);
|
|
|
- tags=$(PackageTags.Replace(';', ' '));
|
|
|
- licenseUrl=$(PackageLicenseUrl);
|
|
|
- projectUrl=$(PackageProjectUrl);
|
|
|
- iconUrl=$(PackageIconUrl);
|
|
|
- repositoryUrl=$(RepositoryUrl);
|
|
|
- repositoryCommit=$(SourceRevisionId);
|
|
|
- copyright=$(Copyright);
|
|
|
- targetFramework=$(TargetFramework);
|
|
|
- symbolsAssets=$([MSBuild]::NormalizeDirectory($(SymbolsOutputPath)));
|
|
|
- nativeAssets=$([MSBuild]::NormalizeDirectory($(NativeAssetsOutputPath)));
|
|
|
- runtimeAssets=$([MSBuild]::NormalizeDirectory($(RuntimeAssetsOutputPath)));
|
|
|
- </NuspecProperties>
|
|
|
- </PropertyGroup>
|
|
|
- </Target>
|
|
|
-
|
|
|
- <Target Name="PrepareForRun" DependsOnTargets="$(PrepareForRunDependsOn)" />
|
|
|
-
|
|
|
- <Target Name="GetCopyToSharedFrameworkItems" DependsOnTargets="PrepareForCrossGen;CopySharedFxToOutput" />
|
|
|
-
|
|
|
- <!-- Required to workaround https://github.com/dotnet/core-setup/issues/4809. This copies the shared framework into the $reporoot/.dotnet folder so tests can run against the shared framework. -->
|
|
|
- <Target Name="InstallFrameworkIntoLocalDotNet"
|
|
|
- Inputs="@(CopyToSharedFramework)"
|
|
|
- Outputs="@(CopyToSharedFramework->'%(OutputPath)')">
|
|
|
- <Copy SourceFiles="@(CopyToSharedFramework)"
|
|
|
- DestinationFiles="@(CopyToSharedFramework->'%(OutputPath)')"
|
|
|
- UseHardlinksIfPossible="true" />
|
|
|
- </Target>
|
|
|
-</Project>
|