https://github.com/google/mozc/issues/490 --- /src/gyp/defines.gypi +++ /src/gyp/defines.gypi @@ -67,6 +67,10 @@ # use_system_abseil_cpp represents if system version or bundled version # of abseil-cpp library is used. 'use_system_abseil_cpp%': '0', + + # use_system_gtest represents if system version or bundled version + # of gtest library is used. + 'use_system_gtest%': '0', }, 'target_defaults': { 'defines': [ --- /src/testing/testing.gyp +++ /src/testing/testing.gyp @@ -59,54 +59,76 @@ 'targets': [ { 'target_name': 'testing', - 'type': 'static_library', - 'variables': { - 'gtest_defines': [ - 'GTEST_LANG_CXX11=1', - 'GTEST_HAS_TR1_TUPLE=0', # disable tr1 tuple in favor of C++11 tuple. - ], - 'gtest_dir': '<(third_party_dir)/gtest/googletest', - 'gmock_dir': '<(third_party_dir)/gtest/googlemock', - }, - 'sources': [ - '<(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', - '<(gtest_dir)/src/gtest-death-test.cc', - '<(gtest_dir)/src/gtest-filepath.cc', - '<(gtest_dir)/src/gtest-matchers.cc', - '<(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', - ], - 'include_dirs': [ - '<(gmock_dir)', - '<(gmock_dir)/include', - '<(gtest_dir)', - '<(gtest_dir)/include', - ], - 'defines': [ - '<@(gtest_defines)', - ], - 'all_dependent_settings': { - 'defines': [ - '<@(gtest_defines)', - ], - 'include_dirs': [ - '<(gmock_dir)/include', - '<(gtest_dir)/include', - ], - }, 'conditions': [ - ['(_toolset=="target" and compiler_target=="clang") or ' - '(_toolset=="host" and compiler_host=="clang")', { - 'cflags': [ - '-Wno-missing-field-initializers', - '-Wno-unused-private-field', + ['use_system_gtest==1', { + 'type': 'none', + 'variables': { + 'gtest_defines': [ + 'GTEST_LANG_CXX11=1', + 'GTEST_HAS_TR1_TUPLE=0', # disable tr1 tuple in favor of C++11 tuple. + ], + }, + 'all_dependent_settings': { + 'defines': [ + '<@(gtest_defines)', + ], + 'link_settings': { + 'libraries': [ + '-lgmock -lgtest', + ], + }, + }, + }, { + 'type': 'static_library', + 'variables': { + 'gtest_defines': [ + 'GTEST_LANG_CXX11=1', + 'GTEST_HAS_TR1_TUPLE=0', # disable tr1 tuple in favor of C++11 tuple. + ], + 'gtest_dir': '<(third_party_dir)/gtest/googletest', + 'gmock_dir': '<(third_party_dir)/gtest/googlemock', + }, + 'sources': [ + '<(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', + '<(gtest_dir)/src/gtest-death-test.cc', + '<(gtest_dir)/src/gtest-filepath.cc', + '<(gtest_dir)/src/gtest-matchers.cc', + '<(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', + ], + 'include_dirs': [ + '<(gmock_dir)', + '<(gmock_dir)/include', + '<(gtest_dir)', + '<(gtest_dir)/include', + ], + 'defines': [ + '<@(gtest_defines)', + ], + 'all_dependent_settings': { + 'defines': [ + '<@(gtest_defines)', + ], + 'include_dirs': [ + '<(gmock_dir)/include', + '<(gtest_dir)/include', + ], + }, + 'conditions': [ + ['(_toolset=="target" and compiler_target=="clang") or ' + '(_toolset=="host" and compiler_host=="clang")', { + 'cflags': [ + '-Wno-missing-field-initializers', + '-Wno-unused-private-field', + ], + }], ], }], ],