Mark Mentovai e18f6a6e66 Nest crashpad and mini_chromum deeper in the external-dependencies build
crashpad and mini_chromium both have top-level “build” directories.
These would conflict with top-level “BUILD” files in google3 when
checked out on a case-sensitive filesystem. Although Crashpad’s “build”
directory can be moved easily, mini_chromium’s matches Chromium’s, which
is much more difficult to move. “build” is also the best and most
obvious name for these directories.

To avoid this problem, in the external-dependencies build, crashpad and
mini_chromium are placed one level deeper, just as crashpad is in
Chromium, and mini_chromium is in the standalone Crashpad build. This
allows true pristine unmodified copies to be checked in to google3,
without comingling locally-added files such as BUILD with external
source.

The directory structure adopted for the external-dependencies build is
now

      root/crashpad/crashpad[/README]
      root/gmock[/include/gmock/gmock.h]
      root/gtest[/include/gtest/gtest.h]
      root/gyp[/pylib/gyp]
      root/mini_chromium/mini_chromium[/build/common.gypi]

Change-Id: Idbc8f1b0d87da0cbceab3c15e059e839c1fb6a3f
Reviewed-on: https://chromium-review.googlesource.com/323991
Reviewed-by: Robert Sesek <rsesek@chromium.org>
2016-01-27 21:59:50 +00:00

229 lines
7.6 KiB
Python

