| # |
| # Copyright (C) 2011 Google Inc. All rights reserved. |
| # |
| # Redistribution and use in source and binary forms, with or without |
| # modification, are permitted provided that the following conditions are |
| # met: |
| # |
| # * Redistributions of source code must retain the above copyright |
| # notice, this list of conditions and the following disclaimer. |
| # * Redistributions in binary form must reproduce the above |
| # copyright notice, this list of conditions and the following disclaimer |
| # in the documentation and/or other materials provided with the |
| # distribution. |
| # * Neither the name of Google Inc. nor the names of its |
| # contributors may be used to endorse or promote products derived from |
| # this software without specific prior written permission. |
| # |
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| # |
| |
| { |
| 'variables': { |
| 'ahem_path': '../../DumpRenderTree/qt/fonts/AHEM____.TTF', |
| 'tools_dir': '../..', |
| 'source_dir': '../../../Source', |
| 'conditions': [ |
| # Location of the chromium src directory and target type is different |
| # if webkit is built inside chromium or as standalone project. |
| ['inside_chromium_build==0', { |
| # Webkit is being built outside of the full chromium project. |
| # e.g. via build-webkit --chromium |
| 'chromium_src_dir': '<(source_dir)/WebKit/chromium', |
| },{ |
| # WebKit is checked out in src/chromium/third_party/WebKit |
| 'chromium_src_dir': '<(tools_dir)/../../..', |
| }], |
| ], |
| }, |
| 'includes': [ |
| '../DumpRenderTree.gypi', |
| '../../../Source/WebKit/chromium/features.gypi', |
| ], |
| 'targets': [ |
| { |
| 'target_name': 'ImageDiff', |
| 'type': 'executable', |
| 'dependencies': [ |
| '<(chromium_src_dir)/webkit/support/webkit_support.gyp:webkit_support_gfx', |
| ], |
| 'include_dirs': [ |
| '<(DEPTH)', |
| ], |
| 'sources': [ |
| '<(tools_dir)/DumpRenderTree/chromium/ImageDiff.cpp', |
| ], |
| 'conditions': [ |
| ['OS=="android" and android_build_type==0', { |
| # The Chromium Android port will compare images on host rather |
| # than target (a device or emulator) for performance reasons. |
| 'toolsets': ['host'], |
| }], |
| ['OS=="android" and android_build_type!=0', { |
| 'type': 'none', |
| }], |
| ], |
| }, |
| { |
| 'target_name': 'TestRunner', |
| 'type': 'static_library', |
| 'defines': [ |
| 'WEBTESTRUNNER_IMPLEMENTATION=1', |
| ], |
| 'dependencies': [ |
| 'TestRunner_resources', |
| '<(source_dir)/WebKit/chromium/WebKit.gyp:webkit', |
| '<(source_dir)/WebKit/chromium/WebKit.gyp:webkit_test_support', |
| '<(source_dir)/WTF/WTF.gyp/WTF.gyp:wtf', |
| '<(chromium_src_dir)/webkit/support/webkit_support.gyp:webkit_support', |
| ], |
| 'include_dirs': [ |
| '<(chromium_src_dir)', |
| '<(source_dir)/WebKit/chromium/public', |
| '<(DEPTH)', |
| '../chromium/TestRunner/public', |
| '../chromium/TestRunner/src', |
| '../../../Source', |
| ], |
| 'direct_dependent_settings': { |
| 'include_dirs': [ |
| '../chromium/TestRunner/public', |
| '../../../Source', |
| ], |
| }, |
| 'sources': [ |
| '<@(test_runner_files)', |
| ], |
| 'conditions': [ |
| ['toolkit_uses_gtk == 1', { |
| 'defines': [ |
| 'WTF_USE_GTK=1', |
| ], |
| 'dependencies': [ |
| '<(chromium_src_dir)/build/linux/system.gyp:gtk', |
| ], |
| 'include_dirs': [ |
| '<(source_dir)/WebKit/chromium/public/gtk', |
| ], |
| }], |
| ['inside_chromium_build==1 and component=="shared_library"', { |
| 'sources': [ |
| '<(source_dir)/WebKit/chromium/src/ChromiumCurrentTime.cpp', |
| '<(source_dir)/WebKit/chromium/src/ChromiumThreading.cpp', |
| ], |
| }], |
| ], |
| }, |
| { |
| 'target_name': 'TestRunner_resources', |
| 'type': 'none', |
| 'dependencies': [ |
| 'ImageDiff', |
| 'copy_TestNetscapePlugIn', |
| ], |
| 'conditions': [ |
| ['OS=="win"', { |
| 'dependencies': [ |
| 'LayoutTestHelper', |
| ], |
| 'copies': [{ |
| 'destination': '<(PRODUCT_DIR)', |
| 'files': ['<(ahem_path)'], |
| }], |
| }], |
| ['OS=="mac"', { |
| 'dependencies': [ |
| 'LayoutTestHelper', |
| ], |
| 'all_dependent_settings': { |
| 'mac_bundle_resources': [ |
| '<(ahem_path)', |
| '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher100.ttf', |
| '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher200.ttf', |
| '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher300.ttf', |
| '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher400.ttf', |
| '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher500.ttf', |
| '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher600.ttf', |
| '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher700.ttf', |
| '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher800.ttf', |
| '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher900.ttf', |
| '<(SHARED_INTERMEDIATE_DIR)/webkit/missingImage.png', |
| '<(SHARED_INTERMEDIATE_DIR)/webkit/textAreaResizeCorner.png', |
| ], |
| }, |
| }], |
| ['use_x11 == 1', { |
| 'copies': [{ |
| 'destination': '<(PRODUCT_DIR)', |
| 'files': [ |
| '<(ahem_path)', |
| '<(tools_dir)/DumpRenderTree/chromium/fonts.conf', |
| ] |
| }], |
| }], |
| ['OS=="android"', { |
| 'dependencies!': [ |
| 'ImageDiff', |
| 'copy_TestNetscapePlugIn', |
| ], |
| 'copies': [{ |
| 'destination': '<(PRODUCT_DIR)', |
| 'files': [ |
| '<(ahem_path)', |
| '<(tools_dir)/DumpRenderTree/chromium/android_main_fonts.xml', |
| '<(tools_dir)/DumpRenderTree/chromium/android_fallback_fonts.xml', |
| ] |
| }], |
| }], |
| ['OS=="android" and android_build_type==0', { |
| 'dependencies': [ |
| 'ImageDiff#host', |
| ], |
| }], |
| ], |
| }, |
| { |
| 'target_name': 'DumpRenderTree', |
| 'type': 'executable', |
| 'mac_bundle': 1, |
| 'dependencies': [ |
| 'TestRunner', |
| '<(source_dir)/WebKit/chromium/WebKit.gyp:inspector_resources', |
| '<(source_dir)/WebKit/chromium/WebKit.gyp:webkit', |
| '<(source_dir)/WTF/WTF.gyp/WTF.gyp:wtf', |
| '<(chromium_src_dir)/base/base.gyp:test_support_base', |
| '<(chromium_src_dir)/build/temp_gyp/googleurl.gyp:googleurl', |
| '<(chromium_src_dir)/third_party/icu/icu.gyp:icuuc', |
| '<(chromium_src_dir)/third_party/mesa/mesa.gyp:osmesa', |
| '<(chromium_src_dir)/v8/tools/gyp/v8.gyp:v8', |
| '<(chromium_src_dir)/webkit/support/webkit_support.gyp:webkit_support', |
| ], |
| 'include_dirs': [ |
| '<(chromium_src_dir)', |
| '<(source_dir)/WebKit/chromium/public', |
| '<(tools_dir)/DumpRenderTree', |
| '<(DEPTH)', |
| ], |
| 'defines': [ |
| # Technically not a unit test but require functions available only to |
| # unit tests. |
| 'UNIT_TEST', |
| ], |
| 'sources': [ |
| '<@(drt_files)', |
| ], |
| 'conditions': [ |
| ['OS=="mac" or OS=="win" or toolkit_uses_gtk==1', { |
| # These platforms have their own implementations of |
| # checkLayoutTestSystemDependencies() and openStartupDialog(). |
| 'sources/': [ |
| ['exclude', 'TestShellStub\\.cpp$'], |
| ], |
| }], |
| ['OS=="win"', { |
| 'dependencies': [ |
| '<(chromium_src_dir)/third_party/angle/src/build_angle.gyp:libEGL', |
| '<(chromium_src_dir)/third_party/angle/src/build_angle.gyp:libGLESv2', |
| ], |
| 'resource_include_dirs': ['<(SHARED_INTERMEDIATE_DIR)/webkit'], |
| 'sources': [ |
| '<(SHARED_INTERMEDIATE_DIR)/net/net_resources.rc', |
| '<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_chromium_resources.rc', |
| '<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_resources.rc', |
| '<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_strings_en-US.rc', |
| ], |
| 'conditions': [ |
| ['inside_chromium_build==1', { |
| 'configurations': { |
| 'Debug_Base': { |
| 'msvs_settings': { |
| 'VCLinkerTool': { |
| 'LinkIncremental': '<(msvs_large_module_debug_link_mode)', |
| }, |
| }, |
| }, |
| }, |
| }], |
| ], |
| },{ # OS!="win" |
| 'sources/': [ |
| ['exclude', 'Win\\.cpp$'], |
| ], |
| 'actions': [ |
| { |
| 'action_name': 'repack_locale', |
| 'variables': { |
| 'repack_path': '<(chromium_src_dir)/tools/grit/grit/format/repack.py', |
| 'pak_inputs': [ |
| '<(SHARED_INTERMEDIATE_DIR)/net/net_resources.pak', |
| '<(SHARED_INTERMEDIATE_DIR)/ui/gfx/gfx_resources.pak', |
| '<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_chromium_resources.pak', |
| '<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_strings_en-US.pak', |
| '<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_resources_100_percent.pak', |
| ]}, |
| 'inputs': [ |
| '<(repack_path)', |
| '<@(pak_inputs)', |
| ], |
| 'outputs': [ |
| '<(INTERMEDIATE_DIR)/repack/DumpRenderTree.pak', |
| ], |
| 'action': ['python', '<(repack_path)', '<@(_outputs)', '<@(pak_inputs)'], |
| 'process_outputs_as_mac_bundle_resources': 1, |
| }, |
| ], # actions |
| }], |
| ['OS=="mac"', { |
| 'dependencies': [ |
| '<(source_dir)/WebKit/chromium/WebKit.gyp:copy_mesa', |
| ], |
| },{ # OS!="mac" |
| 'sources/': [ |
| # .mm is already excluded by common.gypi |
| ['exclude', 'Mac\\.cpp$'], |
| ], |
| }], |
| ['os_posix!=1 or OS=="mac"', { |
| 'sources/': [ |
| ['exclude', 'Posix\\.cpp$'], |
| ], |
| }], |
| ['use_x11 == 1', { |
| 'dependencies': [ |
| '<(chromium_src_dir)/build/linux/system.gyp:fontconfig', |
| ], |
| 'copies': [{ |
| 'destination': '<(PRODUCT_DIR)', |
| 'files': [ |
| '<(INTERMEDIATE_DIR)/repack/DumpRenderTree.pak', |
| ] |
| }], |
| 'variables': { |
| # FIXME: Enable warnings on other platforms. |
| 'chromium_code': 1, |
| }, |
| 'conditions': [ |
| ['linux_use_tcmalloc == 1', { |
| 'dependencies': [ |
| '<(chromium_src_dir)/base/allocator/allocator.gyp:allocator', |
| ], |
| }], |
| ], |
| },{ # use_x11 != 1 |
| 'sources/': [ |
| ['exclude', 'X11\\.cpp$'], |
| ] |
| }], |
| ['toolkit_uses_gtk == 1', { |
| 'defines': [ |
| 'WTF_USE_GTK=1', |
| ], |
| 'dependencies': [ |
| '<(chromium_src_dir)/build/linux/system.gyp:gtk', |
| ], |
| 'include_dirs': [ |
| '<(source_dir)/WebKit/chromium/public/gtk', |
| ], |
| }], |
| ['OS=="android"', { |
| 'type': 'shared_library', |
| 'dependencies': [ |
| '<(chromium_src_dir)/base/base.gyp:test_support_base', |
| '<(chromium_src_dir)/testing/android/native_test.gyp:native_test_native_code', |
| '<(chromium_src_dir)/tools/android/forwarder/forwarder.gyp:forwarder', |
| '<(chromium_src_dir)/tools/android/md5sum/md5sum.gyp:md5sum', |
| ], |
| 'copies': [{ |
| 'destination': '<(PRODUCT_DIR)', |
| 'files': [ |
| '<(INTERMEDIATE_DIR)/repack/DumpRenderTree.pak', |
| ] |
| }], |
| }, { # OS!="android" |
| 'sources/': [ |
| ['exclude', 'Android\\.cpp$'], |
| ], |
| }], |
| ['inside_chromium_build==0', { |
| 'dependencies': [ |
| '<(chromium_src_dir)/webkit/support/setup_third_party.gyp:third_party_headers', |
| ] |
| }], |
| ], |
| }, |
| { |
| 'target_name': 'TestNetscapePlugIn', |
| 'type': 'loadable_module', |
| 'sources': [ '<@(test_plugin_files)' ], |
| 'dependencies': [ |
| '<(chromium_src_dir)/third_party/npapi/npapi.gyp:npapi', |
| ], |
| 'include_dirs': [ |
| '<(chromium_src_dir)', |
| '<(tools_dir)/DumpRenderTree/TestNetscapePlugIn', |
| '<(tools_dir)/DumpRenderTree/chromium/TestNetscapePlugIn/ForwardingHeaders', |
| ], |
| 'conditions': [ |
| ['OS=="mac"', { |
| 'mac_bundle': 1, |
| 'product_extension': 'plugin', |
| 'link_settings': { |
| 'libraries': [ |
| '$(SDKROOT)/System/Library/Frameworks/Carbon.framework', |
| '$(SDKROOT)/System/Library/Frameworks/Cocoa.framework', |
| '$(SDKROOT)/System/Library/Frameworks/QuartzCore.framework', |
| ] |
| }, |
| 'xcode_settings': { |
| 'GCC_SYMBOLS_PRIVATE_EXTERN': 'NO', |
| 'INFOPLIST_FILE': '<(tools_dir)/DumpRenderTree/TestNetscapePlugIn/mac/Info.plist', |
| }, |
| }], |
| ['os_posix == 1 and OS != "mac"', { |
| 'cflags': [ |
| '-fvisibility=default', |
| ], |
| }], |
| ['OS=="win"', { |
| 'defines': [ |
| # This seems like a hack, but this is what Safari Win does. |
| 'snprintf=_snprintf', |
| ], |
| 'sources': [ |
| '<(tools_dir)/DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePlugin.def', |
| '<(tools_dir)/DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePlugin.rc', |
| ], |
| # The .rc file requires that the name of the dll is npTestNetscapePlugIn.dll. |
| 'product_name': 'npTestNetscapePlugIn', |
| }], |
| ], |
| }, |
| { |
| 'target_name': 'copy_TestNetscapePlugIn', |
| 'type': 'none', |
| 'dependencies': [ |
| 'TestNetscapePlugIn', |
| ], |
| 'conditions': [ |
| ['OS=="win"', { |
| 'copies': [{ |
| 'destination': '<(PRODUCT_DIR)/plugins', |
| 'files': ['<(PRODUCT_DIR)/npTestNetscapePlugIn.dll'], |
| }], |
| }], |
| ['OS=="mac"', { |
| 'dependencies': ['TestNetscapePlugIn'], |
| 'copies': [{ |
| 'destination': '<(PRODUCT_DIR)/plugins/', |
| 'files': ['<(PRODUCT_DIR)/TestNetscapePlugIn.plugin/'], |
| }], |
| }], |
| ['os_posix == 1 and OS != "mac"', { |
| 'copies': [{ |
| 'destination': '<(PRODUCT_DIR)/plugins', |
| 'files': ['<(PRODUCT_DIR)/libTestNetscapePlugIn.so'], |
| }], |
| }], |
| ], |
| }, |
| ], # targets |
| 'conditions': [ |
| ['OS=="win"', { |
| 'targets': [{ |
| 'target_name': 'LayoutTestHelper', |
| 'type': 'executable', |
| 'sources': ['<(tools_dir)/DumpRenderTree/chromium/LayoutTestHelperWin.cpp'], |
| }], |
| }], |
| ['OS=="mac"', { |
| 'targets': [{ |
| 'target_name': 'LayoutTestHelper', |
| 'type': 'executable', |
| 'sources': ['<(tools_dir)/DumpRenderTree/chromium/LayoutTestHelper.mm'], |
| 'link_settings': { |
| 'libraries': [ |
| '$(SDKROOT)/System/Library/Frameworks/AppKit.framework', |
| ], |
| }, |
| }], |
| }], |
| ['os_posix==1 and OS!="mac" and gcc_version>=46', { |
| 'target_defaults': { |
| # Disable warnings about c++0x compatibility, as some names (such |
| # as nullptr) conflict with upcoming c++0x types. |
| 'cflags_cc': ['-Wno-c++0x-compat'], |
| }, |
| }], |
| ['OS=="android"', { |
| # Wrap libDumpRenderTree.so into an android apk for execution. |
| 'targets': [{ |
| 'target_name': 'DumpRenderTree_apk', |
| 'type': 'none', |
| 'dependencies': [ |
| '<(chromium_src_dir)/base/base.gyp:base', |
| '<(chromium_src_dir)/media/media.gyp:media_java', |
| '<(chromium_src_dir)/net/net.gyp:net', |
| 'DumpRenderTree', |
| ], |
| 'variables': { |
| 'input_shlib_path': '<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)DumpRenderTree<(SHARED_LIB_SUFFIX)', |
| 'input_jars_paths': [ |
| '<(PRODUCT_DIR)/lib.java/chromium_base.jar', |
| '<(PRODUCT_DIR)/lib.java/chromium_net.jar', |
| '<(PRODUCT_DIR)/lib.java/chromium_media.jar', |
| ], |
| 'conditions': [ |
| ['inside_chromium_build==1', { |
| 'ant_build_to_chromium_src': '<(ant_build_out)/../../', |
| }, { |
| 'ant_build_to_chromium_src': '<(chromium_src_dir)', |
| }], |
| ], |
| }, |
| # Part of the following was copied from <(chromium_src_dir)/build/apk_test.gpyi. |
| # Not including it because gyp include doesn't support variable in path or under |
| # conditions. And we also have some different requirements. |
| 'actions': [{ |
| 'action_name': 'apk_DumpRenderTree', |
| 'message': 'Building DumpRenderTree test apk.', |
| 'inputs': [ |
| '<(chromium_src_dir)/testing/android/AndroidManifest.xml', |
| '<(chromium_src_dir)/testing/android/generate_native_test.py', |
| '<(input_shlib_path)', |
| '<@(input_jars_paths)', |
| ], |
| 'outputs': [ |
| '<(PRODUCT_DIR)/DumpRenderTree_apk/DumpRenderTree-debug.apk', |
| ], |
| 'action': [ |
| '<(chromium_src_dir)/testing/android/generate_native_test.py', |
| '--native_library', |
| '<(input_shlib_path)', |
| '--jars', |
| '"<@(input_jars_paths)"', |
| '--output', |
| '<(PRODUCT_DIR)/DumpRenderTree_apk', |
| '--strip-binary=<(android_strip)', |
| '--ant-args', |
| '-DANDROID_SDK=<(android_sdk)', |
| '--ant-args', |
| '-DANDROID_SDK_ROOT=<(android_sdk_root)', |
| '--ant-args', |
| '-DANDROID_SDK_TOOLS=<(android_sdk_tools)', |
| '--ant-args', |
| '-DANDROID_SDK_VERSION=<(android_sdk_version)', |
| '--ant-args', |
| '-DANDROID_TOOLCHAIN=<(android_toolchain)', |
| '--ant-args', |
| '-DANDROID_GDBSERVER=<(android_gdbserver)', |
| '--ant-args', |
| '-DPRODUCT_DIR=<(ant_build_out)', |
| '--ant-args', |
| '-DCHROMIUM_SRC=<(ant_build_to_chromium_src)', |
| '--app_abi', |
| '<(android_app_abi)', |
| ], |
| }], |
| }], |
| }], |
| ['clang==1', { |
| 'target_defaults': { |
| # FIXME: Add -Wglobal-constructors after fixing existing bugs. |
| 'cflags': ['-Wunused-parameter'], |
| 'xcode_settings': { |
| 'WARNING_CFLAGS': ['-Wunused-parameter'], |
| }, |
| }, |
| }], |
| ], # conditions |
| } |