# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

EXPORTS.gtest += [
    'MozGtestFriend.h',
]

if CONFIG['ENABLE_TESTS']:
    EXPORTS.gtest += [
        '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/gtest_prod.h',
        'mozilla/MozGTestBench.h',
    ]

    # GTest internal are exposed in gtest.h. See comment in gtest.h
    EXPORTS.gtest.internal += [
        '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',
    ]

    EXPORTS.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-more-actions.h',
        'gmock/include/gmock/gmock-spec-builders.h',
        'gmock/include/gmock/gmock.h',
    ]

    # gmock also includes internal interfaces in it's public header
    EXPORTS.gmock.internal += [
        'gmock/include/gmock/internal/gmock-generated-internal-utils.h',
        'gmock/include/gmock/internal/gmock-internal-utils.h',
        'gmock/include/gmock/internal/gmock-port.h',
    ]

    SOURCES += [
        'gmock/src/gmock-all.cc',
        'gtest/src/gtest-all.cc',
        'mozilla/GTestRunner.cpp',
        'mozilla/MozGTestBench.cpp',
    ]

    Library('gtest')

    SOURCES += [
        'mozilla/SanityTest.cpp',
    ]

    LOCAL_INCLUDES += [
        'gmock',
        'gmock/include',
        'gtest',
        'gtest/include',
    ]

    if CONFIG['OS_ARCH'] == 'WINNT':
        LOCAL_INCLUDES += [
            '/security/sandbox/chromium',
        ]    
    
    FINAL_LIBRARY = 'xul-gtest'