# Copyright 2014 The Crashpad Authors. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
{
'includes': [
'../../build/crashpad_dependencies.gypi',
],
'conditions': [
['crashpad_dependencies!="chromium"', {
'variables': {
'conditions': [
['crashpad_dependencies=="standalone"', {
'gmock_dir': 'gtest/googlemock',
}, {
'gmock_dir': '../../../../gmock',
}],
],
},
'target_defaults': {
# gmock relies heavily on objects with static storage duration.
'xcode_settings': {
'WARNING_CFLAGS!': [
'-Wexit-time-destructors',
],
},
'cflags!': [
'-Wexit-time-destructors',
],
},
'targets': [
{
'target_name': 'gmock',
'type': 'static_library',
'dependencies': [
'gtest.gyp:gtest',
],
'include_dirs': [
'<(gmock_dir)',
'<(gmock_dir)/include',
],
'sources': [
'<(gmock_dir)/include/gmock/gmock-actions.h',
'<(gmock_dir)/include/gmock/gmock-cardinalities.h',
'<(gmock_dir)/include/gmock/gmock-generated-actions.h',
'<(gmock_dir)/include/gmock/gmock-generated-function-mockers.h',
'<(gmock_dir)/include/gmock/gmock-generated-matchers.h',
'<(gmock_dir)/include/gmock/gmock-generated-nice-strict.h',
'<(gmock_dir)/include/gmock/gmock-matchers.h',
'<(gmock_dir)/include/gmock/gmock-more-actions.h',
'<(gmock_dir)/include/gmock/gmock-more-matchers.h',
'<(gmock_dir)/include/gmock/gmock-spec-builders.h',
'<(gmock_dir)/include/gmock/gmock.h',
'<(gmock_dir)/include/gmock/internal/custom/gmock-generated-actions.h',
'<(gmock_dir)/include/gmock/internal/custom/gmock-matchers.h',
'<(gmock_dir)/include/gmock/internal/custom/gmock-port.h',
'<(gmock_dir)/include/gmock/internal/gmock-generated-internal-utils.h',
'<(gmock_dir)/include/gmock/internal/gmock-internal-utils.h',
'<(gmock_dir)/include/gmock/internal/gmock-port.h',
'<(gmock_dir)/src/gmock-all.cc',
'<(gmock_dir)/src/gmock-cardinalities.cc',
'<(gmock_dir)/src/gmock-internal-utils.cc',
'<(gmock_dir)/src/gmock-matchers.cc',
'<(gmock_dir)/src/gmock-spec-builders.cc',
'<(gmock_dir)/src/gmock.cc',
],
'sources!': [
'<(gmock_dir)/src/gmock-all.cc',
],
'direct_dependent_settings': {
'include_dirs': [
'<(gmock_dir)/include',
],
'conditions': [
['clang!=0', {
# The MOCK_METHODn() macros do not specify “override”, which
# triggers this warning in users: “error: 'Method' overrides a
# member function but is not marked 'override'
# [-Werror,-Winconsistent-missing-override]”. Suppress these
# warnings, and add -Wno-unknown-warning-option because only
# recent versions of clang (trunk r220703 and later, version
# 3.6 and later) recognize it.
'conditions': [
['OS=="mac"', {
'xcode_settings': {
'WARNING_CFLAGS': [
'-Wno-inconsistent-missing-override',
'-Wno-unknown-warning-option',
],
},
}],
['OS=="linux"', {
'cflags': [
'-Wno-inconsistent-missing-override',
'-Wno-unknown-warning-option',
],
}],
],
}],
],
},
'export_dependent_settings': [
'gtest.gyp:gtest',
],
},
{
'target_name': 'gmock_main',
'type': 'static_library',
'dependencies': [
'gmock',
'gtest.gyp:gtest',
],
'sources': [
'<(gmock_dir)/src/gmock_main.cc',
],
},
{
'target_name': 'gmock_test_executable',
'type': 'none',
'dependencies': [
'gmock',
'gtest.gyp:gtest',
],
'direct_dependent_settings': {
'type': 'executable',
'include_dirs': [
'<(gmock_dir)',
],
},
'export_dependent_settings': [
'gmock',
'gtest.gyp:gtest',
],
},
{
'target_name': 'gmock_all_test',
'dependencies': [
'gmock_test_executable',
'gmock_main',
],
'include_dirs': [
'gtest/googletest',
],
'sources': [
'<(gmock_dir)/test/gmock-actions_test.cc',
'<(gmock_dir)/test/gmock-cardinalities_test.cc',
'<(gmock_dir)/test/gmock-generated-actions_test.cc',
'<(gmock_dir)/test/gmock-generated-function-mockers_test.cc',
'<(gmock_dir)/test/gmock-generated-internal-utils_test.cc',
'<(gmock_dir)/test/gmock-generated-matchers_test.cc',
'<(gmock_dir)/test/gmock-internal-utils_test.cc',
'<(gmock_dir)/test/gmock-matchers_test.cc',
'<(gmock_dir)/test/gmock-more-actions_test.cc',
'<(gmock_dir)/test/gmock-nice-strict_test.cc',
'<(gmock_dir)/test/gmock-port_test.cc',
'<(gmock_dir)/test/gmock-spec-builders_test.cc',
'<(gmock_dir)/test/gmock_test.cc',
],
},
{
'target_name': 'gmock_link_test',
'dependencies': [
'gmock_test_executable',
'gmock_main',
],
'sources': [
'<(gmock_dir)/test/gmock_link_test.cc',
'<(gmock_dir)/test/gmock_link_test.h',
'<(gmock_dir)/test/gmock_link2_test.cc',
],
},
{
'target_name': 'gmock_stress_test',
'dependencies': [
'gmock_test_executable',
],
'sources': [
'<(gmock_dir)/test/gmock_stress_test.cc',
],
},
{
'target_name': 'gmock_all_tests',
'type': 'none',
'dependencies': [
'gmock_all_test',
'gmock_link_test',
'gmock_stress_test',
],
},
],
}, { # else: crashpad_dependencies=="chromium"
'targets': [
{
'target_name': 'gmock',
'type': 'none',
'dependencies': [
'<(DEPTH)/testing/gmock.gyp:gmock',
],
'export_dependent_settings': [
'<(DEPTH)/testing/gmock.gyp:gmock',
],
},
{
'target_name': 'gmock_main',
'type': 'none',
'dependencies': [
'<(DEPTH)/testing/gmock.gyp:gmock_main',
],
'export_dependent_settings': [
'<(DEPTH)/testing/gmock.gyp:gmock_main',
],
},
],
}],
],
}