| Author: Maks Orlovich <morlovich@google.com> |
| Description: Build against system gmock + gtest |
| --- a/src/testing/gmock.gyp |
| +++ b/src/testing/gmock.gyp |
| @@ -7,55 +7,11 @@ |
| { |
| 'target_name': 'gmock', |
| 'type': 'static_library', |
| - 'dependencies': [ |
| - 'gtest.gyp:gtest', |
| - ], |
| 'sources': [ |
| - # Sources based on files in r173 of gmock. |
| - 'gmock/include/gmock/gmock-actions.h', |
| - 'gmock/include/gmock/gmock-cardinalities.h', |
| - 'gmock/include/gmock/gmock-generated-actions.h', |
| - 'gmock/include/gmock/gmock-generated-function-mockers.h', |
| - 'gmock/include/gmock/gmock-generated-matchers.h', |
| - 'gmock/include/gmock/gmock-generated-nice-strict.h', |
| - 'gmock/include/gmock/gmock-matchers.h', |
| - 'gmock/include/gmock/gmock-spec-builders.h', |
| - 'gmock/include/gmock/gmock.h', |
| - 'gmock/include/gmock/internal/gmock-generated-internal-utils.h', |
| - 'gmock/include/gmock/internal/gmock-internal-utils.h', |
| - 'gmock/include/gmock/internal/gmock-port.h', |
| - 'gmock/src/gmock-all.cc', |
| - 'gmock/src/gmock-cardinalities.cc', |
| - 'gmock/src/gmock-internal-utils.cc', |
| - 'gmock/src/gmock-matchers.cc', |
| - 'gmock/src/gmock-spec-builders.cc', |
| - 'gmock/src/gmock.cc', |
| - 'gmock_mutant.h', # gMock helpers |
| - ], |
| - 'sources!': [ |
| - 'gmock/src/gmock-all.cc', # Not needed by our build. |
| + '/usr/src/googletest/googlemock/src/gmock-all.cc', |
| ], |
| 'include_dirs': [ |
| - 'gmock', |
| - 'gmock/include', |
| - ], |
| - 'direct_dependent_settings': { |
| - 'include_dirs': [ |
| - 'gmock/include', # So that gmock headers can find themselves. |
| - ], |
| - }, |
| - 'export_dependent_settings': [ |
| - 'gtest.gyp:gtest', |
| - ], |
| - }, |
| - { |
| - 'target_name': 'gmock_main', |
| - 'type': 'static_library', |
| - 'dependencies': [ |
| - 'gmock', |
| - ], |
| - 'sources': [ |
| - 'gmock/src/gmock_main.cc', |
| + '/usr/src/googletest/googlemock/', |
| ], |
| }, |
| ], |
| --- a/src/testing/gtest.gyp |
| +++ b/src/testing/gtest.gyp |
| @@ -8,238 +8,27 @@ |
| 'target_name': 'gtest', |
| 'type': 'static_library', |
| 'sources': [ |
| - 'gtest/include/gtest/gtest-death-test.h', |
| - 'gtest/include/gtest/gtest-message.h', |
| - 'gtest/include/gtest/gtest-param-test.h', |
| - 'gtest/include/gtest/gtest-printers.h', |
| - 'gtest/include/gtest/gtest-spi.h', |
| - 'gtest/include/gtest/gtest-test-part.h', |
| - 'gtest/include/gtest/gtest-typed-test.h', |
| - 'gtest/include/gtest/gtest.h', |
| - 'gtest/include/gtest/gtest_pred_impl.h', |
| - 'gtest/include/gtest/internal/gtest-death-test-internal.h', |
| - 'gtest/include/gtest/internal/gtest-filepath.h', |
| - 'gtest/include/gtest/internal/gtest-internal.h', |
| - 'gtest/include/gtest/internal/gtest-linked_ptr.h', |
| - 'gtest/include/gtest/internal/gtest-param-util-generated.h', |
| - 'gtest/include/gtest/internal/gtest-param-util.h', |
| - 'gtest/include/gtest/internal/gtest-port.h', |
| - 'gtest/include/gtest/internal/gtest-string.h', |
| - 'gtest/include/gtest/internal/gtest-tuple.h', |
| - 'gtest/include/gtest/internal/gtest-type-util.h', |
| - 'gtest/src/gtest-all.cc', |
| - 'gtest/src/gtest-death-test.cc', |
| - 'gtest/src/gtest-filepath.cc', |
| - 'gtest/src/gtest-internal-inl.h', |
| - 'gtest/src/gtest-port.cc', |
| - 'gtest/src/gtest-printers.cc', |
| - 'gtest/src/gtest-test-part.cc', |
| - 'gtest/src/gtest-typed-test.cc', |
| - 'gtest/src/gtest.cc', |
| - 'multiprocess_func_list.cc', |
| - 'multiprocess_func_list.h', |
| - 'platform_test.h', |
| - ], |
| - 'sources!': [ |
| - 'gtest/src/gtest-all.cc', # Not needed by our build. |
| + '/usr/src/googletest/googletest/src/gtest-all.cc', |
| ], |
| 'include_dirs': [ |
| - 'gtest', |
| - 'gtest/include', |
| - ], |
| - 'dependencies': [ |
| - 'gtest_prod', |
| + '/usr/src/googletest/googletest/', |
| ], |
| - 'defines': [ |
| - # In order to allow regex matches in gtest to be shared between Windows |
| - # and other systems, we tell gtest to always use it's internal engine. |
| - 'GTEST_HAS_POSIX_RE=0', |
| - ], |
| - 'all_dependent_settings': { |
| - 'defines': [ |
| - 'GTEST_HAS_POSIX_RE=0', |
| - ], |
| - }, |
| - 'conditions': [ |
| - ['OS == "mac" or OS == "ios"', { |
| - 'sources': [ |
| - 'gtest_mac.h', |
| - 'gtest_mac.mm', |
| - 'platform_test_mac.mm' |
| - ], |
| - 'link_settings': { |
| - 'libraries': [ |
| - '$(SDKROOT)/System/Library/Frameworks/Foundation.framework', |
| - ], |
| - }, |
| - }], |
| - ['OS == "ios"', { |
| - 'dependencies' : [ |
| - '<(DEPTH)/testing/iossim/iossim.gyp:iossim#host', |
| - ], |
| - 'direct_dependent_settings': { |
| - 'target_conditions': [ |
| - # Turn all tests into bundles on iOS because that's the only |
| - # type of executable supported for iOS. |
| - ['_type=="executable"', { |
| - 'variables': { |
| - # Use a variable so the path gets fixed up so it is always |
| - # correct when INFOPLIST_FILE finally gets set. |
| - 'ios_unittest_info_plist_path': |
| - '<(DEPTH)/testing/gtest_ios/unittest-Info.plist', |
| - }, |
| - 'mac_bundle': 1, |
| - 'xcode_settings': { |
| - 'BUNDLE_ID_TEST_NAME': |
| - '>!(echo ">(_target_name)" | sed -e "s/_//g")', |
| - 'INFOPLIST_FILE': '>(ios_unittest_info_plist_path)', |
| - }, |
| - 'mac_bundle_resources': [ |
| - '<(ios_unittest_info_plist_path)', |
| - '<(DEPTH)/testing/gtest_ios/Default-568h@2x.png', |
| - ], |
| - 'mac_bundle_resources!': [ |
| - '<(ios_unittest_info_plist_path)', |
| - ], |
| - }], |
| - ], |
| - }, |
| - }], |
| - ['OS=="ios" and asan==1', { |
| - 'direct_dependent_settings': { |
| - 'target_conditions': [ |
| - # Package the ASan runtime dylib into the test app bundles. |
| - ['_type=="executable"', { |
| - 'postbuilds': [ |
| - { |
| - 'variables': { |
| - # Define copy_asan_dylib_path in a variable ending in |
| - # _path so that gyp understands it's a path and |
| - # performs proper relativization during dict merging. |
| - 'copy_asan_dylib_path': |
| - '<(DEPTH)/build/mac/copy_asan_runtime_dylib.sh', |
| - }, |
| - 'postbuild_name': 'Copy ASan runtime dylib', |
| - 'action': [ |
| - '>(copy_asan_dylib_path)', |
| - ], |
| - }, |
| - ], |
| - }], |
| - ], |
| - }, |
| - }], |
| - ['os_posix == 1', { |
| - 'defines': [ |
| - # gtest isn't able to figure out when RTTI is disabled for gcc |
| - # versions older than 4.3.2, and assumes it's enabled. Our Mac |
| - # and Linux builds disable RTTI, and cannot guarantee that the |
| - # compiler will be 4.3.2. or newer. The Mac, for example, uses |
| - # 4.2.1 as that is the latest available on that platform. gtest |
| - # must be instructed that RTTI is disabled here, and for any |
| - # direct dependents that might include gtest headers. |
| - 'GTEST_HAS_RTTI=0', |
| - ], |
| - 'direct_dependent_settings': { |
| - 'defines': [ |
| - 'GTEST_HAS_RTTI=0', |
| - ], |
| - }, |
| - }], |
| - ['OS=="android" and android_app_abi=="x86"', { |
| - 'defines': [ |
| - 'GTEST_HAS_CLONE=0', |
| - ], |
| - 'direct_dependent_settings': { |
| - 'defines': [ |
| - 'GTEST_HAS_CLONE=0', |
| - ], |
| - }, |
| - }], |
| - ['OS=="android"', { |
| - # We want gtest features that use tr1::tuple, but we currently |
| - # don't support the variadic templates used by libstdc++'s |
| - # implementation. gtest supports this scenario by providing its |
| - # own implementation but we must opt in to it. |
| - 'defines': [ |
| - 'GTEST_USE_OWN_TR1_TUPLE=1', |
| - # GTEST_USE_OWN_TR1_TUPLE only works if GTEST_HAS_TR1_TUPLE is set. |
| - # gtest r625 made it so that GTEST_HAS_TR1_TUPLE is set to 0 |
| - # automatically on android, so it has to be set explicitly here. |
| - 'GTEST_HAS_TR1_TUPLE=1', |
| - ], |
| - 'direct_dependent_settings': { |
| - 'defines': [ |
| - 'GTEST_USE_OWN_TR1_TUPLE=1', |
| - 'GTEST_HAS_TR1_TUPLE=1', |
| - ], |
| - }, |
| - }], |
| - ['OS=="win" and (MSVS_VERSION=="2012" or MSVS_VERSION=="2012e")', { |
| - 'defines': [ |
| - '_VARIADIC_MAX=10', |
| - ], |
| - 'direct_dependent_settings': { |
| - 'defines': [ |
| - '_VARIADIC_MAX=10', |
| - ], |
| - }, |
| - }], |
| - ], |
| - 'direct_dependent_settings': { |
| - 'defines': [ |
| - 'UNIT_TEST', |
| - ], |
| - 'include_dirs': [ |
| - 'gtest/include', # So that gtest headers can find themselves. |
| - ], |
| - 'target_conditions': [ |
| - ['_type=="executable"', { |
| - 'test': 1, |
| - 'conditions': [ |
| - ['OS=="mac"', { |
| - 'run_as': { |
| - 'action????': ['${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}'], |
| - }, |
| - }], |
| - ['OS=="ios"', { |
| - 'variables': { |
| - # Use a variable so the path gets fixed up so it is always |
| - # correct when the action finally gets used. |
| - 'ios_run_unittest_script_path': |
| - '<(DEPTH)/testing/gtest_ios/run-unittest.sh', |
| - }, |
| - 'run_as': { |
| - 'action????': ['>(ios_run_unittest_script_path)'], |
| - }, |
| - }], |
| - ['OS=="win"', { |
| - 'run_as': { |
| - 'action????': ['$(TargetPath)', '--gtest_print_time'], |
| - }, |
| - }], |
| - ], |
| - }], |
| - ], |
| - 'msvs_disabled_warnings': [4800], |
| - }, |
| }, |
| { |
| 'target_name': 'gtest_main', |
| 'type': 'static_library', |
| + 'sources': [ |
| + '/usr/src/googletest/googletest/src/gtest_main.cc', |
| + ], |
| 'dependencies': [ |
| 'gtest', |
| ], |
| - 'sources': [ |
| - 'gtest/src/gtest_main.cc', |
| - ], |
| }, |
| { |
| 'target_name': 'gtest_prod', |
| - 'toolsets': ['host', 'target'], |
| 'type': 'none', |
| - 'sources': [ |
| - 'gtest/include/gtest/gtest_prod.h', |
| + 'dependencies': [ |
| + 'gtest', |
| ], |
| }, |
| ], |
| --- a/src/pagespeed/kernel/base/gtest.h |
| +++ b/src/pagespeed/kernel/base/gtest.h |
| @@ -22,7 +22,7 @@ |
| |
| #include "pagespeed/kernel/base/string.h" |
| #include "pagespeed/kernel/base/string_util.h" |
| -#include "testing/gtest/include/gtest/gtest.h" |
| +#include "gtest/gtest.h" |
| |
| namespace net_instaweb { |
| |
| --- a/src/pagespeed/kernel/base/gtest_prod.h |
| +++ b/src/pagespeed/kernel/base/gtest_prod.h |
| @@ -20,6 +20,6 @@ |
| #define PAGESPEED_KERNEL_BASE_GTEST_PROD_H_ |
| |
| |
| -#include "testing/gtest/include/gtest/gtest_prod.h" |
| +#include "gtest/gtest_prod.h" |
| |
| #endif // PAGESPEED_KERNEL_BASE_GTEST_PROD_H_ |
| --- a/src/third_party/chromium/src/base/gtest_prod_util.h |
| +++ b/src/third_party/chromium/src/base/gtest_prod_util.h |
| @@ -5,7 +5,7 @@ |
| #ifndef BASE_GTEST_PROD_UTIL_H_ |
| #define BASE_GTEST_PROD_UTIL_H_ |
| |
| -#include "testing/gtest/include/gtest/gtest_prod.h" |
| +#include "gtest/gtest_prod.h" |
| |
| // This is a wrapper for gtest's FRIEND_TEST macro that friends |
| // test with all possible prefixes. This is very helpful when changing the test |
| --- a/src/third_party/css_parser/src/testing/base/public/gunit.h |
| +++ b/src/third_party/css_parser/src/testing/base/public/gunit.h |
| @@ -16,6 +16,6 @@ |
| #ifndef TESTING_BASE_PUBLIC_GUNIT_H_ |
| #define TESTING_BASE_PUBLIC_GUNIT_H_ |
| |
| -#include "testing/gtest/include/gtest/gtest.h" |
| +#include "gtest/gtest.h" |
| |
| #endif // TESTING_BASE_PUBLIC_GUNIT_H_ |
| --- a/src/third_party/css_parser/src/testing/production_stub/public/gunit_prod.h |
| +++ b/src/third_party/css_parser/src/testing/production_stub/public/gunit_prod.h |
| @@ -16,6 +16,6 @@ |
| #ifndef WEBUTIL_CSS_OPEN_SOURCE_TESTING_PRODUCTION_STUB_PUBLIC_GUNIT_PROD_H_ |
| #define WEBUTIL_CSS_OPEN_SOURCE_TESTING_PRODUCTION_STUB_PUBLIC_GUNIT_PROD_H_ |
| |
| -#include "testing/gtest/include/gtest/gtest_prod.h" |
| +#include "gtest/gtest_prod.h" |
| |
| #endif // WEBUTIL_CSS_OPEN_SOURCE_TESTING_PRODUCTION_STUB_PUBLIC_GUNIT_PROD_H_ |