OLD | NEW |
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 { | 5 { |
6 'variables': { | 6 'variables': { |
7 'chromium_code': 1, | 7 'chromium_code': 1, |
8 | 8 |
9 # Keep the archive builder happy. | 9 # Keep the archive builder happy. |
10 'chrome_personalization%': 1, | 10 'chrome_personalization%': 1, |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
147 'urlmon_upload_data_stream_unittest.cc', | 147 'urlmon_upload_data_stream_unittest.cc', |
148 'vtable_patch_manager_unittest.cc', | 148 'vtable_patch_manager_unittest.cc', |
149 ], | 149 ], |
150 'include_dirs': [ | 150 'include_dirs': [ |
151 '<(DEPTH)/breakpad/src', | 151 '<(DEPTH)/breakpad/src', |
152 ], | 152 ], |
153 'resource_include_dirs': [ | 153 'resource_include_dirs': [ |
154 '<(INTERMEDIATE_DIR)', | 154 '<(INTERMEDIATE_DIR)', |
155 ], | 155 ], |
156 'conditions': [ | 156 'conditions': [ |
157 # We can't instrument code for coverage if it depends on 3rd party | |
158 # binaries that we don't have PDBs for. See here for more details: | |
159 # http://connect.microsoft.com/VisualStudio/feedback/details/176188/can-
not-disable-warning-lnk4099 | |
160 ['coverage==0', { | |
161 'conditions': [ | |
162 ['OS=="win"', { | |
163 'dependencies': [ | |
164 '../breakpad/breakpad.gyp:breakpad_handler', | |
165 # TODO(slightlyoff): Get automation targets working on OS X | |
166 '../chrome/chrome.gyp:automation', | |
167 ], | |
168 }], | |
169 ], | |
170 }], | |
171 ['OS=="win" and buildtype=="Official"', { | 157 ['OS=="win" and buildtype=="Official"', { |
172 'configurations': { | 158 'configurations': { |
173 'Release': { | 159 'Release': { |
174 'msvs_settings': { | 160 'msvs_settings': { |
175 'VCCLCompilerTool': { | 161 'VCCLCompilerTool': { |
176 'WholeProgramOptimization': 'false', | 162 'WholeProgramOptimization': 'false', |
177 }, | 163 }, |
178 }, | 164 }, |
179 }, | 165 }, |
180 }, | 166 }, |
181 },], | 167 },], |
182 ['OS=="win"', { | 168 ['OS=="win"', { |
183 'link_settings': { | 169 'link_settings': { |
184 'libraries': [ | 170 'libraries': [ |
185 '-lshdocvw.lib', | 171 '-lshdocvw.lib', |
186 '-loleacc.lib', | 172 '-loleacc.lib', |
187 ], | 173 ], |
188 }, | 174 }, |
189 'msvs_settings': { | 175 'msvs_settings': { |
190 'VCLinkerTool': { | 176 'VCLinkerTool': { |
191 'DelayLoadDLLs': ['shdocvw.dll'], | 177 'DelayLoadDLLs': ['shdocvw.dll'], |
192 }, | 178 }, |
193 }, | 179 }, |
194 'dependencies': [ | 180 'dependencies': [ |
| 181 '../breakpad/breakpad.gyp:breakpad_handler', |
195 # TODO(slightlyoff): Get automation targets working on OS X | 182 # TODO(slightlyoff): Get automation targets working on OS X |
196 '../chrome/chrome.gyp:automation', | 183 '../chrome/chrome.gyp:automation', |
197 '../chrome/chrome.gyp:installer_util', | 184 '../chrome/chrome.gyp:installer_util', |
198 '../google_update/google_update.gyp:google_update', | 185 '../google_update/google_update.gyp:google_update', |
199 ], | 186 ], |
200 'configurations': { | 187 'configurations': { |
201 'Debug_Base': { | 188 'Debug_Base': { |
202 'msvs_settings': { | 189 'msvs_settings': { |
203 'VCLinkerTool': { | 190 'VCLinkerTool': { |
204 'LinkIncremental': '<(msvs_large_module_debug_link_mode)', | 191 'LinkIncremental': '<(msvs_large_module_debug_link_mode)', |
(...skipping 750 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
955 'VCManifestTool': { | 942 'VCManifestTool': { |
956 'AdditionalManifestFiles': [ | 943 'AdditionalManifestFiles': [ |
957 '$(ProjectDir)\\resources\\npchrome_frame.dll.manifest', | 944 '$(ProjectDir)\\resources\\npchrome_frame.dll.manifest', |
958 ], | 945 ], |
959 }, | 946 }, |
960 }, | 947 }, |
961 }], | 948 }], |
962 ], | 949 ], |
963 }, | 950 }, |
964 ], | 951 ], |
965 'conditions': [ | |
966 # To enable the coverage targets, do | |
967 # GYP_DEFINES='coverage=1' gclient sync | |
968 ['coverage!=0', | |
969 { 'targets': [ | |
970 { | |
971 # Coverage BUILD AND RUN. | |
972 # Not named coverage_build_and_run for historical reasons. | |
973 'target_name': 'gcf_coverage', | |
974 'dependencies': [ 'gcf_coverage_build', 'gcf_coverage_run' ], | |
975 # do NOT place this in the 'all' list; most won't want it. | |
976 'suppress_wildcard': 1, | |
977 'type': 'none', | |
978 'actions': [ | |
979 { | |
980 'message': 'Coverage is now complete', | |
981 # MSVS must have an input file and an output file. | |
982 'inputs': [ '<(PRODUCT_DIR)/gcf_coverage.info' ], | |
983 'outputs': [ '<(PRODUCT_DIR)/gcf_coverage-build-and-run.stamp' ], | |
984 'action_name': 'gcf_coverage', | |
985 # Wish gyp had some basic builtin commands (e.g. 'touch'). | |
986 'action': [ 'python', '-c', | |
987 'import os; ' \ | |
988 'open(' \ | |
989 '\'<(PRODUCT_DIR)\' + os.path.sep + ' \ | |
990 '\'gcf_coverage-build-and-run.stamp\'' \ | |
991 ', \'w\').close()' ], | |
992 # Use outputs of this action as inputs for the main target build. | |
993 # Seems as a misnomer but makes this happy on Linux (scons). | |
994 'process_outputs_as_sources': 1, | |
995 }, | |
996 ], | |
997 }, | |
998 # Coverage BUILD. Compile only; does not run the bundles. | |
999 # Intended as the build phase for our coverage bots. | |
1000 # | |
1001 # Builds unit test bundles needed for coverage. | |
1002 # Outputs this list of bundles into gcf_coverage_bundles.py. | |
1003 # | |
1004 # If you want to both build and run coverage from your IDE, | |
1005 # use the 'gcf_coverage' target. | |
1006 { | |
1007 'target_name': 'gcf_coverage_build', | |
1008 'suppress_wildcard': 1, | |
1009 'type': 'none', | |
1010 'dependencies': [ | |
1011 # Some tests are disabled because they depend on browser.lib which | |
1012 # has some trouble to link with instrumentation. Until this is | |
1013 # fixed on the Chrome side we won't get complete coverage from | |
1014 # our tests but we at least get the process rolling... | |
1015 # TODO(mad): FIX THIS! | |
1016 #'chrome_frame_net_tests', | |
1017 #'chrome_frame_reliability_tests', | |
1018 | |
1019 # Other tests depend on Chrome bins being available when they run. | |
1020 # Those should be re-enabled as soon as we setup the build slave to | |
1021 # also build (or download an archive of) Chrome, even it it isn't | |
1022 # instrumented itself. | |
1023 # TODO(mad): FIX THIS! | |
1024 #'chrome_frame_perftests', | |
1025 #'chrome_frame_tests', | |
1026 | |
1027 'chrome_frame_unittests', | |
1028 ], # 'dependencies' | |
1029 'actions': [ | |
1030 { | |
1031 # TODO(jrg): | |
1032 # Technically I want inputs to be the list of | |
1033 # executables created in <@(_dependencies) but use of | |
1034 # that variable lists the dep by dep name, not their | |
1035 # output executable name. | |
1036 # Is there a better way to force this action to run, always? | |
1037 # | |
1038 # If a test bundle is added to this gcf_coverage_build target it | |
1039 # necessarily means this file (chrome_frame.gyp) is changed, | |
1040 # so the action is run (gcf_coverage_bundles.py is generated). | |
1041 # Exceptions to that rule are theoretically possible | |
1042 # (e.g. re-gyp with a GYP_DEFINES set). | |
1043 # Else it's the same list of bundles as last time. They are | |
1044 # built (since on the deps list) but the action may not run. | |
1045 # For now, things work, but it's less than ideal. | |
1046 'inputs': [ 'chrome_frame.gyp' ], | |
1047 'outputs': [ '<(PRODUCT_DIR)/gcf_coverage_bundles.py' ], | |
1048 'action_name': 'gcf_coverage_build', | |
1049 'action': [ 'python', '-c', | |
1050 'import os; ' | |
1051 'f = open(' \ | |
1052 '\'<(PRODUCT_DIR)\' + os.path.sep + ' \ | |
1053 '\'gcf_coverage_bundles.py\'' \ | |
1054 ', \'w\'); ' \ | |
1055 'deplist = \'' \ | |
1056 '<@(_dependencies)' \ | |
1057 '\'.split(\' \'); ' \ | |
1058 'f.write(str(deplist)); ' \ | |
1059 'f.close()'], | |
1060 # Use outputs of this action as inputs for the main target build. | |
1061 # Seems as a misnomer but makes this happy on Linux (scons). | |
1062 'process_outputs_as_sources': 1, | |
1063 }, | |
1064 ], | |
1065 }, | |
1066 # Coverage RUN. Does not actually compile the bundles (though it | |
1067 # depends on the gcf_coverage_build step which will do it). | |
1068 # This target mirrors the run_coverage_bundles buildbot phase. | |
1069 # If you update this command update the mirror in | |
1070 # $BUILDBOT/scripts/master/factory/chromium_commands.py. | |
1071 # If you want both build and run, use the 'gcf_coverage' target which | |
1072 # adds a bit more magic to identify if we need to run or not. | |
1073 { | |
1074 'target_name': 'gcf_coverage_run', | |
1075 'dependencies': [ 'gcf_coverage_build' ], | |
1076 'suppress_wildcard': 1, | |
1077 'type': 'none', | |
1078 'actions': [ | |
1079 { | |
1080 # MSVS must have an input file and an output file. | |
1081 'inputs': [ '<(PRODUCT_DIR)/gcf_coverage_bundles.py' ], | |
1082 'outputs': [ '<(PRODUCT_DIR)/gcf_coverage.info' ], | |
1083 'action_name': 'gcf_coverage_run', | |
1084 'action': [ 'python', | |
1085 '../tools/code_coverage/coverage_posix.py', | |
1086 '--directory', | |
1087 '<(PRODUCT_DIR)', | |
1088 '--src_root', | |
1089 '.', | |
1090 '--bundles', | |
1091 '<(PRODUCT_DIR)/gcf_coverage_bundles.py', | |
1092 ], | |
1093 # Use outputs of this action as inputs for the main target build. | |
1094 # Seems as a misnomer but makes this happy on Linux (scons). | |
1095 'process_outputs_as_sources': 1, | |
1096 }, | |
1097 ], | |
1098 }, | |
1099 ], | |
1100 }, ], # 'coverage!=0' | |
1101 ], # 'conditions' | |
1102 } | 952 } |
OLD | NEW |