diff options
author | Daniel Podder <dapodd@microsoft.com> | 2017-03-16 14:37:07 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-16 14:37:07 -0700 |
commit | 1b64c03493a4b7e4336f0dabbdf4ed980f0d109c (patch) | |
tree | a99ada676214fba3125a7f0cef2c90fe861317aa /build.proj | |
parent | f1087c7acbc4dc1bc4556af629a67ea606a96713 (diff) | |
download | coreclr-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.proj | 7 |
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) "$(OptDataProjectJson)" --source "$(OptDataPackageFeed)"" /> </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) "$(SourceDir).nuget/init/project.json" --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json" /> </Target> |