| # Copyright (c) 2010 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. |
| |
| { |
| 'targets': [ |
| { |
| 'target_name': 'ceee_all', |
| 'type': 'none', |
| 'dependencies': [ |
| 'common/common.gyp:ceee_common_unittests', |
| 'ie/ie.gyp:ceee_ie_all', |
| 'firefox/firefox.gyp:xpi', |
| 'installer_dll/ceee_installer_dll.gyp:*', |
| 'testing/manual/ie_broker/call_broker/call_broker.gyp:call_broker', |
| ] |
| }, |
| ], |
| 'conditions': [ |
| # To enable the coverage targets, do |
| # GYP_DEFINES='coverage=1' gclient sync |
| ['coverage!=0', |
| { 'targets': [ |
| { |
| ### Coverage BUILD AND RUN. |
| ### Not named coverage_build_and_run for historical reasons. |
| 'target_name': 'ceee_coverage', |
| 'dependencies': [ 'ceee_coverage_build', 'ceee_coverage_run' ], |
| # do NOT place this in the 'all' list; most won't want it. |
| # In gyp, booleans are 0/1 not True/False. |
| 'suppress_wildcard': 1, |
| 'type': 'none', |
| 'actions': [ |
| { |
| 'message': 'Coverage is now complete.', |
| # MSVS must have an input file and an output file. |
| 'inputs': [ '<(PRODUCT_DIR)/ceee_coverage.info' ], |
| 'outputs': [ '<(PRODUCT_DIR)/ceee_coverage-build-and-run.stamp' ], |
| 'action_name': 'ceee_coverage', |
| # Wish gyp had some basic builtin commands (e.g. 'touch'). |
| 'action': [ 'python', '-c', |
| 'import os; ' \ |
| 'open(' \ |
| '\'<(PRODUCT_DIR)\' + os.path.sep + ' \ |
| '\'ceee_coverage-build-and-run.stamp\'' \ |
| ', \'w\').close()' ], |
| # Use outputs of this action as inputs for the main target build. |
| # Seems as a misnomer but makes this happy on Linux (scons). |
| 'process_outputs_as_sources': 1, |
| }, |
| ], # 'actions' |
| }, |
| ### Coverage BUILD. Compile only; does not run the bundles. |
| ### Intended as the build phase for our coverage bots. |
| ### |
| ### Builds unit test bundles needed for coverage. |
| ### Outputs this list of bundles into coverage_bundles.py. |
| ### |
| ### If you want to both build and run coverage from your IDE, |
| ### use the 'coverage' target. |
| { |
| 'target_name': 'ceee_coverage_build', |
| # do NOT place this in the 'all' list; most won't want it. |
| # In gyp, booleans are 0/1 not True/False. |
| 'suppress_wildcard': 1, |
| 'type': 'none', |
| 'dependencies': [ |
| 'ie/ie.gyp:ie_unittests', |
| 'ie/ie.gyp:mediumtest_ie', |
| 'common/common.gyp:ceee_common_unittests', |
| ], # 'dependencies' |
| 'actions': [ |
| { |
| # TODO(jrg@chromium.org): |
| # Technically I want inputs to be the list of |
| # executables created in <@(_dependencies) but use of |
| # that variable lists the dep by dep name, not their |
| # output executable name. |
| # Is there a better way to force this action to run, always? |
| # |
| # If a test bundle is added to this coverage_build target it |
| # necessarily means this file (ceee.gyp) is changed, |
| # so the action is run (coverage_bundles.py is generated). |
| # Exceptions to that rule are theoretically possible |
| # (e.g. re-gyp with a GYP_DEFINES set). |
| # Else it's the same list of bundles as last time. They are |
| # built (since on the deps list) but the action may not run. |
| # For now, things work, but it's less than ideal. |
| 'inputs': [ 'ceee.gyp' ], |
| 'outputs': [ '<(PRODUCT_DIR)/ceee_ie_coverage_bundles.py' ], |
| 'action_name': 'ceee_coverage_build', |
| 'action': [ 'python', '-c', |
| 'import os; ' |
| 'f = open(' \ |
| '\'<(PRODUCT_DIR)\' + os.path.sep + ' \ |
| '\'coverage_bundles.py\'' \ |
| ', \'w\'); ' \ |
| 'deplist = \'' \ |
| '<@(_dependencies)' \ |
| '\'.split(\' \'); ' \ |
| 'f.write(str(deplist)); ' \ |
| 'f.close()'], |
| # Use outputs of this action as inputs for the main target build. |
| # Seems as a misnomer but makes this happy on Linux (scons). |
| 'process_outputs_as_sources': 1, |
| }, |
| ], # 'actions' |
| }, |
| ### Coverage RUN. Does not compile the bundles. Mirrors the |
| ### run_coverage_bundles buildbot phase. If you update this |
| ### command update the mirror in |
| ### $BUILDBOT/scripts/master/factory/chromium_commands.py. |
| ### If you want both build and run, use the 'ceee_coverage' target. |
| { |
| 'target_name': 'ceee_coverage_run', |
| 'dependencies': [ 'ceee_coverage_build' ], |
| # do NOT place this in the 'all' list; most won't want it. |
| # In gyp, booleans are 0/1 not True/False. |
| 'suppress_wildcard': 1, |
| 'type': 'none', |
| 'actions': [ |
| { |
| # MSVS must have an input file and an output file. |
| 'inputs': [ '<(PRODUCT_DIR)/coverage_bundles.py' ], |
| 'outputs': [ '<(PRODUCT_DIR)/coverage.info' ], |
| 'action_name': 'ceee_coverage_run', |
| 'action': [ 'python', |
| '../tools/code_coverage/coverage_posix.py', |
| '--directory', |
| '<(PRODUCT_DIR)', |
| '--src_root', |
| '.', |
| '--bundles', |
| '<(PRODUCT_DIR)/coverage_bundles.py', |
| ], |
| # Use outputs of this action as inputs for the main target build. |
| # Seems as a misnomer but makes this happy on Linux (scons). |
| 'process_outputs_as_sources': 1, |
| }, |
| ], # 'actions' |
| }, |
| ], |
| }, ], # 'coverage!=0' |
| ], # 'conditions' |
| } |