diff --git a/build/crashpad_dependencies.gypi b/build/crashpad_dependencies.gypi index 417d462b..7fd1cf66 100644 --- a/build/crashpad_dependencies.gypi +++ b/build/crashpad_dependencies.gypi @@ -13,16 +13,12 @@ # limitations under the License. { - # Crashpad can obtain dependencies in three different ways, directed by the - # crashpad_standalone GYP variable. It may have these values: + # Crashpad’s GYP build can obtain dependencies in two different ways, directed + # by the crashpad_standalone GYP variable. It may have these values: # standalone # A “standalone” Crashpad build, where the dependencies are in the # Crashpad tree. third_party/mini_chromium and third_party/gtest provide # the base and gtest libraries. - # chromium - # An in-Chromium build, where Crashpad is within the Chromium tree. - # Chromium provides its own base library and its copy of the gtest - # library. # external # A build with external dependencies. mini_chromium provides the base # library, but it’s located outside of the Crashpad tree, as is gtest. @@ -30,13 +26,15 @@ # In order for Crashpad’s .gyp files to reference the correct versions # depending on how dependencies are being provided, include this .gypi file # and reference the crashpad_dependencies variable. + # + # Note that Crashpad’s in-Chromium build uses GN instead of GYP, and + # Chromium’s GN build configures Crashpad to use Chromium’s own base library + # and its copy of the gtest library. 'variables': { - # When building as a standalone project or with external dependencies, - # build/gyp_crashpad.py sets crashpad_dependencies to "standalone" or - # "external", and this % assignment will not override it. The variable will - # not be set by anything else when building as part of Chromium, so in that - # case, this will define it with value "chromium". - 'crashpad_dependencies%': 'chromium', + # When with external dependencies, build/gyp_crashpad.py sets + # crashpad_dependencies to "external", and this % assignment will not + # override it. + 'crashpad_dependencies%': 'standalone', }, } diff --git a/build/gyp_crashpad.py b/build/gyp_crashpad.py index 741c8126..fe9da840 100755 --- a/build/gyp_crashpad.py +++ b/build/gyp_crashpad.py @@ -31,12 +31,12 @@ def ChooseDependencyPath(local_path, external_path): external_path: The external path to fall back to. Returns: - A 2-tuple. The first element is 'standalone' or 'external', depending on - whether local_path or external_path was chosen. The second element is the - chosen path. + A 2-tuple. The first element is None or 'external', depending on whether + local_path or external_path was chosen. The second element is the chosen + path. """ if os.path.exists(local_path) or not os.path.exists(external_path): - return ('standalone', local_path) + return (None, local_path) return ('external', external_path) @@ -64,7 +64,8 @@ def main(args): 'mini_chromium', 'build', 'common.gypi'), os.path.join(crashpad_dir, os.pardir, os.pardir, 'mini_chromium', 'mini_chromium', 'build', 'common.gypi'))) - args.extend(['-D', 'crashpad_dependencies=%s' % dependencies]) + if dependencies is not None: + args.extend(['-D', 'crashpad_dependencies=%s' % dependencies]) args.extend(['--include', mini_chromium_dir]) args.extend(['--depth', crashpad_dir_or_dot]) args.append(os.path.join(crashpad_dir, 'crashpad.gyp')) diff --git a/handler/handler.gyp b/handler/handler.gyp index e2d993df..6a51222c 100644 --- a/handler/handler.gyp +++ b/handler/handler.gyp @@ -15,7 +15,6 @@ { 'includes': [ '../build/crashpad.gypi', - '../build/crashpad_dependencies.gypi', ], 'targets': [ { @@ -66,29 +65,6 @@ ], 'conditions': [ - ['OS=="mac"', { - # In an in-Chromium build with component=shared_library, - # crashpad_handler will depend on shared libraries such as - # libbase.dylib located in out/{Debug,Release} via the @rpath - # mechanism. When crashpad_handler is copied to its home deep inside - # the Chromium app bundle, it needs to have an LC_RPATH command - # pointing back to the directory containing these dependency - # libraries. - 'variables': { - 'component%': 'static_library', - }, - 'conditions': [ - ['crashpad_dependencies=="chromium" and component=="shared_library"', { - 'xcode_settings': { - 'LD_RUNPATH_SEARCH_PATHS': [ # -Wl,-rpath - # Get back from - # Chromium.app/Contents/Versions/V/Framework.framework/Helpers - '@loader_path/../../../../../..', - ], - }, - }], - ], - }], ['OS=="win"', { 'msvs_settings': { 'VCLinkerTool': { diff --git a/third_party/gtest/gmock.gyp b/third_party/gtest/gmock.gyp index 683b89e1..466de6a9 100644 --- a/third_party/gtest/gmock.gyp +++ b/third_party/gtest/gmock.gyp @@ -17,212 +17,190 @@ '../../build/crashpad_dependencies.gypi', ], 'conditions': [ - ['crashpad_dependencies!="chromium"', { + ['1==1', { # Defer processing until crashpad_dependencies is set 'variables': { 'conditions': [ ['crashpad_dependencies=="standalone"', { 'gmock_dir': 'gtest/googlemock', - }, { + }], + ['crashpad_dependencies=="external"', { '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', + }], + ], + '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', ], - }, - - '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': [ - ['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', - ], - }], + ['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', - ], - }, + }], + ], + }, + 'export_dependent_settings': [ + 'gtest.gyp:gtest', ], - }, { # 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', - ], - }, + }, + { + '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', + ], + }, ], } diff --git a/third_party/gtest/gtest.gyp b/third_party/gtest/gtest.gyp index e01adaf5..ad458936 100644 --- a/third_party/gtest/gtest.gyp +++ b/third_party/gtest/gtest.gyp @@ -17,274 +17,252 @@ '../../build/crashpad_dependencies.gypi', ], 'conditions': [ - ['crashpad_dependencies!="chromium"', { + ['1==1', { # Defer processing until crashpad_dependencies is set 'variables': { 'conditions': [ ['crashpad_dependencies=="standalone"', { 'gtest_dir': 'gtest/googletest', - }, { + }], + ['crashpad_dependencies=="external"', { 'gtest_dir': '../../../../gtest', }], ], }, - 'target_defaults': { - # gtest relies heavily on objects with static storage duration. - 'xcode_settings': { - 'WARNING_CFLAGS!': [ - '-Wexit-time-destructors', - ], - }, - 'cflags!': [ - '-Wexit-time-destructors', - ], - }, - - 'targets': [ - { - 'target_name': 'gtest', - 'type': 'static_library', - 'include_dirs': [ - '<(gtest_dir)', - '<(gtest_dir)/include', - ], - 'sources': [ - '<(gtest_dir)/include/gtest/gtest-death-test.h', - '<(gtest_dir)/include/gtest/gtest-message.h', - '<(gtest_dir)/include/gtest/gtest-param-test.h', - '<(gtest_dir)/include/gtest/gtest-printers.h', - '<(gtest_dir)/include/gtest/gtest-spi.h', - '<(gtest_dir)/include/gtest/gtest-test-part.h', - '<(gtest_dir)/include/gtest/gtest-typed-test.h', - '<(gtest_dir)/include/gtest/gtest.h', - '<(gtest_dir)/include/gtest/gtest_pred_impl.h', - '<(gtest_dir)/include/gtest/gtest_prod.h', - '<(gtest_dir)/include/gtest/internal/custom/gtest-port.h', - '<(gtest_dir)/include/gtest/internal/custom/gtest-printers.h', - '<(gtest_dir)/include/gtest/internal/custom/gtest.h', - '<(gtest_dir)/include/gtest/internal/gtest-death-test-internal.h', - '<(gtest_dir)/include/gtest/internal/gtest-filepath.h', - '<(gtest_dir)/include/gtest/internal/gtest-internal.h', - '<(gtest_dir)/include/gtest/internal/gtest-linked_ptr.h', - '<(gtest_dir)/include/gtest/internal/gtest-param-util-generated.h', - '<(gtest_dir)/include/gtest/internal/gtest-param-util.h', - '<(gtest_dir)/include/gtest/internal/gtest-port-arch.h', - '<(gtest_dir)/include/gtest/internal/gtest-port.h', - '<(gtest_dir)/include/gtest/internal/gtest-string.h', - '<(gtest_dir)/include/gtest/internal/gtest-tuple.h', - '<(gtest_dir)/include/gtest/internal/gtest-type-util.h', - '<(gtest_dir)/src/gtest-all.cc', - '<(gtest_dir)/src/gtest-death-test.cc', - '<(gtest_dir)/src/gtest-filepath.cc', - '<(gtest_dir)/src/gtest-internal-inl.h', - '<(gtest_dir)/src/gtest-port.cc', - '<(gtest_dir)/src/gtest-printers.cc', - '<(gtest_dir)/src/gtest-test-part.cc', - '<(gtest_dir)/src/gtest-typed-test.cc', - '<(gtest_dir)/src/gtest.cc', - ], - 'sources!': [ - '<(gtest_dir)/src/gtest-all.cc', - ], - 'direct_dependent_settings': { - 'include_dirs': [ - '<(gtest_dir)/include', - ], - }, - 'conditions': [ - ['crashpad_dependencies=="external"', { - 'include_dirs': [ - '<(gtest_dir)/../..', - ], - 'defines': [ - 'GUNIT_NO_GOOGLE3=1', - ], - 'direct_dependent_settings': { - 'include_dirs': [ - '<(gtest_dir)/../..', - ], - 'defines': [ - 'GUNIT_NO_GOOGLE3=1', - ], - }, - }], - ], - }, - { - 'target_name': 'gtest_main', - 'type': 'static_library', - 'dependencies': [ - 'gtest', - ], - 'sources': [ - '<(gtest_dir)/src/gtest_main.cc', - ], - }, - { - 'target_name': 'gtest_test_executable', - 'type': 'none', - 'dependencies': [ - 'gtest', - ], - 'direct_dependent_settings': { - 'type': 'executable', - 'include_dirs': [ - '<(gtest_dir)', - ], - }, - 'export_dependent_settings': [ - 'gtest', - ], - }, - { - 'target_name': 'gtest_all_test', - 'dependencies': [ - 'gtest_test_executable', - 'gtest_main', - ], - 'sources': [ - '<(gtest_dir)/test/gtest-death-test_test.cc', - '<(gtest_dir)/test/gtest-filepath_test.cc', - '<(gtest_dir)/test/gtest-linked_ptr_test.cc', - '<(gtest_dir)/test/gtest-message_test.cc', - '<(gtest_dir)/test/gtest-options_test.cc', - '<(gtest_dir)/test/gtest-port_test.cc', - '<(gtest_dir)/test/gtest-printers_test.cc', - '<(gtest_dir)/test/gtest-test-part_test.cc', - '<(gtest_dir)/test/gtest-typed-test2_test.cc', - '<(gtest_dir)/test/gtest-typed-test_test.cc', - '<(gtest_dir)/test/gtest-typed-test_test.h', - '<(gtest_dir)/test/gtest_main_unittest.cc', - '<(gtest_dir)/test/gtest_pred_impl_unittest.cc', - '<(gtest_dir)/test/gtest_prod_test.cc', - '<(gtest_dir)/test/gtest_unittest.cc', - '<(gtest_dir)/test/production.cc', - '<(gtest_dir)/test/production.h', - ], - }, - { - 'target_name': 'gtest_environment_test', - 'dependencies': [ - 'gtest_test_executable', - ], - 'sources': [ - '<(gtest_dir)/test/gtest_environment_test.cc', - ], - }, - { - 'target_name': 'gtest_listener_test', - 'dependencies': [ - 'gtest_test_executable', - ], - 'sources': [ - '<(gtest_dir)/test/gtest-listener_test.cc', - ], - }, - { - 'target_name': 'gtest_no_test', - 'dependencies': [ - 'gtest_test_executable', - ], - 'sources': [ - '<(gtest_dir)/test/gtest_no_test_unittest.cc', - ], - }, - { - 'target_name': 'gtest_param_test', - 'dependencies': [ - 'gtest_test_executable', - ], - 'sources': [ - '<(gtest_dir)/test/gtest-param-test2_test.cc', - '<(gtest_dir)/test/gtest-param-test_test.cc', - '<(gtest_dir)/test/gtest-param-test_test.h', - ], - }, - { - 'target_name': 'gtest_premature_exit_test', - 'dependencies': [ - 'gtest_test_executable', - ], - 'sources': [ - '<(gtest_dir)/test/gtest_premature_exit_test.cc', - ], - }, - { - 'target_name': 'gtest_repeat_test', - 'dependencies': [ - 'gtest_test_executable', - ], - 'sources': [ - '<(gtest_dir)/test/gtest_repeat_test.cc', - ], - }, - { - 'target_name': 'gtest_sole_header_test', - 'dependencies': [ - 'gtest_test_executable', - 'gtest_main', - ], - 'sources': [ - '<(gtest_dir)/test/gtest_sole_header_test.cc', - ], - }, - { - 'target_name': 'gtest_stress_test', - 'dependencies': [ - 'gtest_test_executable', - ], - 'sources': [ - '<(gtest_dir)/test/gtest_stress_test.cc', - ], - }, - { - 'target_name': 'gtest_unittest_api_test', - 'dependencies': [ - 'gtest_test_executable', - ], - 'sources': [ - '<(gtest_dir)/test/gtest-unittest-api_test.cc', - ], - }, - { - 'target_name': 'gtest_all_tests', - 'type': 'none', - 'dependencies': [ - 'gtest_all_test', - 'gtest_environment_test', - 'gtest_listener_test', - 'gtest_no_test', - 'gtest_param_test', - 'gtest_premature_exit_test', - 'gtest_repeat_test', - 'gtest_sole_header_test', - 'gtest_stress_test', - 'gtest_unittest_api_test', - ], - }, - ], - }, { # else: crashpad_dependencies=="chromium" - 'targets': [ - { - 'target_name': 'gtest', - 'type': 'none', - 'dependencies': [ - '<(DEPTH)/testing/gtest.gyp:gtest', - ], - 'export_dependent_settings': [ - '<(DEPTH)/testing/gtest.gyp:gtest', - ], - }, - { - 'target_name': 'gtest_main', - 'type': 'none', - 'dependencies': [ - '<(DEPTH)/testing/gtest.gyp:gtest_main', - ], - 'export_dependent_settings': [ - '<(DEPTH)/testing/gtest.gyp:gtest_main', - ], - }, - ], }], ], + 'target_defaults': { + # gtest relies heavily on objects with static storage duration. + 'xcode_settings': { + 'WARNING_CFLAGS!': [ + '-Wexit-time-destructors', + ], + }, + 'cflags!': [ + '-Wexit-time-destructors', + ], + }, + + 'targets': [ + { + 'target_name': 'gtest', + 'type': 'static_library', + 'include_dirs': [ + '<(gtest_dir)', + '<(gtest_dir)/include', + ], + 'sources': [ + '<(gtest_dir)/include/gtest/gtest-death-test.h', + '<(gtest_dir)/include/gtest/gtest-message.h', + '<(gtest_dir)/include/gtest/gtest-param-test.h', + '<(gtest_dir)/include/gtest/gtest-printers.h', + '<(gtest_dir)/include/gtest/gtest-spi.h', + '<(gtest_dir)/include/gtest/gtest-test-part.h', + '<(gtest_dir)/include/gtest/gtest-typed-test.h', + '<(gtest_dir)/include/gtest/gtest.h', + '<(gtest_dir)/include/gtest/gtest_pred_impl.h', + '<(gtest_dir)/include/gtest/gtest_prod.h', + '<(gtest_dir)/include/gtest/internal/custom/gtest-port.h', + '<(gtest_dir)/include/gtest/internal/custom/gtest-printers.h', + '<(gtest_dir)/include/gtest/internal/custom/gtest.h', + '<(gtest_dir)/include/gtest/internal/gtest-death-test-internal.h', + '<(gtest_dir)/include/gtest/internal/gtest-filepath.h', + '<(gtest_dir)/include/gtest/internal/gtest-internal.h', + '<(gtest_dir)/include/gtest/internal/gtest-linked_ptr.h', + '<(gtest_dir)/include/gtest/internal/gtest-param-util-generated.h', + '<(gtest_dir)/include/gtest/internal/gtest-param-util.h', + '<(gtest_dir)/include/gtest/internal/gtest-port-arch.h', + '<(gtest_dir)/include/gtest/internal/gtest-port.h', + '<(gtest_dir)/include/gtest/internal/gtest-string.h', + '<(gtest_dir)/include/gtest/internal/gtest-tuple.h', + '<(gtest_dir)/include/gtest/internal/gtest-type-util.h', + '<(gtest_dir)/src/gtest-all.cc', + '<(gtest_dir)/src/gtest-death-test.cc', + '<(gtest_dir)/src/gtest-filepath.cc', + '<(gtest_dir)/src/gtest-internal-inl.h', + '<(gtest_dir)/src/gtest-port.cc', + '<(gtest_dir)/src/gtest-printers.cc', + '<(gtest_dir)/src/gtest-test-part.cc', + '<(gtest_dir)/src/gtest-typed-test.cc', + '<(gtest_dir)/src/gtest.cc', + ], + 'sources!': [ + '<(gtest_dir)/src/gtest-all.cc', + ], + 'direct_dependent_settings': { + 'include_dirs': [ + '<(gtest_dir)/include', + ], + }, + 'conditions': [ + ['crashpad_dependencies=="external"', { + 'include_dirs': [ + '<(gtest_dir)/../..', + ], + 'defines': [ + 'GUNIT_NO_GOOGLE3=1', + ], + 'direct_dependent_settings': { + 'include_dirs': [ + '<(gtest_dir)/../..', + ], + 'defines': [ + 'GUNIT_NO_GOOGLE3=1', + ], + }, + }], + ], + }, + { + 'target_name': 'gtest_main', + 'type': 'static_library', + 'dependencies': [ + 'gtest', + ], + 'sources': [ + '<(gtest_dir)/src/gtest_main.cc', + ], + }, + { + 'target_name': 'gtest_test_executable', + 'type': 'none', + 'dependencies': [ + 'gtest', + ], + 'direct_dependent_settings': { + 'type': 'executable', + 'include_dirs': [ + '<(gtest_dir)', + ], + }, + 'export_dependent_settings': [ + 'gtest', + ], + }, + { + 'target_name': 'gtest_all_test', + 'dependencies': [ + 'gtest_test_executable', + 'gtest_main', + ], + 'sources': [ + '<(gtest_dir)/test/gtest-death-test_test.cc', + '<(gtest_dir)/test/gtest-filepath_test.cc', + '<(gtest_dir)/test/gtest-linked_ptr_test.cc', + '<(gtest_dir)/test/gtest-message_test.cc', + '<(gtest_dir)/test/gtest-options_test.cc', + '<(gtest_dir)/test/gtest-port_test.cc', + '<(gtest_dir)/test/gtest-printers_test.cc', + '<(gtest_dir)/test/gtest-test-part_test.cc', + '<(gtest_dir)/test/gtest-typed-test2_test.cc', + '<(gtest_dir)/test/gtest-typed-test_test.cc', + '<(gtest_dir)/test/gtest-typed-test_test.h', + '<(gtest_dir)/test/gtest_main_unittest.cc', + '<(gtest_dir)/test/gtest_pred_impl_unittest.cc', + '<(gtest_dir)/test/gtest_prod_test.cc', + '<(gtest_dir)/test/gtest_unittest.cc', + '<(gtest_dir)/test/production.cc', + '<(gtest_dir)/test/production.h', + ], + }, + { + 'target_name': 'gtest_environment_test', + 'dependencies': [ + 'gtest_test_executable', + ], + 'sources': [ + '<(gtest_dir)/test/gtest_environment_test.cc', + ], + }, + { + 'target_name': 'gtest_listener_test', + 'dependencies': [ + 'gtest_test_executable', + ], + 'sources': [ + '<(gtest_dir)/test/gtest-listener_test.cc', + ], + }, + { + 'target_name': 'gtest_no_test', + 'dependencies': [ + 'gtest_test_executable', + ], + 'sources': [ + '<(gtest_dir)/test/gtest_no_test_unittest.cc', + ], + }, + { + 'target_name': 'gtest_param_test', + 'dependencies': [ + 'gtest_test_executable', + ], + 'sources': [ + '<(gtest_dir)/test/gtest-param-test2_test.cc', + '<(gtest_dir)/test/gtest-param-test_test.cc', + '<(gtest_dir)/test/gtest-param-test_test.h', + ], + }, + { + 'target_name': 'gtest_premature_exit_test', + 'dependencies': [ + 'gtest_test_executable', + ], + 'sources': [ + '<(gtest_dir)/test/gtest_premature_exit_test.cc', + ], + }, + { + 'target_name': 'gtest_repeat_test', + 'dependencies': [ + 'gtest_test_executable', + ], + 'sources': [ + '<(gtest_dir)/test/gtest_repeat_test.cc', + ], + }, + { + 'target_name': 'gtest_sole_header_test', + 'dependencies': [ + 'gtest_test_executable', + 'gtest_main', + ], + 'sources': [ + '<(gtest_dir)/test/gtest_sole_header_test.cc', + ], + }, + { + 'target_name': 'gtest_stress_test', + 'dependencies': [ + 'gtest_test_executable', + ], + 'sources': [ + '<(gtest_dir)/test/gtest_stress_test.cc', + ], + }, + { + 'target_name': 'gtest_unittest_api_test', + 'dependencies': [ + 'gtest_test_executable', + ], + 'sources': [ + '<(gtest_dir)/test/gtest-unittest-api_test.cc', + ], + }, + { + 'target_name': 'gtest_all_tests', + 'type': 'none', + 'dependencies': [ + 'gtest_all_test', + 'gtest_environment_test', + 'gtest_listener_test', + 'gtest_no_test', + 'gtest_param_test', + 'gtest_premature_exit_test', + 'gtest_repeat_test', + 'gtest_sole_header_test', + 'gtest_stress_test', + 'gtest_unittest_api_test', + ], + }, + ], } diff --git a/third_party/mini_chromium/mini_chromium.gyp b/third_party/mini_chromium/mini_chromium.gyp index f063dd0a..e14a1fa5 100644 --- a/third_party/mini_chromium/mini_chromium.gyp +++ b/third_party/mini_chromium/mini_chromium.gyp @@ -18,11 +18,10 @@ ], 'targets': [ { - # To support Crashpad’s standalone build, its in-Chromium build, and its - # build depending on external libraries, Crashpad code depending on base - # should do so through this shim, which will either get base from - # mini_chromium, Chromium, or an external library depending on the build - # type. + # To support Crashpad’s standalone build and its build depending on + # external libraries, Crashpad code depending on base should do so through + # this shim, which will either get base from mini_chromium or an external + # library depending on the build type. 'target_name': 'base', 'type': 'none', 'conditions': [ @@ -34,14 +33,6 @@ 'mini_chromium/base/base.gyp:base', ], }], - ['crashpad_dependencies=="chromium"', { - 'dependencies': [ - '<(DEPTH)/base/base.gyp:base', - ], - 'export_dependent_settings': [ - '<(DEPTH)/base/base.gyp:base', - ], - }], ['crashpad_dependencies=="external"', { 'dependencies': [ '../../../../mini_chromium/mini_chromium/base/base.gyp:base',