--- /dev/null
+<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <PropertyGroup Condition="'$(ApplyPartialNgenOptimization)' == ''">
+ <ApplyPartialNgenOptimization Condition="'$(IsReferenceAssembly)' == 'true'">false</ApplyPartialNgenOptimization>
+ <ApplyPartialNgenOptimization Condition="'$(GeneratePlatformNotSupportedAssembly)' == 'true' OR '$(GeneratePlatformNotSupportedAssemblyMessage)' != ''">false</ApplyPartialNgenOptimization>
+ </PropertyGroup>
+
+ <Target Name="SetApplyPartialNgenOptimization"
+ Condition="'$(ApplyPartialNgenOptimization)' == ''"
+ BeforeTargets="CoreCompile">
+ <ItemGroup>
+ <_optimizationDataAssembly Include="$(IbcOptimizationDataDir)**\$(TargetFileName)" />
+ </ItemGroup>
+ <PropertyGroup>
+ <ApplyPartialNgenOptimization Condition="'@(_optimizationDataAssembly)' != ''">true</ApplyPartialNgenOptimization>
+ </PropertyGroup>
+ </Target>
+
+</Project>
\ No newline at end of file
</ItemGroup>
<Error Condition="'@(NuGetDeploy)' == ''" Text="Error no assets were resolved from NuGet packages." />
- <Message Importance="High" Text="%(FullPath) (%(NuGetPackageId).%(NuGetPackageVersion)) -> @(NuGetDeploy->'$(TargetDir)%(FileName)%(Extension)')" />
+ <Message Importance="High" Text="%(FullPath) (%(NuGetPackageId).%(NuGetPackageVersion)) -> @(NuGetDeploy->'$(TargetDir)%(SubFolder)%(FileName)%(Extension)')" />
<!-- Include marker files if an extension has been provided -->
<!-- internal builds use this to distinguish files which have already been signed -->
<!-- SNI runtime package -->
<RuntimeWinX64RuntimeNativeSystemDataSqlClientSniPackageVersion>4.4.0</RuntimeWinX64RuntimeNativeSystemDataSqlClientSniPackageVersion>
+
+ <CoreFxOptimizationDataPackageId>optimization.windows_nt-x64.IBC.CoreFx</CoreFxOptimizationDataPackageId>
+ <CoreFxOptimizationDataPackageId Condition="'$(IBCTarget)'=='Linux'">optimization.linux-x64.IBC.CoreFx</CoreFxOptimizationDataPackageId>
</PropertyGroup>
<!-- Tests/infrastructure dependency versions. -->
<CoverletConsolePackageVersion>1.4.0</CoverletConsolePackageVersion>
<DotNetReportGeneratorGlobalToolPackageVersion>4.0.5</DotNetReportGeneratorGlobalToolPackageVersion>
- <!-- Roslyn optimization data package version -->
<MicrosoftDotNetIBCMergePackageVersion>4.6.0-alpha-00001</MicrosoftDotNetIBCMergePackageVersion>
<TestILCAmd64retPackageVersion>$(ProjectNTfsTestILCPackageVersion)</TestILCAmd64retPackageVersion>
<TestILCArmretPackageVersion>$(ProjectNTfsTestILCPackageVersion)</TestILCArmretPackageVersion>
<TestILCX86retPackageVersion>$(ProjectNTfsTestILCPackageVersion)</TestILCX86retPackageVersion>
- <OptimizationDataVersion>2.0.0-rc-61101-17</OptimizationDataVersion>
<CoreFxOptimizationDataVersion>99.99.99-master-20190221.1</CoreFxOptimizationDataVersion>
</PropertyGroup>
<Import Project="Directory.Build.targets" />
- <Target Name="Restore" DependsOnTargets="GenerateConfigurationProps;RestoreOptimizationDataPackage">
+ <Target Name="Restore" DependsOnTargets="GenerateConfigurationProps">
<ItemGroup>
<_RestoreProjects Include="external\dir.proj" />
</ItemGroup>
<!-- We need configuration-specific assets files. -->
<RestoreOutputPath>$(IntermediateOutputPath)</RestoreOutputPath>
<ProjectAssetsFile>$(RestoreOutputPath)/project.assets.json</ProjectAssetsFile>
+ <MSBuildProjectExtensionsPath>$(IntermediateOutputPath)</MSBuildProjectExtensionsPath>
<!-- let us control the output path -->
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
</PropertyGroup>
<Project Include="harvestPackages/harvestPackages.depproj" />
<Project Include="binplacePackages/binplacePackages.depproj" />
<Project Include="docs/docs.depproj" Condition="'$(DotNetBuildFromSource)' != 'true'" />
+ <Project Include="optimizationData/optimizationData.depproj" Condition="'$(EnablePartialNgenOptimization)' == 'true' AND '$(DotNetBuildFromSource)' != 'true'" />
<Project Condition="'$(ILLinkTrimAssembly)' != 'false'" Include="ILLink/ILLink.depproj" />
</ItemGroup>
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="NETStandard.Library">
+ <PackageReference Include="NETStandard.Library" ExcludeAssets="Build">
<Version>$(NETStandardLibraryPackageVersion)</Version>
</PackageReference>
</ItemGroup>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <BuildConfigurations>
+ netstandard;
+ </BuildConfigurations>
+ </PropertyGroup>
+</Project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project Sdk="Microsoft.NET.Sdk">
+ <PropertyGroup>
+ <RestoreSources>
+ https://dotnet.myget.org/F/dotnet-core-optimization-data/api/v3/index.json;
+ $(RestoreSources);
+ </RestoreSources>
+ <!-- Copy to IBC directory -->
+ <OutputPath>$(IbcOptimizationDataDir)</OutputPath>
+ <EnableBinPlacing>false</EnableBinPlacing>
+ </PropertyGroup>
+ <ItemGroup>
+ <!-- IBC data -->
+ <IBCPackage Include="$(CoreFxOptimizationDataPackageId)" Version="$(CoreFxOptimizationDataVersion)" AddDirectory="true" />
+ <PackageReference Include="@(IBCPackage)" GeneratePathProperty="true" />
+ </ItemGroup>
+
+ <!-- IBC data packages don't follow NuGet conventions, so grab the contents
+ using the NuGet-generated-property that points to the restored package. -->
+ <Target Name="GetIBCData"
+ Inputs="%(IBCPackage.Identity)"
+ Outputs="unused"
+ AfterTargets="ResolveReferences">
+ <ItemGroup>
+ <IBCPackage>
+ <!-- Assign metadata using the nuget convention for property naming -->
+ <PropertyName>Pkg$([System.String]::new('%(IBCPackage.Identity)').Replace('.', '_'))</PropertyName>
+ </IBCPackage>
+ </ItemGroup>
+ <PropertyGroup>
+ <!-- evaluate the package property -->
+ <_ibcPkgSrc>$(%(IBCPackage.PropertyName))</_ibcPkgSrc>
+ <_ibcPkgDest>%(IBCPackage.Identity)</_ibcPkgDest>
+ <_includeFileDir>%(IBCPackage.AddDirectory)</_includeFileDir>
+ </PropertyGroup>
+
+ <Error Condition="!Exists('$(_ibcPkgSrc)')" Text="Package '%(IBCPackage.Identity)' was not restored!" />
+
+ <ItemGroup>
+ <_optimizationDataSourceFile Include="$(_ibcPkgSrc)\**\*.dll;$(_ibcPkgSrc)\**\*.ibc"
+ NuGetPackageId="%(IBCPackage.Identity)"
+ NuGetPackageVersion="%(IBCPackage.Version)" />
+ <_optimizationDataSourceFile SubFolder="$(_ibcPkgDest)\%(RecursiveDir)" />
+ <_optimizationDataSourceFile Condition="'$(_includeFileDir)' == 'true'" SubFolder="%(SubFolder)%(FileName).dll\" />
+ <ReferenceCopyLocalPaths Include="@(_optimizationDataSourceFile)" />
+ </ItemGroup>
+ </Target>
+
+</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="14.0" InitialTargets="CheckForBuildTools" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Condition="'$(IsFrameworkPackage)' == 'true'" Project="frameworkPackage.targets" />