blob: e4bb0dd03a768e267c549d29eb7737db7877dd87 [file] [log] [blame]
# 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.
{
'variables': {
'antlrdir': 'third_party/antlr3',
'breakpaddir': 'breakpad/src',
'fcolladadir': 'third_party/fcollada/files',
'glewdir': 'third_party/glew/files',
'gtestdir': 'testing/gtest/include',
'internaldir':'o3d-internal',
'jpegdir': 'third_party/libjpeg',
'nacldir': 'third_party/native_client/googleclient',
'nixysadir': 'o3d/third_party/nixysa',
'npapidir': 'o3d/third_party/npapi',
'pdiffdir': 'third_party/pdiff/files',
'pngdir': 'third_party/libpng',
'screenshotsdir': 'o3d_assets/tests/screenshots',
'seleniumdir': 'third_party/selenium_rc/files',
'skiadir': 'third_party/skia/include',
'txcdir': 'third_party/libtxc_dxtn/files',
'zlibdir': 'third_party/zlib',
# Hack to ensure that these variables (specifically "renderer") are
# available later in the file. Long term solution is late
# evaluation of variables.
'variables': {
# If the DEPS file exists two levels up, then we're in a Chrome tree.
'o3d_in_chrome%': '<!(python <(DEPTH)/o3d/build/file_exists.py <(DEPTH)/DEPS)',
'gles2_backend%': 'desktop_gl',
'conditions' : [
# These have to come first because GYP doesn't like it when
# they're part of the same conditional as a conditions clause that
# uses them.
['OS == "win"',
{
'cgdir': 'third_party/cg/files/win',
'renderer%': 'd3d9',
'swiftshaderdir': 'o3d-internal/third_party/swiftshader/files',
},
],
['OS == "mac"',
{
'cgdir': 'third_party/cg/files/mac',
'renderer%': 'gl',
'swiftshaderdir': '',
},
],
['OS == "linux"',
{
'cgdir': 'third_party/cg/files/linux',
'renderer%': 'gl',
'swiftshaderdir': '',
},
],
],
},
'o3d_in_chrome%': '<(o3d_in_chrome)',
'renderer%': '<(renderer)',
'cgdir%': '<(cgdir)',
'gles2_backend%': '<(gles2_backend)',
'swiftshaderdir%': '<(swiftshaderdir)',
# We default to building everything only if the assets exist.
# (and the teapot is the least likely asset to change).
# This is so that chrome developers get a much reduced dependency set.
'o3d_developer%': '<!(python <(DEPTH)/o3d/build/file_exists.py '
'<(DEPTH)/o3d/o3d_assets/samples/convert_assets/teapot.zip)',
'selenium_screenshots%': 0,
# Add a way to disable FBO support for GL implementations that don't have
# it.
'disable_fbo%': 0,
# Whether to enable the English-only, Win/Mac-only fullscreen message.
'plugin_enable_fullscreen_msg%': '1',
},
'target_defaults': {
'defines': [
'GYP_BUILD', # Needed to make a change in base/types.h conditional.
],
# This needs to be in a target_conditions block in order to successfully
# override the xcode_settings in ../../build/common.gypi.
# Something to do with evaluation order.
'target_conditions': [
['OS=="mac"', {
'xcode_settings': {
'MACOSX_DEPLOYMENT_TARGET': '10.5',
# TODO(maf): figure out proper fix for the following.
# There is only one place in plugin_mac.mm which attempts
# to use ObjC exception handling.
'GCC_ENABLE_CPP_EXCEPTIONS': 'YES',
},
}],
],
'conditions' : [
['renderer == "d3d9"',
{
'defines': [
'RENDERER_D3D9',
],
},
],
['renderer == "gl"',
{
'defines': [
'RENDERER_GL',
],
},
],
['renderer == "cairo"',
{
'defines': [
'RENDERER_CAIRO',
],
},
],
['renderer == "gles2"',
{
'defines': [
'RENDERER_GLES2',
],
'conditions': [
['gles2_backend == "desktop_gl"',
{
'defines': [
'GLES2_BACKEND_DESKTOP_GL',
],
},
],
['gles2_backend == "native_gles2"',
{
'defines': [
'GLES2_BACKEND_NATIVE_GLES2',
],
},
],
['gles2_backend == "gles2_command_buffers"',
{
'defines': [
'GLES2_BACKEND_GLES2_COMMAND_BUFFERS',
],
},
],
],
},
],
['<(plugin_enable_fullscreen_msg) != 0',
{
'defines': [
'O3D_PLUGIN_ENABLE_FULLSCREEN_MSG=1',
],
},
],
],
},
'conditions' : [
['OS == "win"',
{
'target_defaults': {
'defines': [
'_CRT_SECURE_NO_WARNINGS',
'OS_WIN',
'UNICODE',
'NACL_WINDOWS',
'_X86_',
],
# Disable warning: "'this' : used in base member initialization list."
'msvs_disabled_warnings': [4355],
'msvs_settings': {
'VCCLCompilerTool': {
'WarnAsError': 'false',
# Turn off errors for signed/unsigned mismatch from Chromium build/common.gypi.
'AdditionalOptions!': ['/we4389'],
},
},
},
},
],
['OS == "mac"',
{
'target_defaults': {
'defines': [
'OS_MACOSX',
'UNICODE',
'GTEST_NOT_MAC_FRAMEWORK_MODE',
'NACL_OSX=1',
'MAC_OS_X_VERSION_MIN_REQUIRED=MAC_OS_X_VERSION_10_5',
'SK_BUILD_FOR_MAC',
],
'configurations': {
'Debug': {
'xcode_settings': {
'GCC_DEBUGGING_SYMBOLS': 'full',
},
},
},
'xcode_settings': {
'GCC_SYMBOLS_PRIVATE_EXTERN': 'NO',
'OTHER_CFLAGS': [
'-fno-eliminate-unused-debug-symbols',
'-mmacosx-version-min=10.5'],
'WARNING_CFLAGS': ['-Wno-deprecated-declarations'],
'WARNING_CFLAGS!': ['-Wall', '-Wextra'],
'WARNING_CXXFLAGS': ['-Wstrict-aliasing',
'-Wno-deprecated',],
},
},
},
],
['OS == "linux"',
{
'target_defaults': {
'defines': [
'LINUX',
'MOZ_X11',
'NACL_LINUX=1',
'OS_LINUX',
'SK_BUILD_FOR_UNIX',
'UNICODE',
'XP_UNIX',
],
'cflags': [
'-fvisibility=hidden',
'-Wstrict-aliasing',
# We always want debugging information, even for release builds. It
# is stripped by the packager into the -dbgsym package, so it
# doesn't affect what we ship.
'-g',
],
},
},
],
],
}