# Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import os Import(['env']) env = env.Clone() env_res = env.Clone() port_dir = env.Dir('#/$BUILD_TYPE/webkit/port') port_dir.addRepository(env.Dir('#/../webkit/port')) port_dir.addRepository(env.Dir('#/../third_party/WebKit/WebCore')) if env['PLATFORM'] == 'posix': env.Append( CCFLAGS = [ '-Wno-parentheses', ], CPPDEFINES = [ 'BUILDING_GTK__', ], ) env.Prepend( CPPPATH = [ '$WEBKIT_DIR/build/localized_strings', '$WEBKIT_DIR/build/JSConfig/WebCore', '$WEBKIT_DIR/build/WebCore', '$ICU38_DIR/public/common', '$ICU38_DIR/public/i18n', '$SKIA_DIR/include', '$SKIA_DIR/include/corecg', '$SKIA_DIR/platform', '$NPAPI_DIR', '$V8_DIR/src/api', '$V8_DIR/include', '$WEBKIT_DIR/V8Bindings/DerivedSources', '$WEBKIT_DIR/V8Bindings/SharedSources', '$WEBKIT_DIR/port/bindings/v8', '$WEBKIT_DIR/WebCore', '$WEBKIT_DIR/WebCore/JavaScriptHeaders', '$WEBKIT_DIR/WebCore/JavaScriptHeaders/JavaScriptCore', '$WEBKIT_DIR/pending', '$WEBKIT_DIR/pending/kjs', '$WEBKIT_DIR/pending/wtf', '$WEBKIT_DIR/port/bridge', '$WEBKIT_DIR/port/css', '$WEBKIT_DIR/port/dom', '$WEBKIT_DIR/port/editing', '$WEBKIT_DIR/port/history', '$WEBKIT_DIR/port/html', '$WEBKIT_DIR/port/loader', '$WEBKIT_DIR/port/loader/icon', '$WEBKIT_DIR/port/page', '$WEBKIT_DIR/port/platform', '$WEBKIT_DIR/port/platform/network', '$WEBKIT_DIR/port/platform/text', '$WEBKIT_DIR/port/plugins', '$WEBKIT_DIR/port/rendering', '$WEBKIT_DIR', '$WEBKIT_DIR/port/platform/image-decoders', '$WEBKIT_DIR/port/platform/image-decoders/bmp', '$WEBKIT_DIR/port/platform/image-decoders/gif', '$WEBKIT_DIR/port/platform/image-decoders/ico', '$WEBKIT_DIR/port/platform/image-decoders/jpeg', '$WEBKIT_DIR/port/platform/image-decoders/png', '$WEBKIT_DIR/port/platform/image-decoders/xbm', '$WEBKIT_DIR/port/platform/image-decoders/zlib', '$WEBKIT_DIR/port/platform/graphics', '$WEBKIT_DIR/port/svg/graphics', '$WEBKIT_DIR/port/platform/network', '$WEBKIT_DIR/port/platform/sql', '$WEBKIT_DIR/port/platform/network/win', '$WEBKIT_DIR/port/rendering', '$WEBKIT_DIR/port/storage', '$WEBKIT_DIR/port/xml', '$WEBKIT_DIR/port', '$WEBKIT_DIR/port/wtf', '$THIRD_PARTY_WEBKIT_DIR/JavaScriptCore', '$THIRD_PARTY_WEBKIT_DIR/JavaScriptCore/wtf', '$WEBKIT_DIR/port/svg', '$WEBKIT_DIR/port/svg/graphics/filters', '$WEBKIT_DIR/port/plugins', '$LIBXSLT_DIR/scons', '$LIBXSLT_DIR', '$LIBXML_DIR/scons/include', '$LIBXML_DIR/include', '$LIBPNG_DIR', '$ZLIB_DIR', '$LIBJPEG_DIR', '$WEBKIT_DIR/DerivedSources', '#/..', ], ) env.Append( WEBCORE_DIR = "$THIRD_PARTY_WEBKIT_DIR/WebCore", PENDING_DIR = "$WEBKIT_DIR/pending", PORT_DIR = "$WEBKIT_DIR/port", JAVASCRIPTCORE_DIR = "$THIRD_PARTY_WEBKIT_DIR/JavaScriptCore", WTF_DIR = "$JAVASCRIPTCORE_DIR/wtf", KJS_DIR = "$JAVASCRIPTCORE_DIR/kjs", PCRE_DIR = "$JAVASCRIPTCORE_DIR/pcre", V8BINDINGS_DIR = "$WEBKIT_DIR/V8Bindings", DERIVED_DIR = env.Dir("$WEBKIT_DIR/V8Bindings/DerivedSources"), SHARED_DIR = env.Dir("$WEBKIT_DIR/V8Bindings/SharedSources"), CPPDEFINES = [ 'U_STATIC_IMPLEMENTATION', '_SCL_SECURE_NO_DEPRECATE', '_SCL_SECURE_NO_WARNINGS', ['ENABLE_CROSS_DOCUMENT_MESSAGING', '1'], ['ENABLE_XSLT', '1'], ['ENABLE_XPATH', '1'], ['ENABLE_SVG', '1'], ['ENABLE_SVG_AS_IMAGE', '1'], ['ENABLE_SVG_USE', '1'], ['ENABLE_SVG_FOREIGN_OBJECT', '1'], ['ENABLE_SVG_FONTS', '1'], ['ANDROID_CANVAS_IMPL', '1'], ['WEBCORE_NAVIGATOR_PLATFORM', '"\\"Win32\\""'], 'USE_GOOGLE_URL_LIBRARY', # TODO: Uncomment this when building the merged WebKit, # so it uses the PLATFORM_SKIA definitions instead of # the old cairo.h shim. #'BUILDING_CHROMIUM__', 'CHROMIUM_BUILD', '_SECURE_ATL', 'LIBXSLT_STATIC', 'LIBXML_STATIC', 'PNG_USER_CONFIG', 'CHROME_PNG_WRITE_SUPPORT', ['__PRETTY_FUNCTION__', '__FUNCTION__'], 'DISABLE_ACTIVEX_TYPE_CONVERSION_MPLAYER2', 'HAVE_CONFIG_H', '__STD_C', ], ) # This list is the SConscripts that work on Windows and Linux. sconscript_dirs = [ 'SConscript.port', 'SConscript.javascriptcore_pcre', 'build/JSConfig/SConscript', 'build/JavaScriptCore/SConscript', 'build/port/SConscript', 'build/V8Bindings/SConscript', 'default_plugin/SConscript', 'glue/SConscript', 'glue/plugins/test/SConscript', 'tools/npapi_layout_test_plugin/SConscript', ] if env['PLATFORM'] == 'win32': # These extra dirs aren't win32-specific, they're just the dirs that # haven't yet been made portable. sconscript_dirs.extend([ 'activex_shim/SConscript', 'activex_shim_dll/SConscript', 'build/localized_strings/SConscript', 'build/WebCore/SConscript', # This almost works on linux. It requires # some changes to WebKit that we'll get # in the merge. 'tools/test_shell/SConscript', ]) env.Append( CPPDEFINES = [ '_CRT_SECURE_NO_DEPRECATE', '_CRT_NONSTDC_NO_WARNINGS', '_CRT_NONSTDC_NO_DEPRECATE', ['CRASH', '__debugbreak'], '_WIN32_WINNT=0x0600', 'WINVER=0x0600', ]) env.Prepend( CPPPATH = [ '$WEBKIT_DIR/port/os-win32', '$THIRD_PARTY_WEBKIT_DIR/JavaScriptCore/os-win32', ]) else: env.Prepend(CPPPATH = ['$WEBKIT_DIR/build/JSConfig/WebCore/v8']) env.SConscript(sconscript_dirs, exports=['env', 'env_res']) # Setup alias for all webkit related targets. # We'd like to do this as follows, but it leads to out-of-memory # errors when SCons tries to use the entire contents of the # directory tree as a huge content-signature string. # Instead we're going to let all the subsidiary SConscript files # add their own individual targets to the 'webkit' Alias. #env.Alias('webkit', ['.', '../icudt38.dll']) if env['PLATFORM'] == 'win32': env.Alias('webkit', ['../icudt38.dll']) version = env.Command('$WEBKIT_DIR/build/WebCore/webkit_version.h', ['$WEBCORE_DIR/Configurations/Version.xcconfig', '#/../webkit/build/webkit_version.py'], "$PYTHON ${SOURCES[1]} ${SOURCES[0]} ${TARGET.dir}") env.AlwaysBuild(version)