summaryrefslogtreecommitdiff
path: root/build.proj
diff options
context:
space:
mode:
authorDaniel Podder <dapodd@microsoft.com>2017-03-16 14:37:07 -0700
committerGitHub <noreply@github.com>2017-03-16 14:37:07 -0700
commit1b64c03493a4b7e4336f0dabbdf4ed980f0d109c (patch)
treea99ada676214fba3125a7f0cef2c90fe861317aa /build.proj
parentf1087c7acbc4dc1bc4556af629a67ea606a96713 (diff)
downloadcoreclr-1b64c03493a4b7e4336f0dabbdf4ed980f0d109c.tar.gz
coreclr-1b64c03493a4b7e4336f0dabbdf4ed980f0d109c.tar.bz2
coreclr-1b64c03493a4b7e4336f0dabbdf4ed980f0d109c.zip
Add IBC support to managed build (#10180)
Add a new build switch, `ibcinstrument`, that adds `/Tuning` on the `crossgen` command line when building System.Private.CoreLib and its peers. Automatically consume IBC optdata during builds when these conditions are met: 1. `ibcinstrument` is *not* passed to the build, 2. optdata is available 3. ibcmerge is available Note that `optdata` will not yet be restored with this change; once packages for master are made available, a new package reference will still need to be added. This PR attempts to unblock manually testing IBC, as well as surrounding CI/infrastructure work. To help produce an IBC-optimized build using manually generated profile data, run the newly added `tests/scripts/optdata/bootstrap.py` script. It will configure the build to consume IBC data from a path automatically, and print out that path where profile data can be copied.
Diffstat (limited to 'build.proj')
-rw-r--r--build.proj7
1 files changed, 7 insertions, 0 deletions
diff --git a/build.proj b/build.proj
index 9992bdc9c6..07bb11a922 100644
--- a/build.proj
+++ b/build.proj
@@ -32,6 +32,13 @@
<Exec Condition="Exists('$(OptDataProjectJson)')" Command="$(DnuRestoreCommand) &quot;$(OptDataProjectJson)&quot; --source &quot;$(OptDataPackageFeed)&quot;" />
</Target>
+ <!--
+ BuildTools will conditionally restore additional packages, including IBC tools, using the "RestoreOptionalToolingPackages"
+ target, which runs automatically before "Sync". Since no "Sync" target actually exists, go ahead and define one now so that
+ the tools are fetched before "Build".
+ -->
+ <Target Name="Sync" BeforeTargets="Build" />
+
<Target Name="RestoreNETCorePlatforms" AfterTargets="Build" Condition="'$(RestoreDuringBuild)'=='true'">
<Exec Command="$(DnuRestoreCommand) &quot;$(SourceDir).nuget/init/project.json&quot; --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json" />
</Target>