• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2# Copyright (C) 2011 Google Inc. All rights reserved.
3#
4# Redistribution and use in source and binary forms, with or without
5# modification, are permitted provided that the following conditions are
6# met:
7#
8#         * Redistributions of source code must retain the above copyright
9# notice, this list of conditions and the following disclaimer.
10#         * Redistributions in binary form must reproduce the above
11# copyright notice, this list of conditions and the following disclaimer
12# in the documentation and/or other materials provided with the
13# distribution.
14#         * Neither the name of Google Inc. nor the names of its
15# contributors may be used to endorse or promote products derived from
16# this software without specific prior written permission.
17#
18# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29#
30
31{
32    'includes': [
33        '../bindings/bindings.gypi',
34        '../build/features.gypi',
35        '../build/scripts/scripts.gypi',
36        '../core/core.gypi',
37        '../modules/modules.gypi',
38        '../platform/blink_platform.gypi',
39        '../web/web.gypi',
40        '../wtf/wtf.gypi',
41    ],
42    'targets': [
43        {
44            'target_name': 'webkit_unit_tests_resources',
45            'type': 'none',
46            'dependencies': [
47                '<(DEPTH)/net/net.gyp:net_resources',
48                '<(DEPTH)/ui/resources/ui_resources.gyp:ui_resources',
49                '<(DEPTH)/webkit/webkit_resources.gyp:webkit_resources',
50                '<(DEPTH)/webkit/webkit_resources.gyp:webkit_strings',
51            ],
52            'actions': [{
53                'action_name': 'repack_webkit_unit_tests_resources',
54                'variables': {
55                    'repack_path': '<(DEPTH)/tools/grit/grit/format/repack.py',
56                    'pak_inputs': [
57                        '<(SHARED_INTERMEDIATE_DIR)/net/net_resources.pak',
58                        '<(SHARED_INTERMEDIATE_DIR)/ui/ui_resources/ui_resources_100_percent.pak',
59                        '<(SHARED_INTERMEDIATE_DIR)/webkit/blink_resources.pak',
60                        '<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_strings_en-US.pak',
61                        '<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_resources_100_percent.pak',
62                ]},
63                'inputs': [
64                    '<(repack_path)',
65                    '<@(pak_inputs)',
66                ],
67                'outputs': [
68                    '<(PRODUCT_DIR)/webkit_unit_tests_resources.pak',
69                ],
70                'action': ['python', '<(repack_path)', '<@(_outputs)', '<@(pak_inputs)'],
71            }],
72            'conditions': [
73                ['OS=="mac"', {
74                    'all_dependent_settings': {
75                        'mac_bundle_resources': [
76                            '<(PRODUCT_DIR)/webkit_unit_tests_resources.pak',
77                        ],
78                    },
79                }],
80            ]
81        },
82        {
83            'target_name': 'webkit_unit_tests',
84            'type': 'executable',
85            'variables': { 'enable_wexit_time_destructors': 1, },
86            'dependencies': [
87                '../config.gyp:unittest_config',
88                '../../public/blink.gyp:blink',
89                '../wtf/wtf_tests.gyp:wtf_unittest_helpers',
90                'web.gyp:blink_web_test_support',
91                '<(DEPTH)/base/base.gyp:base',
92                '<(DEPTH)/base/base.gyp:base_i18n',
93                '<(DEPTH)/base/base.gyp:test_support_base',
94                '<(DEPTH)/testing/gmock.gyp:gmock',
95                '<(DEPTH)/testing/gtest.gyp:gtest',
96                '<(DEPTH)/third_party/libwebp/libwebp.gyp:libwebp',
97                '<(DEPTH)/third_party/zlib/zlib.gyp:zlib',
98                '<(DEPTH)/url/url.gyp:url_lib',
99                '<(DEPTH)/v8/tools/gyp/v8.gyp:v8',
100                '<(DEPTH)/content/content_shell_and_tests.gyp:test_support_content',
101                'webkit_unit_tests_resources',
102            ],
103            'sources': [
104                '../web/tests/RunAllTests.cpp',
105            ],
106            'include_dirs': [
107                '../../public/web',
108                '../web',
109                'src',
110            ],
111            'conditions': [
112                ['component=="shared_library"', {
113                    'defines': [
114                        'BLINK_DLL_UNITTEST',
115                    ],
116                }, {
117                    'dependencies': [
118                        '../core/core.gyp:webcore',
119                    ],
120                    'defines': [
121                        'BLINK_IMPLEMENTATION=1',
122                        'INSIDE_BLINK',
123                    ],
124                    'sources': [
125                        '<@(bindings_unittest_files)',
126                        '<@(core_unittest_files)',
127                        '<@(modules_unittest_files)',
128                        '<@(platform_web_unittest_files)',
129                        '<@(web_unittest_files)',
130                    ],
131                }],
132                ['OS=="win" and component!="shared_library"', {
133                    'configurations': {
134                        'Debug_Base': {
135                            'msvs_settings': {
136                                'VCLinkerTool': {
137                                    'LinkIncremental': '<(msvs_large_module_debug_link_mode)',
138                                },
139                            },
140                        },
141                    },
142                    'conditions': [
143                        ['win_use_allocator_shim==1', {
144                            'dependencies': [
145                                '<(DEPTH)/base/allocator/allocator.gyp:allocator',
146                            ],
147                        }],
148                    ],
149                }],
150                ['OS=="android"', {
151                    'type': 'shared_library',
152                    'dependencies': [
153                        '<(DEPTH)/testing/android/native_test.gyp:native_test_native_code',
154                        '<(DEPTH)/tools/android/forwarder2/forwarder.gyp:forwarder2',
155                    ],
156                }],
157                ['OS=="mac"', {
158                    'include_dirs': [
159                        '../../public/web/mac',
160                    ],
161                }],
162                [ 'os_posix==1 and OS!="mac" and OS!="android" and OS!="ios" and use_allocator!="none"', {
163                    'dependencies': [
164                        '<(DEPTH)/base/allocator/allocator.gyp:allocator',
165                    ],
166                }],
167            ],
168        }
169    ], # targets
170    'conditions': [
171        ['gcc_version>=46', {
172            'target_defaults': {
173                # Disable warnings about c++0x compatibility, as some names (such
174                # as nullptr) conflict with upcoming c++0x types.
175                'cflags_cc': ['-Wno-c++0x-compat'],
176            },
177        }],
178        ['OS=="android" and android_webview_build==0 and gtest_target_type == "shared_library"', {
179            # Wrap libwebkit_unit_tests.so into an android apk for execution.
180            'targets': [{
181                'target_name': 'webkit_unit_tests_apk',
182                'type': 'none',
183                'dependencies': [
184                    '<(DEPTH)/base/base.gyp:base_java',
185                    '<(DEPTH)/net/net.gyp:net_java',
186                    'webkit_unit_tests',
187                ],
188                'variables': {
189                    'test_suite_name': 'webkit_unit_tests',
190                    'input_shlib_path': '<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)webkit_unit_tests<(SHARED_LIB_SUFFIX)',
191                },
192                'includes': [ '../../../../build/apk_test.gypi' ],
193            }],
194        }],
195    ],
196}
197