# 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' }