blob: 4efac4e02ba87649fade7eae2ad1f51a03bdd847 [file] [log] [blame]
# Copyright (c) 2012 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.
{
'variables': {
'chromium_code': 1, # Use higher warning level.
},
'target_defaults': {
'conditions': [
# Linux shared libraries should always be built -fPIC.
#
# TODO(ajwong): For internal pepper plugins, which are statically linked
# into chrome, do we want to build w/o -fPIC? If so, how can we express
# that in the build system?
['os_posix==1 and OS!="android" and OS!="mac"', {
'cflags': ['-fPIC', '-fvisibility=hidden'],
# This is needed to make the Linux shlib build happy. Without this,
# -fvisibility=hidden gets stripped by the exclusion in common.gypi
# that is triggered when a shared library build is specified.
'cflags/': [['include', '^-fvisibility=hidden$']],
}],
],
},
'includes': [
'ppapi_sources.gypi',
'ppapi_host.gypi',
'ppapi_ipc.gypi',
'ppapi_proxy.gypi',
'ppapi_shared.gypi',
'ppapi_tests.gypi',
],
'targets': [
{
# GN version: //ppapi/shared_impl and //ppapi/thunk
'target_name': 'ppapi_shared',
'type': '<(component)',
'variables': {
# Set the ppapi_shared_target variable, so that we will pull in the
# sources from ppapi_shared.gypi (and only from there). We follow the
# same pattern for the other targets defined within this file.
'ppapi_shared_target': 1,
},
'dependencies': [
'../base/base.gyp:base',
'../base/base.gyp:base_i18n',
'../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
'../gpu/command_buffer/command_buffer.gyp:gles2_utils',
'../gpu/gpu.gyp:command_buffer_client',
'../gpu/gpu.gyp:gles2_implementation',
'../ipc/ipc.gyp:ipc',
'../media/media.gyp:shared_memory_support',
'../skia/skia.gyp:skia',
'../third_party/icu/icu.gyp:icuuc',
'../ui/events/events.gyp:events_base',
'../ui/surface/surface.gyp:surface',
'../url/url.gyp:url_lib',
'ppapi.gyp:ppapi_c',
],
'export_dependent_settings': [
'../base/base.gyp:base',
],
'conditions': [
['OS=="mac"', {
'link_settings': {
'libraries': [
'$(SDKROOT)/System/Library/Frameworks/QuartzCore.framework',
],
},
}],
],
},
],
'conditions': [
['component=="static_library"', {
# In a static build, build ppapi_ipc separately.
'targets': [
{
# GN version: //ppapi/proxy:ipc
'target_name': 'ppapi_ipc',
'type': 'static_library',
'variables': {
'ppapi_ipc_target': 1,
},
'dependencies': [
'../base/base.gyp:base',
'../gpu/gpu.gyp:gpu_ipc',
'../ipc/ipc.gyp:ipc',
'../skia/skia.gyp:skia',
'../ui/events/ipc/events_ipc.gyp:events_ipc',
'ppapi.gyp:ppapi_c',
'ppapi_shared',
],
'all_dependent_settings': {
'include_dirs': [
'..',
],
},
},
{
# GN version: //ppapi/proxy
'target_name': 'ppapi_proxy',
'type': 'static_library',
'variables': {
'ppapi_proxy_target': 1,
},
'dependencies': [
'../base/base.gyp:base',
'../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
'../gin/gin.gyp:gin',
'../gpu/gpu.gyp:gles2_implementation',
'../gpu/gpu.gyp:gpu_ipc',
'../media/media.gyp:shared_memory_support',
'../ipc/ipc.gyp:ipc',
'../skia/skia.gyp:skia',
'../third_party/icu/icu.gyp:icuuc',
'../third_party/icu/icu.gyp:icui18n',
'../ui/events/events.gyp:events_base',
'../ui/surface/surface.gyp:surface',
'ppapi.gyp:ppapi_c',
'ppapi_shared',
'ppapi_ipc',
],
'all_dependent_settings': {
'include_dirs': [
'..',
],
},
'conditions': [
['chrome_multiple_dll==1', {
'dependencies': [
'../third_party/WebKit/public/blink.gyp:blink_minimal',
],
}, {
'dependencies': [
'../third_party/WebKit/public/blink.gyp:blink',
],
}],
],
},
],
},
{ # component != static_library
# In the component build, we'll just build ppapi_ipc in to ppapi_proxy.
'targets': [
{
# GN version: //ppapi:ppapi_proxy
'target_name': 'ppapi_proxy',
'type': 'shared_library',
'variables': {
# Setting both variables means we pull in the sources from both
# ppapi_ipc.gypi and ppapi_proxy.gypi.
'ppapi_ipc_target': 1,
'ppapi_proxy_target': 1,
},
'dependencies': [
'../base/base.gyp:base',
'../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
'../gin/gin.gyp:gin',
'../gpu/gpu.gyp:gles2_implementation',
'../gpu/gpu.gyp:gpu_ipc',
'../media/media.gyp:shared_memory_support',
'../ipc/ipc.gyp:ipc',
'../skia/skia.gyp:skia',
'../third_party/icu/icu.gyp:icuuc',
'../third_party/icu/icu.gyp:icui18n',
'../ui/events/events.gyp:events_base',
'../ui/events/ipc/events_ipc.gyp:events_ipc',
'../ui/surface/surface.gyp:surface',
'ppapi.gyp:ppapi_c',
'ppapi_shared',
],
'all_dependent_settings': {
'include_dirs': [
'..',
],
},
'conditions': [
['chrome_multiple_dll==1', {
'dependencies': [
'../third_party/WebKit/public/blink.gyp:blink_minimal',
],
}, {
'dependencies': [
'../third_party/WebKit/public/blink.gyp:blink',
],
}],
],
},
{
# In component build, this is just a phony target that makes sure
# ppapi_proxy is built, since that's where the ipc sources go in the
# component build.
'target_name': 'ppapi_ipc',
'type': 'none',
'dependencies': [
'ppapi_proxy',
],
},
],
}],
['disable_nacl!=1 and OS=="win" and target_arch=="ia32"', {
# In windows builds, we also want to define some targets to build in
# 64-bit mode for use by nacl64.exe (the NaCl helper process for 64-bit
# Windows).
'targets': [
{
# GN version: //ppapi:ppapi_shared
# (Should be automagical when compiling in the 64-bit toolchain.)
'target_name': 'ppapi_shared_win64',
'type': '<(component)',
'variables': {
'nacl_win64_target': 1,
'ppapi_shared_target': 1,
},
'dependencies': [
'ppapi.gyp:ppapi_c',
'../base/base.gyp:base_win64',
'../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations_win64',
'../gpu/gpu.gyp:command_buffer_common_win64',
'../ipc/ipc.gyp:ipc_win64',
'../ui/events/latency_info_nacl.gyp:latency_info_nacl_win64',
],
'defines': [
'<@(nacl_win64_defines)',
],
'export_dependent_settings': [
'../base/base.gyp:base_win64',
],
'configurations': {
'Common_Base': {
'msvs_target_platform': 'x64',
},
},
},
{
# GN version: //ppapi:ppapi_ipc
# (Should be automagical when compiling in the 64-bit toolchain.)
'target_name': 'ppapi_ipc_win64',
'type': 'static_library',
'variables': {
'nacl_win64_target': 1,
'ppapi_ipc_target': 1,
},
'dependencies': [
'../base/base.gyp:base_win64',
'../ipc/ipc.gyp:ipc_win64',
'../gpu/gpu.gyp:gpu_ipc_win64',
'../ui/events/latency_info_nacl.gyp:latency_info_nacl_win64',
'ppapi.gyp:ppapi_c',
'ppapi_shared_win64',
],
'export_dependent_settings': [
'../gpu/gpu.gyp:gpu_ipc_win64',
],
'defines': [
'<@(nacl_win64_defines)',
],
'all_dependent_settings': {
'include_dirs': [
'..',
],
},
'configurations': {
'Common_Base': {
'msvs_target_platform': 'x64',
},
},
}],
}],
],
}