diff options
Diffstat (limited to 'gears/SConscript.dll')
-rw-r--r-- | gears/SConscript.dll | 185 |
1 files changed, 165 insertions, 20 deletions
diff --git a/gears/SConscript.dll b/gears/SConscript.dll index cdefdca..8136e54 100644 --- a/gears/SConscript.dll +++ b/gears/SConscript.dll @@ -9,6 +9,8 @@ Import('env') env = env.Clone() +env['USING_NPAPI'] = env['BROWSER'] in ['SF', 'NPAPI'] + # TODO: move all these builders out to site_scons or somesuch. # Building .stab files, using M4FLAGS. @@ -70,6 +72,28 @@ elif env['BROWSER'] in ['FF2', 'FF3']: env['GECKO_BASE'] = '$THIRD_PARTY_DIR/gecko_1.9' env.PrependENVPath('PATH', env.Dir('#/$GECKO_BIN').abspath) +elif env['BROWSER'] == 'SF': + env.Replace( +# Enable breakpad for Safari on MacOSX. + USING_BREAKPAD_OSX = '1') + + env.Append( + CPPDEFINES = [ +# Remove these - During development, it was convenient to have these defined in +# the Safari port. Before release we want to clean this up, and replace these +# with a single BROWSER_SF symbol. +# We also want to consolidate the include paths, so we don't have to add these +# paths here. + 'BROWSER_NPAPI', + 'BROWSER_WEBKIT', + 'BROWSER_SAFARI' + ], + CCFLAGS = [ +# These flags are needed so that instead of exporting all symbols defined in +# the code, we just export those specifically marked, this reduces the output size. + '-fvisibility=hidden' + ], + CPPPATH = ['$THIRD_PARTY/spidermonkey/nspr/pr/include']) def MyIdlEmitter(target, source, env): """Produce the list of outputs generated by our IDL compiler. Outputs @@ -106,15 +130,18 @@ if env['BROWSER'] in ['FF2', 'FF3']: env.Prepend( CPPDEFINES = [ 'BROWSER_${BROWSER}=1', -# SpiderMonkey (the Firefox JS engine)'s JS_GET_CLASS macro in jsapi.h needs -# this defined to work with the gecko SDK that we've built. -# The definition of JS_THREADSAFE must be kept in sync with MOZJS_CPPFLAGS. -# TODO(mpcomplete): we only need this for FF and SF, I think. - 'JS_THREADSAFE', ], ) if env['BROWSER'] in ['FF2', 'FF3']: + + if env['OS'] == 'osx': + env.Prepend( + CPPDEFINES = [ + 'LINUX' + ] + ) + env.Prepend( CPPDEFINES = [ # TODO(cprince): Update source files so we don't need this compatibility define? @@ -157,6 +184,30 @@ env.Append( ], ) +if env['OS'] == 'osx': + env.Append( + LINKFLAGS = [ + '-mmacosx-version-min=10.4', + '-bundle' + ], + LIBS = [ + 'mozjs-gears', + 'curl', + 'crypto', + 'leopard_support', + 'breakpad_osx-gears' + ], + LIBPATH = [ + '$OPEN_DIR/tools/osx' + ], + FRAMEWORKS = [ + 'Carbon', + 'CoreServices', + 'Cocoa', + 'WebKit', + ] + ) + # Add in libraries for in-development APIs for non-official builds. if not env['OFFICIAL_BUILD']: if env['OS'] != 'wince': @@ -296,6 +347,24 @@ if env['OS'] == 'win32': # TODO: move to breakpad env.Append(CPPFLAGS = ['/wd4018']) +# Extra per-browser files +browser_specific_objects = [] + +if env['BROWSER'] == 'SF': + mozjs_sources = [ + '$MOZJS_DIR/gears_npapi_bindings/mozjs_npruntime.cc', + '$MOZJS_DIR/gears_npapi_bindings/mozjs_npruntime_utils.cc', + '$OPEN_DIR/base/common/js_standalone_engine_mozjs.cc', + '$MOZJS_DIR/gears_npapi_bindings/mozjs_npapi_storage.cc' + ] + mozjs_objects = env.SharedObject( + mozjs_sources, + CPPPATH = env['CPPPATH'] + env['MOZJS_INCLUDE_PATHS']) + browser_specific_objects += mozjs_objects + +# TODO(playmobil): Create builder to generate required header files. +# browser_specific_objects += \ +# env.SharedObject('$OPEN_DIR/base/safari/resource_archive.cc') # Input file lists def NewInputs(): @@ -341,6 +410,16 @@ if env['OS'] == 'win32': ] #----------------------------------------------------------------------------- +# third_party/breakpad_osx +srcs['SF'] += [ + '$OPEN_DIR/base/common/exception_handler_osx.mm', + '$OPEN_DIR/base/common/exception_handler_osx/google_breakpad.mm', + '$OPEN_DIR/base/common/exception_handler_osx/mach_ipc.mm', + '$OPEN_DIR/base/common/exception_handler_osx/on_demand_server.mm', + '$OPEN_DIR/base/common/exception_handler_osx/simple_string_dictionary.mm' +] + +#----------------------------------------------------------------------------- # third_party/v8/bindings srcs['NPAPI'] += [ @@ -446,6 +525,13 @@ srcs['all'] += [ '$OPEN_DIR/base/common/vista_utils.cc', ] +if env['OS'] == 'osx': + srcs['all'] += [ + '$OPEN_DIR/base/common/common_osx.mm', + '$OPEN_DIR/base/safari/nsstring_utils.mm', + '$OPEN_DIR/base/common/user_config_osx.cc' + ] + #----------------------------------------------------------------------------- # base/firefox @@ -554,6 +640,33 @@ if env['OS'] == 'win32': ] #----------------------------------------------------------------------------- +# base/safari +srcs['SF'] += [ + '$OPEN_DIR/base/common/common_sf.mm', + '$OPEN_DIR/base/common/detect_version_collision_osx.cc', + '$OPEN_DIR/base/common/file_posix.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_test.cc', + '$OPEN_DIR/base/common/ipc_message_queue_test_osx.mm', + '$OPEN_DIR/base/common/js_runner_np.cc', + '$OPEN_DIR/base/common/message_queue_sf.cc', + '$OPEN_DIR/base/common/paths_sf.mm', + '$OPEN_DIR/base/common/paths_sf_more.mm', + '$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', + '$OPEN_DIR/base/safari/browser_load_hook.mm', + '$OPEN_DIR/base/safari/browser_utils_sf.cc', + '$OPEN_DIR/base/safari/curl_downloader.mm', + '$OPEN_DIR/base/safari/messagebox.mm', + '$OPEN_DIR/base/safari/safari_workarounds.m', +] + +#----------------------------------------------------------------------------- # console srcs['all'] += [ @@ -675,9 +788,12 @@ srcs['FF3'] += [ '$OPEN_DIR/localserver/common/http_cookies.cc', ] +srcs['SF'] += [ + '$OPEN_DIR/localserver/common/http_cookies.cc', +] + #----------------------------------------------------------------------------- # localserver/chrome + npapi -# TODO: safari srcs['NPAPI'] += [ '$OPEN_DIR/localserver/chrome/gears_protocol_handler.cc', @@ -690,6 +806,22 @@ srcs['NPAPI'] += [ ] #----------------------------------------------------------------------------- +# localserver/safari + +srcs['SF'] += [ + '$OPEN_DIR/localserver/safari/async_task_sf.mm', + '$OPEN_DIR/localserver/safari/http_cookies_sf.mm', + '$OPEN_DIR/localserver/safari/http_handler.mm', + '$OPEN_DIR/localserver/safari/http_request_delegate.mm', + '$OPEN_DIR/localserver/safari/http_request_sf.mm', + '$OPEN_DIR/localserver/safari/localserver_db_proxy.mm', + '$OPEN_DIR/localserver/common/progress_event.cc', + '$OPEN_DIR/localserver/safari/progress_input_stream.mm', + '$OPEN_DIR/localserver/common/safe_http_request.cc', + '$OPEN_DIR/localserver/safari/ui_thread.cc' +] + +#----------------------------------------------------------------------------- # localserver/firefox srcs['FF3'] += [ @@ -767,6 +899,10 @@ srcs['FF3'] += [ '$OPEN_DIR/ui/common/settings_dialog.cc', ] +srcs['SF'] += [ + '$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', @@ -775,7 +911,6 @@ stabsrcs['all'] = [ #----------------------------------------------------------------------------- # ui/npapi -# TODO: safari m4srcs['all'] += [ '$OPEN_DIR/ui/ie/ui_resources.rc.m4', @@ -790,6 +925,16 @@ srcs['NPAPI'] += [ ] #----------------------------------------------------------------------------- +# ui/safari + +srcs['SF'] += [ + '$OPEN_DIR/ui/safari/html_dialog_sf.mm', + '$OPEN_DIR/ui/safari/html_modeless_dialog_sf.mm', + '$OPEN_DIR/ui/safari/native_dialogs_osx.mm', + '$OPEN_DIR/ui/safari/settings_menu.mm', +] + +#----------------------------------------------------------------------------- # ui/factory m4srcs['FF3'] += [ @@ -850,13 +995,12 @@ elif env['OS'] == 'wince': #----------------------------------------------------------------------------- # workerpool/npapi -# TODO: safari - -srcs['NPAPI'] += [ - '$OPEN_DIR/workerpool/common/workerpool_utils.cc', - '$OPEN_DIR/workerpool/npapi/pool_threads_manager.cc', - '$OPEN_DIR/workerpool/workerpool.cc', -] +if env['USING_NPAPI']: + srcs['all'] += [ + '$OPEN_DIR/workerpool/common/workerpool_utils.cc', + '$OPEN_DIR/workerpool/npapi/pool_threads_manager.cc', + '$OPEN_DIR/workerpool/workerpool.cc', + ] #----------------------------------------------------------------------------- # workerpool/firefox @@ -959,11 +1103,12 @@ if not env['OFFICIAL_BUILD'] and env['OS'] != 'wince': #----------------------------------------------------------------------------- # factory/npapi -srcs['NPAPI'] += [ - '$OPEN_DIR/factory/factory_impl.cc', - '$OPEN_DIR/factory/factory_np.cc', - '$OPEN_DIR/factory/factory_utils.cc', -] +if env['USING_NPAPI']: + srcs['all'] += [ + '$OPEN_DIR/factory/factory_impl.cc', + '$OPEN_DIR/factory/factory_np.cc', + '$OPEN_DIR/factory/factory_utils.cc', + ] #----------------------------------------------------------------------------- # factory/firefox @@ -1180,7 +1325,7 @@ if env['OS'] in ['win32', 'wince']: env.Depends(module_res, m4s) module = env.ChromeSharedLibrary('gears', - srcs['all'] + libs + dll_resources) + srcs['all'] + libs + dll_resources + browser_specific_objects) env.Alias('gears', module) if env['OS'] == 'wince': |