# Copyright (c) 2009 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. # PLEASE NOTE: This file contains the targets for generating the # plugin two different ways -- once as a shared library, and once as a # static library. The static library is only built if we are inside # of a Chrome tree, and it gets built with different defined symbols, # and without the packaging code on the Mac. The shared library gets # built in an o3d tree, or in a chrome tree when built by an o3d # developer (someone who has added the .gclient stanza to include # DEPS_chrome). This results in having two targets in this file which # are largely identical, but still significantly different. # # Please be sure and synchronize these two targets so that we can # continue to build both the standalone plugin and the Chrome-embedded # plugin. { 'variables': { 'chromium_code': 1, 'plugin_sources': [ 'cross/async_loading.cc', 'cross/async_loading.h', 'cross/blacklist.cc', 'cross/config.h', 'cross/config_common.cc', 'cross/download_stream.h', 'cross/main.cc', 'cross/main.h', 'cross/main_thread_task_poster.cc', 'cross/main_thread_task_poster.h', 'cross/marshaling_utils.h', 'cross/np_v8_bridge.cc', 'cross/np_v8_bridge.h', 'cross/out_of_memory.cc', 'cross/out_of_memory.h', 'cross/plugin_logging.h', 'cross/plugin_main.h', 'cross/stream_manager.cc', 'cross/stream_manager.h', 'cross/texture_static_glue.cc', 'cross/whitelist.cc', ], 'plugin_depends': [ '../../<(jpegdir)/libjpeg.gyp:libjpeg', '../../<(pngdir)/libpng.gyp:libpng', '../../<(zlibdir)/zlib.gyp:zlib', '../../base/base.gyp:base', '../../skia/skia.gyp:skia', '../../v8/tools/gyp/v8.gyp:v8', '../core/core.gyp:o3dCore', '../core/core.gyp:o3dCorePlatform', '../import/archive.gyp:o3dArchive', '../utils/utils.gyp:o3dUtils', '../../native_client/src/shared/imc/imc.gyp:google_nacl_imc', 'idl/idl.gyp:o3dPluginIdl', ], # A comma-separated list of strings, each double-quoted. 'plugin_domain_whitelist%': '', }, 'includes': [ '../build/branding.gypi', '../build/common.gypi', '../build/version.gypi', ], 'target_defaults': { 'include_dirs': [ '..', '../..', '../../<(gtestdir)', ], 'defines': [ 'O3D_PLUGIN_DESCRIPTION=" none 'plugin_env_vars_file%' : '/opt/google/o3d/envvars', # empty => none 'conditions' : [ ['renderer == "gl"', { 'as_needed_ldflags': [ # The Cg libs use three other libraries without linking to them, # which breaks --as-needed, so we have to specify them here before # the --as-needed flag. '-lGL', # Used by libCgGL '-lpthread', # Used by libCg '-lm', # Used by libCg # GYP dumps all static and shared libraries into one archive group # on the command line in arbitrary order, which breaks # --as-needed, so we have to specify the out-of-order ones before # the --as-needed flag. '-lCgGL', '-ldl', # Used by breakpad '-lrt', ] }, { 'as_needed_ldflags': [] } ], ] }, 'target_name': '<(plugin_npapi_filename)', 'type': 'loadable_module', 'dependencies': [ '<@(plugin_depends)', 'idl/idl.gyp:o3dNpnApi', ], 'sources': [ '<@(plugin_sources)', ], 'conditions' : [ ['OS != "linux"', { 'dependencies': [ '../statsreport/statsreport.gyp:o3dStatsReport', 'add_version', 'o3dPluginLogging', ], }, ], ['renderer == "gl"', { 'dependencies': [ '../build/libs.gyp:gl_libs', '../build/libs.gyp:cg_libs', ], }, ], ['renderer == "gles2"', { 'dependencies': [ '../build/libs.gyp:gles2_libs', ], }, ], ['OS == "mac"', { 'mac_bundle': 1, 'product_extension': 'plugin', 'conditions': [ ['"<(plugin_npapi_filename)" == "npo3dautoplugin"', { # The unbranded Mac plugin's name is a special case. 'product_name': 'O3D', }, { 'product_name': '<(plugin_npapi_filename)', }, ], ], 'dependencies': [ '../../breakpad/breakpad.gyp:breakpad', ], 'xcode_settings': { 'INFOPLIST_FILE': '<(SHARED_INTERMEDIATE_DIR)/plugin/Info.plist', }, 'mac_bundle_resources': [ 'mac/Resources/English.lproj', ], 'sources': [ 'mac/config_mac.mm', 'mac/fullscreen_window_mac.h', 'mac/fullscreen_window_mac.mm', 'mac/o3d_layer.mm', 'mac/o3d_plugin.r', 'mac/overlay_window_mac.h', 'mac/overlay_window_mac.mm', 'mac/plugin_logging-mac.mm', 'mac/plugin_mac.h', 'mac/plugin_mac.mm', 'mac/graphics_utils_mac.mm', 'mac/main_mac.mm', ], 'mac_framework_dirs': [ '../../<(cgdir)', ], 'include_dirs': [ '../../breakpad/src/client/mac/Framework', ], 'defines': [ 'XP_MACOSX=1', ], 'link_settings': { 'libraries': [ '$(SDKROOT)/System/Library/Frameworks/QuartzCore.framework', '$(SDKROOT)/System/Library/Frameworks/Cocoa.framework', '$(SDKROOT)/System/Library/Frameworks/Carbon.framework', '$(SDKROOT)/System/Library/Frameworks/AGL.framework', '$(SDKROOT)/System/Library/Frameworks/Foundation.framework', '$(SDKROOT)/System/Library/Frameworks/IOKit.framework', '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework', '$(SDKROOT)/System/Library/Frameworks/QuickTime.framework', 'libbreakpad.a', 'libbreakpad_utilities.a', '../../<(glewdir)/lib/libMacStaticGLEW.a', ], }, 'postbuilds': [ { 'variables': { # Define install_name in a variable ending in _path # so that gyp understands it's a path and performs proper # relativization during dict merging. 'install_name_path': 'mac/plugin_fix_install_names.sh', }, 'postbuild_name': 'Fix Framework Paths', 'action': ['<(install_name_path)'], }, { 'variables': { # Define copy_frameworks in a variable ending in _path # so that gyp understands it's a path and performs proper # relativization during dict merging. 'copy_frameworks_path': 'mac/plugin_copy_frameworks.sh', }, 'postbuild_name': 'Copy Frameworks', 'conditions': [ ['"<(plugin_npapi_filename)" == "npo3dautoplugin"', { # The unbranded Mac plugin's name is a special case. 'action': ['<(copy_frameworks_path)', 'O3D'], }, { 'action': ['<(copy_frameworks_path)', '<(plugin_npapi_filename)'], }, ], ], }, { 'postbuild_name': 'Process Resource File', 'action': ['python', 'version_info.py', '--set_name=<(plugin_name)', '--set_version=<(plugin_version)', '--set_npapi_mimetype=<(plugin_npapi_mimetype)', 'mac/o3d_plugin.r', '${BUILT_PRODUCTS_DIR}/O3D.r', ], }, { 'postbuild_name': 'Compile Resource File', 'conditions': [ ['"<(plugin_npapi_filename)" == "npo3dautoplugin"', { # The unbranded Mac plugin's name is a special case. 'action': ['/usr/bin/Rez', '-useDF', '-o', '${BUILT_PRODUCTS_DIR}/O3D.plugin/Contents/Resources/O3D.rsrc', '${BUILT_PRODUCTS_DIR}/O3D.r', ], }, { 'action': ['/usr/bin/Rez', '-useDF', '-o', '${BUILT_PRODUCTS_DIR}/<(plugin_npapi_filename).plugin/Contents/Resources/<(plugin_npapi_filename).rsrc', '${BUILT_PRODUCTS_DIR}/O3D.r', ], }, ], ], }, ], }, ], ['OS == "linux"', { 'dependencies': [ '../../breakpad/breakpad.gyp:breakpad_client', '../breakpad/breakpad.gyp:o3dBreakpad', ], 'sources': [ 'linux/config.cc', 'linux/envvars.cc', 'linux/main_linux.cc', ], 'ldflags': [ '-Wl,-znodelete', '-Wl,--gc-sections', '