Index: gears/SConscript |
=================================================================== |
--- gears/SConscript (revision 2320) |
+++ gears/SConscript (working copy) |
@@ -2,41 +2,16 @@ |
# Use of this source code is governed by a BSD-style license that can be |
# found in the LICENSE file. |
-import os |
-import re |
- |
Import('env') |
env = env.Clone( |
+ GEARS_DIR = ".", |
OPEN_DIR = "$GEARS_DIR/googleclient/gears/opensource/gears", |
THIRD_PARTY_DIR = "$GEARS_DIR/googleclient/gears/opensource/third_party", |
GENFILES_DIR = "$GEARS_DIR/genfiles", |
PRIVATE_THIRD_PARTY_DIR = "$GEARS_DIR/googleclient/third_party", |
) |
-# Notes: |
-# This assumes you have a working gears checkout from p4 in the current dir. |
-# Steps for this: |
-# > echo %USER%-chromegears > p4config |
-# > g4 client -p //depot/googleclient/gears/p4_depot_paths |
-# > g4 sync |
-# |
-# This is a work-in-progress conversion of the current Gears set of Makefiles. |
-# A lot of the stuff doesn't translate to SCons-land well, and I'm not sure |
-# how faithful we want to be to the original. |
-# |
-# Questions: |
-# Should we flatten the output directory into |
-# Hammer/gears/platform/browser/*.obj like Gears does now? If so, how? |
-# |
-# TODO: split into env_common, env_browser, etc? |
-# common_* stuff will be built once, and object reused for all browser builds. |
-# browser_* stuff will be rebuilt for each different type of BROWSER define. |
-# - How do we do this? We want browser_ stuff under a different dir so |
-# BROWSER=NPAPI doesn't overwrite BROWSER=FF3's object files. |
-# Maybe put all the browser stuff in a separate .lib, and use variant_dir |
-# on a SConscript.browser? |
- |
# Argument switches |
vars = Variables(None, ARGUMENTS) |
vars.AddVariables( |
@@ -51,12 +26,12 @@ |
) |
vars.Update(env) |
-env.Prepend( |
+env.Append( |
USING_CCTESTS = (env['MODE'] == 'dbg' or not env['OFFICIAL_BUILD']) |
) |
# Version |
-env.Prepend( |
+env.Append( |
MAJOR = '0', |
MINOR = '4', |
BUILD = '17', |
@@ -68,214 +43,17 @@ |
) |
# Platform |
-env.Prepend( |
+env.Append( |
OS = '$PLATFORM', |
ARCH = 'i386', |
) |
+# C++ build flags. |
-# Building M4 files |
- |
-env.Tool('m4') |
- |
-# Add GNU tools to the PATH. |
-# TODO: Figure out the right way to do this. On first invocation, PATH |
-# is relative to '.'. On repeated invocations (when Hammer/gears exists), |
-# PATH is relative to './Hammer/gears'. |
-# TODO: Also it would be nice to use $THIRD_PARTY_DIR instead of hardcoding |
-# it here. |
-env.PrependENVPath('PATH', os.path.abspath( |
- 'googleclient/third_party/gnu/files')) |
-env.PrependENVPath('PATH', os.path.abspath( |
- '../../googleclient/third_party/gnu/files')) |
-env.PrependENVPath('PATH', os.path.abspath( |
- 'googleclient/third_party/python_24')) |
-env.PrependENVPath('PATH', os.path.abspath( |
- '../../googleclient/third_party/python_24')) |
- |
-i18n_langs = [ |
- 'en-US', |
- 'ar', |
- 'bg', |
- 'ca', |
- 'cs', |
- 'da', |
- 'de', |
- 'el', |
- 'en-GB', |
- 'es', |
- 'et', |
- 'fa', |
- 'fi', |
- 'fil', |
- 'fr', |
- 'he', |
- 'hi', |
- 'hr', |
- 'hu', |
- 'id', |
- 'is', |
- 'it', |
- 'ja', |
- 'ko', |
- 'lt', |
- 'lv', |
- 'ms', |
- 'nl', |
- 'no', |
- 'pl', |
- 'pt-BR', |
- 'pt-PT', |
- 'ro', |
- 'ru', |
- 'sk', |
- 'sl', |
- 'sr', |
- 'sv', |
- 'th', |
- 'tr', |
- 'uk', |
- 'ur', |
- 'vi', |
- 'zh-CN', |
- 'zh-TW', |
- 'ml', |
- 'te', |
- 'gu', |
- 'kn', |
- 'or', |
- 'bn', |
- 'ta', |
- 'mr', |
-] |
- |
-# TODO: switch over to Chrome's SDK. |
-env.Replace( |
- CPPPATH = [ |
- '$PRIVATE_THIRD_PARTY_DIR/platformsdk_vc80/files/include', |
- '$PRIVATE_THIRD_PARTY_DIR/atlmfc_vc80/files/include', |
- ], |
-) |
- |
-# TODO: DEBUG, OFFICIAL_BUILD, CCTESTS, I18N_LANGUAGES |
-env.Prepend( |
- M4FLAGS = [ |
- '--prefix-builtins', |
- '-DDEBUG=1', |
- '-DPRODUCT_VERSION=$VERSION', |
- '-DPRODUCT_VERSION_MAJOR=$MAJOR', |
- '-DPRODUCT_VERSION_MINOR=$MINOR', |
- '-DPRODUCT_VERSION_BUILD=$BUILD', |
- '-DPRODUCT_VERSION_PATCH=$PATCH', |
- '-DPRODUCT_OS=$OS', |
- '-DPRODUCT_ARCH=$ARCH', |
- '-DPRODUCT_GCC_VERSION="gcc3"', |
- '-DPRODUCT_MAINTAINER="google"', |
- '-DPRODUCT_FRIENDLY_NAME_UQ="$FRIENDLY_NAME"', |
- '-DPRODUCT_SHORT_NAME_UQ="$SHORT_NAME"', |
- '-DI18N_LANGUAGES=' + ','.join(i18n_langs), |
- ], |
- M4PATH = [ |
- '$OPEN_DIR', |
- '$GEARS_DIR', |
- ], |
-) |
- |
-# SCons magic to make M4PATH work. |
-env['M4INCPREFIX'] = '-I' |
-env['M4INCSUFFIX'] = '' |
-env['_M4INCFLAGS'] = ('${_concat(M4INCPREFIX, M4PATH, M4INCSUFFIX, ' + |
- '__env__, RDirs, TARGET, SOURCE)}') |
-env['M4COM'] = '$M4 $M4FLAGS ${_M4INCFLAGS} $SOURCE > $TARGET' |
- |
-# TODO: Dependency scanner for m4 files - doesn't work. |
-#m4_include_re = re.compile(r'm4_include\((.*)\)', re.M) |
-#def m4_scan(node, env, path): |
-# contents = node.get_contents() |
-# includes = m4_include_re.findall(contents) |
-# ret_includes = [] |
-# for include in includes: |
-# for dir in path: |
-# file = os.path.join(dir, include) |
-# if os.path.exists(file): |
-# ret_includes.append(file) |
-# break |
-# return ret_includes |
-# |
-#m4_scanner = Scanner(function = m4_scan, skeys = ['.m4', '.html_m4']) |
-#env.Append(SCANNERS = m4_scanner) |
- |
- |
-# Building .stab files, using M4FLAGS. |
- |
-# TODO: I want to just use $OPEN_DIR/tools/parse_stab.py. I need a way to |
-# convert from build dir to src dir. ${OPEN_DIR.srcdir} doesn't work. |
-env['STAB'] = 'python googleclient/gears/opensource/gears/tools/parse_stab.py' |
-env['STRIPPED_GEARS_DIR'] = env.Dir('$GEARS_DIR') |
-env['I18N_INPUTS_BASEDIR'] = '$STRIPPED_GEARS_DIR/ui/generated' |
-env['STABCOM'] = \ |
- '$STAB $M4FLAGS ${_M4INCFLAGS} $TARGET $SOURCE $I18N_INPUTS_BASEDIR' |
-stab_builder = Builder(action = '$STABCOM', src_suffix = '.stab') |
-env.Append(BUILDERS = {'Stab': stab_builder}) |
- |
-# Building .from_bin.cc files. |
- |
-# Must be run from within the gears dir. |
-# TODO: ${SOURCE[36:]} - is this the best way to strip off the dir I cd'ed to? |
-env['BIN2CPP'] = \ |
- 'cd googleclient/gears/opensource/gears && python tools/bin2cpp.py' |
-env['BIN2CPPCOM'] = '$BIN2CPP ${str(SOURCE)[36:]} > ${TARGET.abspath}' |
-bin2cpp_builder = Builder(action = '$BIN2CPPCOM') |
-env.Append(BUILDERS = {'Bin2cpp': bin2cpp_builder}) |
- |
- |
-# Building .idl files. |
-# This is a total mess. MIDL needs to be run from $OPEN_DIR because it's too |
-# stupid to apply its include paths to a relative path like "ui/ie/bla.idl" |
-# (it only looks in the current dir). So we have to jump through hoops to fix |
-# up our relative include paths and output files. |
- |
-env['IDLOUTPUTDIR'] = env.Dir('$GENFILES_DIR') |
-env['IDLINCPREFIX'] = '/I../../../../' |
-env['IDLINCSUFFIX'] = '' |
-env['_IDLINCFLAGS'] = ('${_concat(IDLINCPREFIX, CPPPATH, IDLINCSUFFIX, ' + |
- '__env__, RDirs, TARGET, SOURCE)}') |
-env['MIDLCOM'] = ( |
- 'cd googleclient/gears/opensource/gears && $MIDL $CPPFLAGS ' + |
- '${_IDLINCFLAGS} -env win32 -Oicf ' + |
- '/tlb ../../../../$IDLOUTPUTDIR/${TARGET.filebase}.tlb ' + |
- '/h ../../../../$IDLOUTPUTDIR/${TARGET.filebase}.h ' + |
- '/iid ../../../../$IDLOUTPUTDIR/${TARGET.filebase}_i.c ' + |
- '/proxy ../../../../$IDLOUTPUTDIR/${TARGET.filebase}_p.c ' + |
- '/dlldata ../../../../$IDLOUTPUTDIR/${TARGET.filebase}_data.c ' + |
- '../../../../$SOURCE' |
-) |
- |
-# Here's a quick hack to remove the .tlb file from the list of targets. Some |
-# of our IDL compiles don't generate one, so we don't a false dependency. |
-# TODO(sgk): clean up this mess! |
-import SCons.Builder |
-def MyIdlEmitter(target, source, env): |
- # HACK to remove .tlb file unilaterally - note that some IDLs generate a |
- # .tlb file, but not all. |
- t = target[1:] |
- # Write the output to the right directory. This is mostly because |
- # the generated html_dialog_host.h conflicts with the real |
- # html_dialog_host.h in the same directory (otherwise we could just use |
- # Install()). |
- t = [os.path.join(str(env.Dir('$IDLOUTPUTDIR')), os.path.basename(x)) |
- for x in t] |
- return (t, source) |
-b = env['BUILDERS']['TypeLibrary'] |
-emitter_list = [b.emitter, MyIdlEmitter] |
-b.emitter = SCons.Builder.ListEmitter(emitter_list) |
- |
-# C++ defines |
- |
# TODO: fix Gears to not require this removal. |
env['CPPDEFINES'].remove('WIN32_LEAN_AND_MEAN') |
-env.Prepend( |
+env.Replace( |
CPPPATH = [ |
'$OPEN_DIR', |
'$OPEN_DIR/..', |
@@ -286,18 +64,23 @@ |
'$THIRD_PARTY_DIR/zlib', |
'$THIRD_PARTY_DIR/v8/bindings_local', |
'$GEARS_DIR', |
- ], |
-) |
-env.Append( |
- CPPDEFINES = [ |
- 'DEBUG=1', |
- '_DEBUG=1', |
- 'USING_CCTESTS=1', |
- ], |
- |
+ # TODO: switch over to Chrome's SDK. |
+ # Note: these must come last because we want our own npapi.h to take |
+ # precedence. |
+ '$PRIVATE_THIRD_PARTY_DIR/platformsdk_vc80/files/include', |
+ '$PRIVATE_THIRD_PARTY_DIR/atlmfc_vc80/files/include', |
+ ] |
) |
+if env['MODE'] == 'dbg': |
+ env['CPPDEFINES'] += ['DEBUG=1'] |
+ env['CPPDEFINES'] += ['_DEBUG=1'] |
+if env['USING_CCTESTS']: |
+ env['CPPDEFINES'] += ['USING_CCTESTS=1'] |
+if env['OFFICIAL_BUILD']: |
+ env['CPPDEFINES'] += ['OFFICIAL_BUILD=1'] |
+ |
# TODO: if USING_PNG |
env.Append( |
CPPDEFINES = [ |
@@ -338,766 +121,8 @@ |
], |
) |
-env.Append( |
- CPPFLAGS = [ |
- '/wd4018' |
- ] |
-) |
+# Load all the components |
-env_common = env.Clone() |
-env_common.Prepend( |
-) |
- |
-env_browser = env.Clone() |
-env_browser.Prepend( |
- CPPDEFINES = [ |
- 'BROWSER_${BROWSER}=1', |
- ], |
-) |
- |
-env_browser.Append( |
- CPPPATH = [ |
-# '$LIBPNG_DIR', |
-# '$SKIA_DIR/include', |
-# '$SKIA_DIR/include/corecg', |
-# '$SKIA_DIR/platform', |
- ], |
- LIBS = [ |
- 'base', |
- 'gd', |
- 'googleurl', |
- 'icuuc', |
- 'jpeg', |
- 'modp_b64', |
- 'png', |
- 'portaudio', |
- 'sqlite-gears', |
-# 'skia', |
- 'zlib-gears', |
- ], |
-) |
- |
-if env['BROWSER'] == 'IE': |
- env_browser.Append( |
- LIBS = [ |
- 'kernel32.lib', |
- 'user32.lib', |
- 'gdi32.lib', |
- 'uuid.lib', |
- 'sensapi.lib', |
- 'shlwapi.lib', |
- 'shell32.lib', |
- 'advapi32.lib', |
- 'wininet.lib', |
- 'comdlg32.lib', |
- 'user32.lib', |
- ], |
- ) |
- |
-# Building resources. |
-env_res = env_browser.Clone() |
-env_res.Append( |
- CPPDEFINES = [ |
- 'DEBUG=1', |
- '_UNICODE', |
- 'UNICODE', |
- ], |
- CPPPATH = [ |
- '$GENFILES_DIR', |
- ], |
-) |
- |
-if env['PLATFORM'] == 'win32': |
- env.Append( |
- RCFLAGS = [ |
- ['/l', '0x409'], |
- ], |
- ) |
- |
- |
-# Input file lists |
- |
-def NewInputs(): |
- """Returns a new dictionary of input file lists. |
- |
- Browser-specific inputs are referenced by the browser name. All browsers |
- include inputs from the 'all' list. 'common' inputs are built using |
- env_common.""" |
- |
- return { |
- 'all': [], |
- 'common': [], |
- 'IE': [], |
- 'FF2': [], |
- 'FF3': [], |
- 'NPAPI': [], |
- 'SAFARI': [], |
- } |
- |
-srcs = NewInputs() |
-m4srcs = NewInputs() |
-html_m4srcs = NewInputs() |
-stabsrcs = NewInputs() |
-idlsrcs = NewInputs() |
-binsrcs = NewInputs() |
- |
-#----------------------------------------------------------------------------- |
-# third_party/breakpad |
- |
-srcs['NPAPI'] += [ |
- '$THIRD_PARTY_DIR/breakpad/src/client/exception_handler_stub.cc', |
-] |
- |
-srcs['IE'] += [ |
- '$THIRD_PARTY_DIR/breakpad/src/client/windows/handler/exception_handler.cc', |
- '$THIRD_PARTY_DIR/breakpad/src/common/windows/guid_string.cc', |
- '$OPEN_DIR/base/common/exception_handler_win32.cc', |
-] |
- |
-#----------------------------------------------------------------------------- |
-# third_party/v8/bindings |
- |
-srcs['NPAPI'] += [ |
- '$THIRD_PARTY_DIR/v8/bindings_local/npruntime.cc', |
- '$THIRD_PARTY_DIR/v8/bindings_local/np_v8object.cc', |
- '$THIRD_PARTY_DIR/v8/bindings_local/v8_helpers.cc', |
- '$THIRD_PARTY_DIR/v8/bindings_local/v8_np_utils.cc', |
- '$THIRD_PARTY_DIR/v8/bindings_local/v8_npobject.cc', |
-] |
- |
-#----------------------------------------------------------------------------- |
-# third_party/convert_utf |
- |
-srcs['all'] += [ |
- '$THIRD_PARTY_DIR/convert_utf/ConvertUTF.c' |
-] |
- |
-#----------------------------------------------------------------------------- |
-# third_party/jsoncpp |
- |
-srcs['all'] += [ |
- '$THIRD_PARTY_DIR/jsoncpp/json_reader.cc', |
- '$THIRD_PARTY_DIR/jsoncpp/json_value.cc', |
- '$THIRD_PARTY_DIR/jsoncpp/json_writer.cc', |
-] |
- |
-#----------------------------------------------------------------------------- |
-# third_party/modp_b64 |
- |
-# We're using Chrome's version. Uncomment if that doesn't work. |
-srcs['all'] += [ |
-# '$THIRD_PARTY_DIR/modp_b64/modp_b64.cc', |
-] |
- |
-#----------------------------------------------------------------------------- |
-# base/common |
- |
-m4srcs['common'] = [ |
- '$OPEN_DIR/base/common/product_constants.h.m4', |
-] |
- |
-m4srcs['all'] = [ |
- '$OPEN_DIR/base/common/product_version.rc.m4' |
-] |
- |
-srcs['all'] += [ |
- '$OPEN_DIR/base/common/async_router.cc', |
- '$OPEN_DIR/base/common/base_class.cc', |
- '$OPEN_DIR/base/common/base64.cc', |
- '$OPEN_DIR/base/common/byte_store.cc', |
- '$OPEN_DIR/base/common/byte_store_test.cc', |
- '$OPEN_DIR/base/common/circular_buffer_test.cc', |
- '$OPEN_DIR/base/common/database_name_table.cc', |
- '$OPEN_DIR/base/common/event.cc', |
- '$OPEN_DIR/base/common/event_test.cc', |
- '$OPEN_DIR/base/common/file.cc', |
- '$OPEN_DIR/base/common/file_test.cc', |
- '$OPEN_DIR/base/common/html_event_monitor.cc', |
- '$OPEN_DIR/base/common/http_utils.cc', |
- '$OPEN_DIR/base/common/js_dom_element.cc', |
- '$OPEN_DIR/base/common/js_marshal.cc', |
- '$OPEN_DIR/base/common/js_runner_utils.cc', |
- '$OPEN_DIR/base/common/js_types.cc', |
- '$OPEN_DIR/base/common/leak_counter.cc', |
- '$OPEN_DIR/base/common/memory_buffer.cc', |
- '$OPEN_DIR/base/common/memory_buffer_test.cc', |
- '$OPEN_DIR/base/common/message_queue.cc', |
- '$OPEN_DIR/base/common/message_service.cc', |
- '$OPEN_DIR/base/common/message_service_test.cc', |
- '$OPEN_DIR/base/common/mime_detect.cc', |
- '$OPEN_DIR/base/common/mutex.cc', |
- '$OPEN_DIR/base/common/mutex_posix.cc', |
- '$OPEN_DIR/base/common/mutex_test.cc', |
- '$OPEN_DIR/base/common/mutex_win32.cc', |
- '$OPEN_DIR/base/common/name_value_table.cc', |
- '$OPEN_DIR/base/common/name_value_table_test.cc', |
- '$OPEN_DIR/base/common/paths.cc', |
- '$OPEN_DIR/base/common/permissions_db.cc', |
- '$OPEN_DIR/base/common/permissions_db_test.cc', |
- '$OPEN_DIR/base/common/permissions_manager.cc', |
- '$OPEN_DIR/base/common/position_table.cc', |
- '$OPEN_DIR/base/common/process_utils_win32.cc', |
- '$OPEN_DIR/base/common/png_utils.cc', |
- '$OPEN_DIR/base/common/scoped_refptr_test.cc', |
- '$OPEN_DIR/base/common/security_model.cc', |
- '$OPEN_DIR/base/common/security_model_test.cc', |
- '$OPEN_DIR/base/common/serialization.cc', |
- '$OPEN_DIR/base/common/serialization_test.cc', |
- '$OPEN_DIR/base/common/shortcut_table.cc', |
- '$OPEN_DIR/base/common/sqlite_wrapper.cc', |
- '$OPEN_DIR/base/common/sqlite_wrapper_test.cc', |
- '$OPEN_DIR/base/common/stopwatch.cc', |
- '$OPEN_DIR/base/common/stopwatch_posix.cc', |
- '$OPEN_DIR/base/common/stopwatch_win32.cc', |
- '$OPEN_DIR/base/common/string16.cc', |
- '$OPEN_DIR/base/common/string_utils.cc', |
- '$OPEN_DIR/base/common/string_utils_osx.cc', |
- '$OPEN_DIR/base/common/string_utils_test.cc', |
- '$OPEN_DIR/base/common/thread.cc', |
- '$OPEN_DIR/base/common/thread_locals.cc', |
- '$OPEN_DIR/base/common/thread_posix.cc', |
- '$OPEN_DIR/base/common/thread_win32.cc', |
- '$OPEN_DIR/base/common/timed_call.cc', |
- '$OPEN_DIR/base/common/timed_call_test.cc', |
- '$OPEN_DIR/base/common/url_utils.cc', |
- '$OPEN_DIR/base/common/url_utils_test.cc', |
-] |
- |
-#----------------------------------------------------------------------------- |
-# base/ie |
- |
-m4srcs['IE'] += [ |
- '$OPEN_DIR/base/ie/bho.rgs.m4', |
- '$OPEN_DIR/base/ie/interfaces.idl.m4', |
- '$OPEN_DIR/base/ie/module.rgs.m4', |
-] |
- |
-idlsrcs['IE'] += [ |
- '$OPEN_DIR/base/ie/interfaces.idl', |
-] |
- |
-srcs['IE'] += [ |
- '$OPEN_DIR/base/ie/activex_utils.cc', |
- '$OPEN_DIR/base/ie/bho.cc', |
- '$OPEN_DIR/base/common/detect_version_collision_win32.cc', |
- '$OPEN_DIR/base/ie/dispatcher_to_idispatch.cc', |
- '$OPEN_DIR/base/common/ipc_message_queue_null.cc', |
- '$OPEN_DIR/base/common/ipc_message_queue_test.cc', |
- '$OPEN_DIR/base/common/ipc_message_queue_test_win32.cc', |
- '$OPEN_DIR/base/common/ipc_message_queue_win32.cc', |
- '$OPEN_DIR/base/common/js_runner_ie.cc', |
- '$OPEN_DIR/base/common/message_queue_ie.cc', |
- '$OPEN_DIR/base/ie/module.cc', |
- '$OPEN_DIR/base/ie/module_wrapper.cc', |
- '$OPEN_DIR/base/common/paths_ie.cc', |
- '$OPEN_DIR/base/common/time_utils_win32.cc', |
- '$OPEN_DIR/base/common/vista_utils.cc', |
-] |
- |
-if env['PLATFORM'] == 'win32': |
- srcs['IE'] += [ |
- '$OPEN_DIR/base/common/file_win32.cc', |
- '$OPEN_DIR/base/common/html_event_monitor_ie.cc', |
- '$OPEN_DIR/base/ie/ie_version.cc', |
- ] |
-elif env['PLATFORM'] == 'wince': |
- srcs['IE'] += [ |
- '$OPEN_DIR/base/common/common_ie.cc', |
- '$OPEN_DIR/base/common/file_wince.cc', |
- '$OPEN_DIR/base/common/wince_compatibility.cc', |
- ] |
- |
- |
-#----------------------------------------------------------------------------- |
-# base/chrome + npapi |
- |
-srcs['NPAPI'] += [ |
- '$OPEN_DIR/base/chrome/module_cr.cc', |
- '$OPEN_DIR/base/common/js_runner_cr.cc', |
- '$OPEN_DIR/base/common/html_event_monitor_np.cc', |
- '$OPEN_DIR/base/common/ipc_message_queue_linux.cc', |
- '$OPEN_DIR/base/common/ipc_message_queue_null.cc', |
- '$OPEN_DIR/base/common/ipc_message_queue_test.cc', |
- '$OPEN_DIR/base/common/ipc_message_queue_test_linux.cc', |
- '$OPEN_DIR/base/common/ipc_message_queue_test_win32.cc', |
- '$OPEN_DIR/base/common/ipc_message_queue_win32.cc', |
- '$OPEN_DIR/base/common/paths_cr.cc', |
- '$OPEN_DIR/base/npapi/browser_utils.cc', |
- '$OPEN_DIR/base/npapi/module.cc', |
- '$OPEN_DIR/base/npapi/np_utils.cc', |
- '$OPEN_DIR/base/npapi/npn_bindings.cc', |
- '$OPEN_DIR/base/npapi/npp_bindings.cc', |
- '$OPEN_DIR/base/npapi/plugin.cc', |
-] |
- |
-if env['PLATFORM'] == 'win32': |
- srcs['NPAPI'] += [ |
- '$OPEN_DIR/base/common/detect_version_collision_win32.cc', |
- '$OPEN_DIR/base/common/file_win32.cc', |
- '$OPEN_DIR/base/common/message_queue_ie.cc', |
- '$OPEN_DIR/base/common/time_utils_win32.cc', |
- '$OPEN_DIR/base/common/vista_utils.cc', |
- '$OPEN_DIR/base/ie/ie_version.cc', |
- ] |
- |
-#----------------------------------------------------------------------------- |
-# console |
- |
-srcs['all'] += [ |
- '$OPEN_DIR/console/console.cc', |
- '$OPEN_DIR/console/js_callback_logging_backend.cc', |
-] |
- |
-#----------------------------------------------------------------------------- |
-# canvas |
- |
-# The Canvas API is not yet enabled in official builds. |
-if not env['OFFICIAL_BUILD'] and env['PLATFORM'] in ['win32', 'osx']: |
- srcs['all'] += [ |
- '$OPEN_DIR/canvas/blob_backed_skia_input_stream.cc', |
- '$OPEN_DIR/canvas/blob_backed_skia_output_stream.cc', |
- '$OPEN_DIR/canvas/canvas.cc', |
- '$OPEN_DIR/canvas/canvas_rendering_context_2d.cc', |
- ] |
- |
-#----------------------------------------------------------------------------- |
-# database |
- |
-srcs['all'] += [ |
- '$OPEN_DIR/database/database.cc', |
- '$OPEN_DIR/database/database_utils.cc', |
- '$OPEN_DIR/database/database_utils_test.cc', |
- '$OPEN_DIR/database/result_set.cc', |
-] |
- |
-#----------------------------------------------------------------------------- |
-# database2 |
- |
-srcs['all'] += [ |
- '$OPEN_DIR/database2/connection.cc', |
- '$OPEN_DIR/database2/commands.cc', |
- '$OPEN_DIR/database2/database2.cc', |
- '$OPEN_DIR/database2/database2_common.cc', |
- '$OPEN_DIR/database2/database2_metadata.cc', |
- '$OPEN_DIR/database2/interpreter.cc', |
- '$OPEN_DIR/database2/manager.cc', |
- '$OPEN_DIR/database2/result_set2.cc', |
- '$OPEN_DIR/database2/statement.cc', |
- '$OPEN_DIR/database2/transaction.cc', |
-] |
- |
-#----------------------------------------------------------------------------- |
-# desktop |
- |
-srcs['all'] += [ |
- '$OPEN_DIR/desktop/desktop.cc', |
- '$OPEN_DIR/desktop/desktop_linux.cc', |
- '$OPEN_DIR/desktop/desktop_osx.cc', |
- '$OPEN_DIR/desktop/desktop_test.cc', |
- '$OPEN_DIR/desktop/desktop_win32.cc', |
- '$OPEN_DIR/desktop/dll_data_wince.cc', |
- '$OPEN_DIR/desktop/drag_and_drop_registry.cc', |
- '$OPEN_DIR/desktop/notification_message_orderer.cc', |
- '$OPEN_DIR/desktop/shortcut_utils_win32.cc', |
-] |
- |
-srcs['NPAPI'] += [ |
- '$OPEN_DIR/desktop/desktop_cr.cc', |
-] |
- |
-srcs['all'] += [ |
- '$OPEN_DIR/desktop/file_dialog.cc', |
- '$OPEN_DIR/desktop/file_dialog_gtk.cc', |
- '$OPEN_DIR/desktop/file_dialog_osx.cc', |
- '$OPEN_DIR/desktop/file_dialog_win32.cc', |
-] |
- |
-# The browser module also needs these files, to communicate with the notifier. |
-srcs['all'] += [ |
- '$OPEN_DIR/notifier/const_notifier.cc', |
- '$OPEN_DIR/notifier/notifier_process_linux.cc', |
- '$OPEN_DIR/notifier/notifier_process_posix.cc', |
- '$OPEN_DIR/notifier/notifier_process_win32.cc', |
- '$OPEN_DIR/notifier/notifier_proxy.cc', |
- '$OPEN_DIR/notifier/notifier_utils_win32.cc', |
- '$OPEN_DIR/notifier/notification.cc', |
-] |
- |
-srcs['FF3'] += [ |
- '$OPEN_DIR/desktop/drop_target_ff.cc', |
-] |
- |
-srcs['IE'] += [ |
- '$OPEN_DIR/desktop/drop_target_ie.cc', |
-] |
- |
-#----------------------------------------------------------------------------- |
-# localserver/common |
- |
-srcs['all'] += [ |
- '$OPEN_DIR/localserver/common/blob_store.cc', |
- '$OPEN_DIR/localserver/common/capture_task.cc', |
- '$OPEN_DIR/localserver/common/file_store.cc', |
- '$OPEN_DIR/localserver/common/http_constants.cc', |
- '$OPEN_DIR/localserver/common/localserver.cc', |
- '$OPEN_DIR/localserver/common/localserver_db.cc', |
- '$OPEN_DIR/localserver/common/localserver_perf_test.cc', |
- '$OPEN_DIR/localserver/common/managed_resource_store.cc', |
- '$OPEN_DIR/localserver/common/manifest.cc', |
- '$OPEN_DIR/localserver/common/resource_store.cc', |
- '$OPEN_DIR/localserver/common/update_task.cc', |
- '$OPEN_DIR/localserver/file_submitter.cc', |
- '$OPEN_DIR/localserver/localserver_module.cc', |
- '$OPEN_DIR/localserver/managed_resource_store_module.cc', |
- '$OPEN_DIR/localserver/resource_store_module.cc', |
-] |
- |
-srcs['IE'] += [ |
- '$OPEN_DIR/localserver/common/http_cookies.cc', |
-] |
- |
-#----------------------------------------------------------------------------- |
-# localserver/chrome + npapi |
-# TODO: ie/ff/safari |
- |
-srcs['NPAPI'] += [ |
- '$OPEN_DIR/localserver/chrome/gears_protocol_handler.cc', |
- '$OPEN_DIR/localserver/chrome/network_intercept_cr.cc', |
- '$OPEN_DIR/localserver/chrome/http_cookies_cr.cc', |
- '$OPEN_DIR/localserver/chrome/http_request_cr.cc', |
- '$OPEN_DIR/localserver/chrome/update_task_cr.cc', |
- '$OPEN_DIR/localserver/common/safe_http_request.cc', |
- '$OPEN_DIR/localserver/npapi/async_task_np.cc', |
-] |
- |
-#----------------------------------------------------------------------------- |
-# localserver/ie |
- |
-srcs['IE'] += [ |
- '$OPEN_DIR/localserver/ie/async_task_ie.cc', |
- '$OPEN_DIR/localserver/ie/file_submit_behavior.cc', |
- '$OPEN_DIR/localserver/ie/http_handler_ie.cc', |
- '$OPEN_DIR/localserver/ie/http_request_ie.cc', |
- '$OPEN_DIR/localserver/common/progress_event.cc', |
- '$OPEN_DIR/localserver/ie/progress_input_stream.cc', |
- '$OPEN_DIR/localserver/ie/update_task_ie.cc', |
- '$OPEN_DIR/localserver/ie/urlmon_utils.cc', |
-] |
- |
-#----------------------------------------------------------------------------- |
-# ui/chrome |
- |
-srcs['NPAPI'] += [ |
- '$OPEN_DIR/ui/chrome/settings_dialog_cr.cc', |
- '$OPEN_DIR/ui/chrome/html_dialog_cr.cc', |
-] |
- |
-#----------------------------------------------------------------------------- |
-# installer |
- |
-m4srcs['common'] += [ |
- '$OPEN_DIR/installer/npapi_msi.wxs.m4', |
-] |
- |
-#----------------------------------------------------------------------------- |
-# dummy_module |
- |
-srcs['all'] += [ |
- '$OPEN_DIR/dummy/dummy_module.cc', |
-] |
- |
- |
-#----------------------------------------------------------------------------- |
-# test |
- |
-srcs['all'] += [ |
- '$OPEN_DIR/cctests/test.cc', |
-] |
- |
-#----------------------------------------------------------------------------- |
-# ui/generated |
-# |
-# Anything with the _I18N suffix will be expanded for each language in |
-# I18N_LANGS |
- |
-html_m4srcs['all'] += [ |
- '$OPEN_DIR/ui/common/permissions_dialog.html_m4', |
- '$OPEN_DIR/ui/common/settings_dialog.html_m4', |
- '$OPEN_DIR/ui/common/shortcuts_dialog.html_m4', |
-] |
- |
-#TODO: $(IE_OUTDIR)/string_table.res |
- |
-#----------------------------------------------------------------------------- |
-# ui/common (built for all browsers) |
- |
-srcs['all'] += [ |
- '$OPEN_DIR/ui/common/html_dialog.cc', |
- '$OPEN_DIR/ui/common/i18n_strings.cc', |
- '$OPEN_DIR/ui/common/permissions_dialog.cc', |
- '$OPEN_DIR/ui/common/window_utils.cc', |
-] |
- |
-srcs['IE'] += [ |
- '$OPEN_DIR/ui/common/settings_dialog.cc', |
-] |
- |
-stabsrcs['all'] = [ |
- '$OPEN_DIR/ui/common/permissions_dialog.js.stab', |
- '$OPEN_DIR/ui/common/settings_dialog.js.stab', |
- '$OPEN_DIR/ui/common/shortcuts_dialog.js.stab', |
-] |
- |
-#----------------------------------------------------------------------------- |
-# ui/npapi |
-# TODO: ie/ff/safari |
- |
-m4srcs['all'] += [ |
- '$OPEN_DIR/ui/ie/ui_resources.rc.m4', |
-] |
- |
-#----------------------------------------------------------------------------- |
-# ui/ie |
- |
-m4srcs['IE'] += [ |
- '$OPEN_DIR/ui/ie/tools_menu_item.rgs.m4', |
- '$OPEN_DIR/ui/ie/ui_resources.rc.m4', |
-] |
- |
-idlsrcs['IE'] += [ |
- '$OPEN_DIR/ui/ie/html_dialog_host.idl', |
-] |
- |
-srcs['IE'] += [ |
- '$OPEN_DIR/ui/ie/html_dialog_ie.cc', |
- '$OPEN_DIR/ui/ie/tools_menu_item.cc', |
-] |
- |
-stabsrcs['IE'] += [ |
- '$OPEN_DIR/ui/ie/string_table.rc.stab', |
-] |
- |
-# Additional files specific to Win32 or WinCE. |
-if env['PLATFORM'] == 'win32': |
- srcs['IE'] += [ |
- '$OPEN_DIR/ui/ie/html_dialog_host.cc', |
- ] |
-elif env['PLATFORM'] == 'wince': |
- m4srcs['IE'] += [ |
- '$OPEN_DIR/ui/ie/html_dialog_bridge_iemobile.rgs.m4', |
- ] |
- |
- idlsrcs['IE'] += [ |
- '$OPEN_DIR/ui/ie/html_dialog_host_iemobile.idl', |
- '$OPEN_DIR/ui/ie/html_dialog_bridge_iemobile.idl', |
- ] |
- |
- srcs['IE'] += [ |
- '$OPEN_DIR/ui/ie/html_dialog_host_iemobile.cc', |
- '$OPEN_DIR/ui/ie/html_dialog_bridge_iemobile.cc', |
- ] |
- |
-#----------------------------------------------------------------------------- |
-# workerpool/npapi |
-# TODO: ff/safari |
- |
-srcs['NPAPI'] += [ |
- '$OPEN_DIR/workerpool/common/workerpool_utils.cc', |
- '$OPEN_DIR/workerpool/npapi/pool_threads_manager.cc', |
- '$OPEN_DIR/workerpool/workerpool.cc', |
-] |
- |
-#----------------------------------------------------------------------------- |
-# workerpool/ie |
-# TODO: ie/ff/safari |
- |
-srcs['IE'] += [ |
- '$OPEN_DIR/workerpool/common/workerpool_utils.cc', |
- '$OPEN_DIR/workerpool/ie/pool_threads_manager.cc', |
- '$OPEN_DIR/workerpool/workerpool.cc', |
-] |
- |
-#----------------------------------------------------------------------------- |
-# timer |
- |
-srcs['all'] += [ |
- '$OPEN_DIR/timer/timer.cc', |
-] |
- |
-#----------------------------------------------------------------------------- |
-# httprequest |
- |
-srcs['all'] += [ |
- '$OPEN_DIR/httprequest/httprequest.cc', |
- '$OPEN_DIR/httprequest/httprequest_upload.cc', |
-] |
- |
-#----------------------------------------------------------------------------- |
-# blob |
- |
-srcs['all'] += [ |
- '$OPEN_DIR/blob/blob.cc', |
- '$OPEN_DIR/blob/blob_builder.cc', |
- '$OPEN_DIR/blob/blob_builder_module.cc', |
- '$OPEN_DIR/blob/blob_interface.cc', |
- '$OPEN_DIR/blob/blob_test.cc', |
- '$OPEN_DIR/blob/blob_utils.cc', |
- '$OPEN_DIR/blob/buffer_blob.cc', |
- '$OPEN_DIR/blob/fail_blob.cc', |
- '$OPEN_DIR/blob/file_blob.cc', |
- '$OPEN_DIR/blob/join_blob.cc', |
- '$OPEN_DIR/blob/slice_blob.cc', |
-] |
- |
-# TODO(bpm): Make this cross-browser, not Firefox- or Safari-specific. |
-#srcs['all'] += [ |
-# '$OPEN_DIR/blob/blob_input_stream_ff.cc', |
-# '$OPEN_DIR/blob/blob_input_stream_ff_test.cc', |
-#] |
-# |
-#srcs['all'] += [ |
-# '$OPEN_DIR/blob/blob_input_stream_sf.mm', |
-# '$OPEN_DIR/blob/blob_input_stream_sf_test.mm', |
-#] |
- |
-#----------------------------------------------------------------------------- |
-# TODO: inspector |
- |
-if not env['OFFICIAL_BUILD']: |
- srcs['all'] += [ |
- '$OPEN_DIR/inspector/inspector_resources.cc', |
- ] |
- |
- binsrcs['common'] += [ |
- '$OPEN_DIR/inspector/console.html', |
- '$OPEN_DIR/inspector/database.html', |
- '$OPEN_DIR/inspector/index.html', |
- '$OPEN_DIR/inspector/localserver.html', |
- '$OPEN_DIR/inspector/common/alert-35.png', |
- '$OPEN_DIR/inspector/common/database.gif', |
- '$OPEN_DIR/inspector/common/error-35.png', |
- '$OPEN_DIR/inspector/common/ie6hacks.css', |
- '$OPEN_DIR/inspector/common/inspector_links.js', |
- '$OPEN_DIR/inspector/common/lightbulb-35.png', |
- '$OPEN_DIR/inspector/common/localserver.gif', |
- '$OPEN_DIR/inspector/common/question-35.png', |
- '$OPEN_DIR/inspector/common/styles.css', |
- '$OPEN_DIR/inspector/common/workerpool.gif', |
- '$OPEN_DIR/sdk/gears_init.js', |
- '$OPEN_DIR/ui/common/base.js', |
- '$OPEN_DIR/ui/common/dom.js', |
- '$OPEN_DIR/ui/common/icon_32x32.png', |
- ] |
- |
-#----------------------------------------------------------------------------- |
-# image |
- |
-# The Image API is not yet enabled in official builds. |
-if not env['OFFICIAL_BUILD'] and env['PLATFORM'] != 'wince': |
- srcs['all'] += [ |
- '$OPEN_DIR/image/backing_image.cc', |
- '$OPEN_DIR/image/image.cc', |
- '$OPEN_DIR/image/image_loader.cc', |
- ] |
- |
-#----------------------------------------------------------------------------- |
-# factory/npapi |
-# TODO: ff |
- |
-srcs['NPAPI'] += [ |
- '$OPEN_DIR/factory/factory_impl.cc', |
- '$OPEN_DIR/factory/factory_np.cc', |
- '$OPEN_DIR/factory/factory_utils.cc', |
-] |
- |
-#----------------------------------------------------------------------------- |
-# factory/ie |
- |
-m4srcs['IE'] += [ |
- '$OPEN_DIR/factory/factory_ie.rgs.m4', |
-] |
- |
-srcs['IE'] += [ |
- '$OPEN_DIR/factory/factory_impl.cc', |
- '$OPEN_DIR/factory/factory_ie.cc', |
- '$OPEN_DIR/factory/factory_utils.cc', |
-] |
- |
-#----------------------------------------------------------------------------- |
-# geolocation |
- |
-srcs['all'] += [ |
- '$OPEN_DIR/geolocation/empty_device_data_provider.cc', |
- '$OPEN_DIR/geolocation/geolocation.cc', |
- '$OPEN_DIR/geolocation/geolocation_db.cc', |
- '$OPEN_DIR/geolocation/geolocation_db_test.cc', |
- '$OPEN_DIR/geolocation/geolocation_test.cc', |
- '$OPEN_DIR/geolocation/gps_location_provider_wince.cc', |
- '$OPEN_DIR/geolocation/location_provider.cc', |
- '$OPEN_DIR/geolocation/location_provider_pool.cc', |
- '$OPEN_DIR/geolocation/network_location_provider.cc', |
- '$OPEN_DIR/geolocation/network_location_request.cc', |
- '$OPEN_DIR/geolocation/radio_data_provider_wince.cc', |
- '$OPEN_DIR/geolocation/timed_callback.cc', |
- '$OPEN_DIR/geolocation/wifi_data_provider_android.cc', |
- '$OPEN_DIR/geolocation/wifi_data_provider_common.cc', |
- '$OPEN_DIR/geolocation/wifi_data_provider_linux.cc', |
- '$OPEN_DIR/geolocation/wifi_data_provider_osx.cc', |
- '$OPEN_DIR/geolocation/wifi_data_provider_win32.cc', |
- '$OPEN_DIR/geolocation/wifi_data_provider_wince.cc', |
- '$OPEN_DIR/geolocation/wifi_data_provider_windows_common.cc', |
-] |
- |
-#----------------------------------------------------------------------------- |
-# media |
- |
-# The Audio API has not been finalized for official builds. |
-if not env['OFFICIAL_BUILD']: |
- srcs['all'] += [ |
- '$OPEN_DIR/media/audio.cc', |
- '$OPEN_DIR/media/audio_recorder.cc', |
- '$OPEN_DIR/media/audio_recorder_test.cc', |
- '$OPEN_DIR/media/base_audio_recorder.cc', |
- '$OPEN_DIR/media/media.cc', |
- '$OPEN_DIR/media/media_data.cc', |
- '$OPEN_DIR/media/mock_audio_recorder.cc', |
- '$OPEN_DIR/media/pa_audio_recorder.cc', |
- '$OPEN_DIR/media/time_ranges.cc', |
- ] |
- |
-#----------------------------------------------------------------------------- |
-# resources |
- |
-dll_resources = [ |
- env_res.RES('$GENFILES_DIR/ui_resources.rc'), |
-] |
- |
-if env['BROWSER'] == 'NPAPI': |
- dll_resources += [env_res.RES('$OPEN_DIR/base/npapi/module.rc'),] |
-elif env['BROWSER'] == 'IE': |
- dll_resources += [env_res.RES('$OPEN_DIR/base/ie/module.rc'),] |
- |
-stabsrcs['all'] += [ |
- '$OPEN_DIR/ui/common/permissions_dialog.js.stab', |
- '$OPEN_DIR/ui/common/settings_dialog.js.stab', |
- '$OPEN_DIR/ui/common/shortcuts_dialog.js.stab', |
-] |
- |
-#----------------------------------------------------------------------------- |
-# libs |
- |
-libs = [ |
- '$THIRD_PARTY_DIR/v8/bin-dbg/libv8core.lib', |
- '$THIRD_PARTY_DIR/v8/bin-dbg/no_snapshotv8.lib', |
- '$THIRD_PARTY_DIR/v8/bin-dbg/libjscre.lib', |
- '$THIRD_PARTY_DIR/skia/skia-dbg-win32-i386.lib', |
-] |
- |
-if env['BROWSER'] == 'NPAPI': |
- libs += ['$OPEN_DIR/base/chrome/module.def',] |
-elif env['BROWSER'] == 'IE': |
- libs += ['$OPEN_DIR/tools/mscom.def',] |
- |
sconscripts = [ |
'SConscript.libgd', |
'SConscript.libjpeg', |
@@ -1107,76 +132,13 @@ |
'SConscript.zlib', |
] |
-# TODO: all the other ports, including third-party libs |
-# - IE, FF[23], SAFARI, android, symbian |
-# - breakpad[_osx] |
-# - glint |
-# - growl |
-# - spidermonkey |
-# - libspeex |
-# - libtremor |
-# - vista broker |
-# TODO: other targets |
-# - installer |
-# - notifier |
-# - ipc_tests |
+for each in sconscripts: |
+ env.SConscript(each, |
+ exports=['env'], |
+ variant_dir=env.subst('$MODE/common').lower(), |
+ duplicate=0) |
- |
-# Now build the dependency tree. |
- |
-# Add the target browser's inputs to the list files to build. |
-srcs['all'] += srcs[env['BROWSER']] |
-m4srcs['all'] += m4srcs[env['BROWSER']] |
-html_m4srcs['all'] += html_m4srcs[env['BROWSER']] |
-stabsrcs['all'] += stabsrcs[env['BROWSER']] |
-idlsrcs['all'] += idlsrcs[env['BROWSER']] |
-binsrcs['all'] += binsrcs[env['BROWSER']] |
- |
-# TODO: Is there a better way than this to do a make-style rule like |
-# genfiles/%.html: %.html_m4 |
-m4s = [] |
-m4s += [env_common.M4(src) for src in m4srcs['common']] |
-m4s += [env_browser.M4(src) for src in m4srcs['all']] |
-installed_m4s = env_browser.Install('$GENFILES_DIR', m4s) |
- |
-html_m4s = [env_browser.M4(os.path.splitext(src)[0] + '.html', src) |
- for src in html_m4srcs['all']] |
-installed_html_m4s = env_browser.Install('$GENFILES_DIR', html_m4s) |
- |
-# genfiles/%.js: %.js.stab |
-stabs = [env_browser.Stab(src) for src in stabsrcs['all']] |
-installed_stabs = env_browser.Install('$GENFILES_DIR', stabs) |
- |
-# TODO: What's an elegant way to say "FOO.html_m4 depends on FOO.js" ? |
-def IsSameBasename(a, b): |
- return (os.path.basename(os.path.splitext(a)[0]) == |
- os.path.basename(os.path.splitext(b)[0])) |
- |
-for html_m4 in html_m4s: |
- for stab in installed_stabs: |
- if IsSameBasename(str(stab), str(html_m4[0])): |
- env_browser.Depends(html_m4, stab) |
- |
-# genfiles/%.from_bin.cc: % |
-bins = [env_common.Bin2cpp(src + '.from_bin.cc', src) |
- for src in binsrcs['common']] |
-installed_bins = env_common.Install('$GENFILES_DIR', bins) |
-srcs['all'] += installed_bins |
- |
-# genfiles/%.h: %.idl |
-# Note: the emitter fixes the targets to be put in genfiles. |
-if idlsrcs['all']: |
- idls = [env_browser.TypeLibrary(src) |
- for src in idlsrcs['all']] |
- installed_idls = idls |
- srcs['all'] += [x for x in installed_idls[0] if str(x).endswith('_i.c')] |
- |
-# TODO: figure out why the .rc scanner doesn't notice these dependencies. |
-env_browser.Depends(dll_resources[0], installed_html_m4s) |
-env_browser.Depends(dll_resources[1], installed_m4s) |
- |
-env_browser.SConscript(sconscripts, exports=['env']) |
- |
-lib = env_browser.ChromeSharedLibrary('gears', |
- srcs['all'] + libs + dll_resources) |
-env_browser.Alias('gears', lib) |
+env.SConscript('SConscript.dll', |
+ exports=['env'], |
+ variant_dir=env.subst('$MODE/$BROWSER').lower(), |
+ duplicate=0) |