blob: 67865a50cdab995f5405319e3f85f73896545bfb [file] [log] [blame]
# 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'
}