1e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org# Copyright 2014 the V8 project authors. All rights reserved. 2e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org# Use of this source code is governed by a BSD-style license that can be 3e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org# found in the LICENSE file. 4e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 5e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org{ 6e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'targets': [ 7e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org { 8e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'target_name': 'gtest', 9e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'toolsets': ['host', 'target'], 10e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'type': 'static_library', 11e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'sources': [ 12e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/include/gtest/gtest-death-test.h', 13e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/include/gtest/gtest-message.h', 14e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/include/gtest/gtest-param-test.h', 15e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/include/gtest/gtest-printers.h', 16e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/include/gtest/gtest-spi.h', 17e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/include/gtest/gtest-test-part.h', 18e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/include/gtest/gtest-typed-test.h', 19e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/include/gtest/gtest.h', 20e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/include/gtest/gtest_pred_impl.h', 21e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/include/gtest/internal/gtest-death-test-internal.h', 22e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/include/gtest/internal/gtest-filepath.h', 23e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/include/gtest/internal/gtest-internal.h', 24e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/include/gtest/internal/gtest-linked_ptr.h', 25e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/include/gtest/internal/gtest-param-util-generated.h', 26e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/include/gtest/internal/gtest-param-util.h', 27e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/include/gtest/internal/gtest-port.h', 28e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/include/gtest/internal/gtest-string.h', 29e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/include/gtest/internal/gtest-tuple.h', 30e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/include/gtest/internal/gtest-type-util.h', 31e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/src/gtest-all.cc', 32e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/src/gtest-death-test.cc', 33e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/src/gtest-filepath.cc', 34e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/src/gtest-internal-inl.h', 35e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/src/gtest-port.cc', 36e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/src/gtest-printers.cc', 37e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/src/gtest-test-part.cc', 38e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/src/gtest-typed-test.cc', 39e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/src/gtest.cc', 405e57059e20217fd540b60c237d326414afe2171emachenbach@chromium.org 'gtest-support.h', 41e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ], 42e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'sources!': [ 43e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/src/gtest-all.cc', # Not needed by our build. 44e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ], 45e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'include_dirs': [ 46e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest', 47e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/include', 48e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ], 49e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'dependencies': [ 50e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest_prod', 51e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ], 52e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'defines': [ 53e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org # In order to allow regex matches in gtest to be shared between Windows 54e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org # and other systems, we tell gtest to always use it's internal engine. 55e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'GTEST_HAS_POSIX_RE=0', 569d72b8dd94263d9f500f18255d67f0c7b8c3527amachenbach@chromium.org # Chrome doesn't support / require C++11, yet. 579d72b8dd94263d9f500f18255d67f0c7b8c3527amachenbach@chromium.org 'GTEST_LANG_CXX11=0', 58e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ], 59e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'all_dependent_settings': { 60e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'defines': [ 61e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'GTEST_HAS_POSIX_RE=0', 629d72b8dd94263d9f500f18255d67f0c7b8c3527amachenbach@chromium.org 'GTEST_LANG_CXX11=0', 63e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ], 64e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org }, 65e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'conditions': [ 66e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ['os_posix == 1', { 67e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'defines': [ 68e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org # gtest isn't able to figure out when RTTI is disabled for gcc 69e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org # versions older than 4.3.2, and assumes it's enabled. Our Mac 70e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org # and Linux builds disable RTTI, and cannot guarantee that the 71e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org # compiler will be 4.3.2. or newer. The Mac, for example, uses 72e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org # 4.2.1 as that is the latest available on that platform. gtest 73e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org # must be instructed that RTTI is disabled here, and for any 74e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org # direct dependents that might include gtest headers. 75e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'GTEST_HAS_RTTI=0', 76e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ], 77e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'direct_dependent_settings': { 78e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'defines': [ 79e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'GTEST_HAS_RTTI=0', 80e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ], 81e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org }, 82e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org }], 83f50a8b46df04c10a7644112ce4cc73443ec4d281machenbach@chromium.org ['OS=="android"', { 84e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'defines': [ 85e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'GTEST_HAS_CLONE=0', 86e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ], 87e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'direct_dependent_settings': { 88e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'defines': [ 89e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'GTEST_HAS_CLONE=0', 90e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ], 91e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org }, 92e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org }], 93e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ['OS=="android"', { 94e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org # We want gtest features that use tr1::tuple, but we currently 95e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org # don't support the variadic templates used by libstdc++'s 96e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org # implementation. gtest supports this scenario by providing its 97e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org # own implementation but we must opt in to it. 98e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'defines': [ 99e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'GTEST_USE_OWN_TR1_TUPLE=1', 100e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org # GTEST_USE_OWN_TR1_TUPLE only works if GTEST_HAS_TR1_TUPLE is set. 101e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org # gtest r625 made it so that GTEST_HAS_TR1_TUPLE is set to 0 102e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org # automatically on android, so it has to be set explicitly here. 103e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'GTEST_HAS_TR1_TUPLE=1', 104e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ], 105e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'direct_dependent_settings': { 106e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'defines': [ 107e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'GTEST_USE_OWN_TR1_TUPLE=1', 108e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'GTEST_HAS_TR1_TUPLE=1', 109e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ], 110e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org }, 111e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org }], 112e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ], 113e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'direct_dependent_settings': { 114e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'defines': [ 115e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'UNIT_TEST', 116e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ], 117e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'include_dirs': [ 118e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/include', # So that gtest headers can find themselves. 119e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ], 120e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'target_conditions': [ 121e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ['_type=="executable"', { 122e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'test': 1, 123e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'conditions': [ 124e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ['OS=="mac"', { 125e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'run_as': { 126e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'action????': ['${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}'], 127e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org }, 128e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org }], 129e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ['OS=="win"', { 130e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'run_as': { 131e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'action????': ['$(TargetPath)', '--gtest_print_time'], 132e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org }, 133e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org }], 134e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ], 135e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org }], 136e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ], 137e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'msvs_disabled_warnings': [4800], 138e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org }, 139e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org }, 140e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org { 141e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'target_name': 'gtest_main', 142e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'type': 'static_library', 143e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'dependencies': [ 144e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest', 145e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ], 146e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'sources': [ 147e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/src/gtest_main.cc', 148e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ], 149e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org }, 150e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org { 151e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'target_name': 'gtest_prod', 152e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'toolsets': ['host', 'target'], 153e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'type': 'none', 154e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'sources': [ 155e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org 'gtest/include/gtest/gtest_prod.h', 156e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ], 157e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org }, 158e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org ], 159e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org} 160