Index: chrome/chrome_pgo.gypi |
diff --git a/chrome/chrome_pgo.gypi b/chrome/chrome_pgo.gypi |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0fb90b416c20153cc3044a051f2a24f9618676a1 |
--- /dev/null |
+++ b/chrome/chrome_pgo.gypi |
@@ -0,0 +1,73 @@ |
+# Copyright (c) 2014 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+{ |
+ 'conditions': [ |
+ ['OS=="win"', { |
+ 'targets': [ |
+ # In the PGO (Profile-Guided Optimization) build flow, we need to |
+ # build the target binary multiple times. To implement this flow with |
+ # gyp, here we define multiple targets, each of which represents one |
+ # build particular build/profile stage. |
+ { |
+ 'target_name': 'chrome_pgo_main', |
+ 'type': 'none', |
yukawa
2014/03/07 05:25:22
Does this really work? The 'type' is 'none' here.
|
+ 'dependencies': [ 'chrome_main_dll', ], |
+ 'msvs_settings': { |
+ 'VCCLCompilerTool': { |
+ 'WholeProgramOptimization': 'true', # /GL |
+ }, |
+ 'VCLibrarianTool': { |
+ 'LinkTimeCodeGeneration': 'true', |
+ }, |
+ }, |
+ 'link_settings': { |
+ 'msvs_settings': { |
+ 'VCLinkerTool': { |
+ # Tell ninja generator not to pass /ManifestFile:<filename> |
yukawa
2014/03/07 05:25:22
You might be able to drop this hack. I added this
|
+ # option to the linker, because it causes LNK1268 error in PGO |
+ # build. |
+ 'GenerateManifest': 'false', |
+ }, |
+ }, |
+ }, |
+ }, { |
+ 'target_name': 'chrome_pgo_instrument', |
+ 'type': 'none', |
+ 'msvs_settings': { |
+ 'VCLinkerTool': { |
+ 'LinkTimeCodeGeneration': '2', |
+ }, |
+ }, |
+ 'dependencies': [ |
+ 'chrome_pgo_main', |
+ ], |
+ }, { |
+ 'target_name': 'chrome_pgo_optimize', |
+ 'type': 'none', |
+ 'msvs_settings': { |
+ 'VCLinkerTool': { |
+ 'LinkTimeCodeGeneration': '3', |
+ }, |
+ }, |
+ 'dependencies': [ |
+ # TODO(sebmarchand): Add a target that run some profile test cases. |
+ 'chrome_pgo_instrument', |
+ 'chrome_pgo_main', |
+ ], |
+ }, { |
+ 'target_name': 'chrome_pgo_update', |
+ 'type': 'none', |
+ 'msvs_settings': { |
+ 'VCLinkerTool': { |
+ 'LinkTimeCodeGeneration': '4', |
+ }, |
+ }, |
+ 'dependencies': [ |
+ 'chrome_pgo_main', |
+ ], |
+ }, |
+ ], |
+ }], |
+ ], |
+} |