mirror of https://github.com/lukechilds/node.git
6 changed files with 607 additions and 0 deletions
@ -0,0 +1,66 @@ |
|||
This directory contains the V8 GYP files used to generate actual project files |
|||
for different build systems. |
|||
|
|||
This is currently work in progress but this is expected to replace the SCons |
|||
based build system. |
|||
|
|||
To use this a checkout of GYP is needed inside this directory. From the root of |
|||
the V8 project do the following: |
|||
|
|||
$ svn co http://gyp.googlecode.com/svn/trunk build/gyp |
|||
|
|||
Note for the command lines below that Debug is the default configuration, |
|||
so specifying that on the command lines is not required. |
|||
|
|||
|
|||
To generate Makefiles on Linux: |
|||
------------------------------- |
|||
|
|||
$ build/gyp_v8 |
|||
|
|||
This will build makefiles for ia32, x64 and the ARM simulator with names |
|||
Makefile-ia32, Makefile-x64 and Makefile-armu respectively. |
|||
|
|||
To build and run for ia32 in debug and release version do: |
|||
|
|||
$ make -f Makefile-ia32 |
|||
$ out/Debug/shell |
|||
$ make -f Makefile-ia32 BUILDTYPE=Release |
|||
$ out/Release/shell |
|||
|
|||
Change the makefile to build and run for the other architectures. |
|||
|
|||
|
|||
To generate Xcode project files on Mac OS: |
|||
------------------------------------------ |
|||
|
|||
$ build/gyp_v8 |
|||
|
|||
This will make an Xcode project for the ia32 architecture. To build and run do: |
|||
|
|||
$ xcodebuild -project build/all.xcodeproj |
|||
$ samples/build/Debug/shell |
|||
$ xcodebuild -project build/all.xcodeproj -configuration Release |
|||
$ samples/build/Release/shell |
|||
|
|||
|
|||
To generate Visual Studio solution and project files on Windows: |
|||
---------------------------------------------------------------- |
|||
|
|||
On Windows an additional third party component is required. This is cygwin in |
|||
the same version as is used by the Chromium project. This can be checked out |
|||
from the Chromium repository. From the root of the V8 project do the following: |
|||
|
|||
> svn co http://src.chromium.org/svn/trunk/deps/third_party/cygwin@66844 third_party/cygwin |
|||
|
|||
To run GYP Python is required and it is reccomended to use the same version as |
|||
is used by the Chromium project. This can also be checked out from the Chromium |
|||
repository. From the root of the V8 project do the following: |
|||
|
|||
> svn co http://src.chromium.org/svn/trunk/tools/third_party/python_26@70627 third_party/python_26 |
|||
|
|||
Now generate Visual Studio solution and project files for the ia32 architecture: |
|||
|
|||
> third_party\python_26\python build/gyp_v8 |
|||
|
|||
Now open build\All.sln in Visual Studio. |
@ -0,0 +1,24 @@ |
|||
# Copyright (c) 2010 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. |
|||
|
|||
{ |
|||
'targets': [ |
|||
{ |
|||
'target_name': 'All', |
|||
'type': 'none', |
|||
'dependencies': [ |
|||
'../samples/samples.gyp:*', |
|||
'../src/d8.gyp:d8', |
|||
], |
|||
'conditions': [ |
|||
[ 'component!="shared_library"', { |
|||
'dependencies': [ |
|||
'../test/cctest/cctest.gyp:*', |
|||
], |
|||
}] |
|||
], |
|||
} |
|||
] |
|||
} |
|||
|
@ -0,0 +1,36 @@ |
|||
# Copyright 2011 the V8 project authors. All rights reserved. |
|||
# Redistribution and use in source and binary forms, with or without |
|||
# modification, are permitted provided that the following conditions are |
|||
# met: |
|||
# |
|||
# * Redistributions of source code must retain the above copyright |
|||
# notice, this list of conditions and the following disclaimer. |
|||
# * Redistributions in binary form must reproduce the above |
|||
# copyright notice, this list of conditions and the following |
|||
# disclaimer in the documentation and/or other materials provided |
|||
# with the distribution. |
|||
# * Neither the name of Google Inc. nor the names of its |
|||
# contributors may be used to endorse or promote products derived |
|||
# from this software without specific prior written permission. |
|||
# |
|||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
|||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
|||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
|||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
|||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
|||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
|||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
|||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
|||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
|||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
|||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|||
|
|||
{ |
|||
'variables': { |
|||
'target_arch': 'ia32', |
|||
'v8_target_arch': 'arm', |
|||
'armv7': 1, |
|||
'arm_neon': 0, |
|||
'arm_fpu': 'vfpv3', |
|||
} |
|||
} |
@ -0,0 +1,183 @@ |
|||
# Copyright 2010 the V8 project authors. All rights reserved. |
|||
# Redistribution and use in source and binary forms, with or without |
|||
# modification, are permitted provided that the following conditions are |
|||
# met: |
|||
# |
|||
# * Redistributions of source code must retain the above copyright |
|||
# notice, this list of conditions and the following disclaimer. |
|||
# * Redistributions in binary form must reproduce the above |
|||
# copyright notice, this list of conditions and the following |
|||
# disclaimer in the documentation and/or other materials provided |
|||
# with the distribution. |
|||
# * Neither the name of Google Inc. nor the names of its |
|||
# contributors may be used to endorse or promote products derived |
|||
# from this software without specific prior written permission. |
|||
# |
|||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
|||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
|||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
|||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
|||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
|||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
|||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
|||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
|||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
|||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
|||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|||
|
|||
{ |
|||
'variables': { |
|||
'library%': 'static_library', |
|||
'component%': 'static_library', |
|||
'visibility%': 'hidden', |
|||
'variables': { |
|||
'conditions': [ |
|||
[ 'OS=="linux" or OS=="freebsd" or OS=="openbsd"', { |
|||
# This handles the Linux platforms we generally deal with. Anything |
|||
# else gets passed through, which probably won't work very well; such |
|||
# hosts should pass an explicit target_arch to gyp. |
|||
'host_arch%': |
|||
'<!(uname -m | sed -e "s/i.86/ia32/;s/x86_64/x64/;s/amd64/x64/;s/arm.*/arm/")', |
|||
}, { # OS!="linux" and OS!="freebsd" and OS!="openbsd" |
|||
'host_arch%': 'ia32', |
|||
}], |
|||
], |
|||
}, |
|||
'host_arch%': '<(host_arch)', |
|||
'target_arch%': '<(host_arch)', |
|||
'v8_target_arch%': '<(target_arch)', |
|||
}, |
|||
'target_defaults': { |
|||
'default_configuration': 'Debug', |
|||
'configurations': { |
|||
'Debug': { |
|||
'cflags': [ '-g', '-O0' ], |
|||
'defines': [ 'ENABLE_DISASSEMBLER', 'DEBUG' ], |
|||
}, |
|||
'Release': { |
|||
'cflags': [ '-O3', '-fomit-frame-pointer', '-fdata-sections', '-ffunction-sections' ], |
|||
}, |
|||
}, |
|||
}, |
|||
'conditions': [ |
|||
[ 'OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', { |
|||
'target_defaults': { |
|||
'cflags': [ '-Wall', '-pthread', '-fno-rtti', '-fno-exceptions' ], |
|||
'ldflags': [ '-pthread', ], |
|||
'conditions': [ |
|||
[ 'target_arch=="ia32"', { |
|||
'cflags': [ '-m32' ], |
|||
'ldflags': [ '-m32' ], |
|||
}], |
|||
[ 'OS=="linux"', { |
|||
'cflags': [ '-ansi' ], |
|||
}], |
|||
[ 'visibility=="hidden"', { |
|||
'cflags': [ '-fvisibility=hidden' ], |
|||
}], |
|||
], |
|||
}, |
|||
}], # 'OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"' |
|||
['OS=="win"', { |
|||
'target_defaults': { |
|||
'defines': [ |
|||
'WIN32', |
|||
'_CRT_SECURE_NO_DEPRECATE', |
|||
'_CRT_NONSTDC_NO_DEPRECATE', |
|||
], |
|||
'conditions': [ |
|||
['component=="static_library"', { |
|||
'defines': [ |
|||
'_HAS_EXCEPTIONS=0', |
|||
], |
|||
}], |
|||
], |
|||
'msvs_cygwin_dirs': ['<(DEPTH)/third_party/cygwin'], |
|||
'msvs_disabled_warnings': [4355, 4800], |
|||
'msvs_settings': { |
|||
'VCCLCompilerTool': { |
|||
'MinimalRebuild': 'false', |
|||
'BufferSecurityCheck': 'true', |
|||
'EnableFunctionLevelLinking': 'true', |
|||
'RuntimeTypeInfo': 'false', |
|||
'WarningLevel': '3', |
|||
'WarnAsError': 'true', |
|||
'DebugInformationFormat': '3', |
|||
'Detect64BitPortabilityProblems': 'false', |
|||
'conditions': [ |
|||
[ 'msvs_multi_core_compile', { |
|||
'AdditionalOptions': ['/MP'], |
|||
}], |
|||
['component=="shared_library"', { |
|||
'ExceptionHandling': '1', # /EHsc |
|||
}, { |
|||
'ExceptionHandling': '0', |
|||
}], |
|||
], |
|||
}, |
|||
'VCLibrarianTool': { |
|||
'AdditionalOptions': ['/ignore:4221'], |
|||
}, |
|||
'VCLinkerTool': { |
|||
'AdditionalDependencies': [ |
|||
'ws2_32.lib', |
|||
], |
|||
'GenerateDebugInformation': 'true', |
|||
'MapFileName': '$(OutDir)\\$(TargetName).map', |
|||
'ImportLibrary': '$(OutDir)\\lib\\$(TargetName).lib', |
|||
'FixedBaseAddress': '1', |
|||
# LinkIncremental values: |
|||
# 0 == default |
|||
# 1 == /INCREMENTAL:NO |
|||
# 2 == /INCREMENTAL |
|||
'LinkIncremental': '1', |
|||
# SubSystem values: |
|||
# 0 == not set |
|||
# 1 == /SUBSYSTEM:CONSOLE |
|||
# 2 == /SUBSYSTEM:WINDOWS |
|||
'SubSystem': '1', |
|||
}, |
|||
}, |
|||
}, |
|||
}], # OS=="win" |
|||
['OS=="mac"', { |
|||
'target_defaults': { |
|||
'xcode_settings': { |
|||
'ALWAYS_SEARCH_USER_PATHS': 'NO', |
|||
'GCC_C_LANGUAGE_STANDARD': 'ansi', # -ansi |
|||
'GCC_CW_ASM_SYNTAX': 'NO', # No -fasm-blocks |
|||
'GCC_DYNAMIC_NO_PIC': 'NO', # No -mdynamic-no-pic |
|||
# (Equivalent to -fPIC) |
|||
'GCC_ENABLE_CPP_EXCEPTIONS': 'NO', # -fno-exceptions |
|||
'GCC_ENABLE_CPP_RTTI': 'NO', # -fno-rtti |
|||
'GCC_ENABLE_PASCAL_STRINGS': 'NO', # No -mpascal-strings |
|||
# GCC_INLINES_ARE_PRIVATE_EXTERN maps to -fvisibility-inlines-hidden |
|||
'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES', |
|||
'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES', # -fvisibility=hidden |
|||
'GCC_THREADSAFE_STATICS': 'NO', # -fno-threadsafe-statics |
|||
'GCC_TREAT_WARNINGS_AS_ERRORS': 'YES', # -Werror |
|||
'GCC_VERSION': '4.2', |
|||
'GCC_WARN_ABOUT_MISSING_NEWLINE': 'YES', # -Wnewline-eof |
|||
'MACOSX_DEPLOYMENT_TARGET': '10.4', # -mmacosx-version-min=10.4 |
|||
'PREBINDING': 'NO', # No -Wl,-prebind |
|||
'USE_HEADERMAP': 'NO', |
|||
'OTHER_CFLAGS': [ |
|||
'-fno-strict-aliasing', |
|||
], |
|||
'WARNING_CFLAGS': [ |
|||
'-Wall', |
|||
'-Wendif-labels', |
|||
'-W', |
|||
'-Wno-unused-parameter', |
|||
'-Wnon-virtual-dtor', |
|||
], |
|||
}, |
|||
'target_conditions': [ |
|||
['_type!="static_library"', { |
|||
'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-search_paths_first']}, |
|||
}], |
|||
], # target_conditions |
|||
}, # target_defaults |
|||
}], # OS=="mac" |
|||
], |
|||
} |
@ -0,0 +1,173 @@ |
|||
#!/usr/bin/python |
|||
# |
|||
# Copyright 2010 the V8 project authors. All rights reserved. |
|||
# Redistribution and use in source and binary forms, with or without |
|||
# modification, are permitted provided that the following conditions are |
|||
# met: |
|||
# |
|||
# * Redistributions of source code must retain the above copyright |
|||
# notice, this list of conditions and the following disclaimer. |
|||
# * Redistributions in binary form must reproduce the above |
|||
# copyright notice, this list of conditions and the following |
|||
# disclaimer in the documentation and/or other materials provided |
|||
# with the distribution. |
|||
# * Neither the name of Google Inc. nor the names of its |
|||
# contributors may be used to endorse or promote products derived |
|||
# from this software without specific prior written permission. |
|||
# |
|||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
|||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
|||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
|||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
|||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
|||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
|||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
|||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
|||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
|||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
|||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|||
|
|||
# This script is wrapper for V8 that adds some support for how GYP |
|||
# is invoked by V8 beyond what can be done in the gclient hooks. |
|||
|
|||
import glob |
|||
import os |
|||
import shlex |
|||
import sys |
|||
|
|||
script_dir = os.path.dirname(__file__) |
|||
v8_root = os.path.normpath(os.path.join(script_dir, os.pardir)) |
|||
|
|||
sys.path.insert(0, os.path.join(v8_root, 'tools')) |
|||
import utils |
|||
|
|||
sys.path.insert(0, os.path.join(v8_root, 'build', 'gyp', 'pylib')) |
|||
import gyp |
|||
|
|||
|
|||
def apply_gyp_environment(file_path=None): |
|||
""" |
|||
Reads in a *.gyp_env file and applies the valid keys to os.environ. |
|||
""" |
|||
if not file_path or not os.path.exists(file_path): |
|||
return |
|||
file_contents = open(file_path).read() |
|||
try: |
|||
file_data = eval(file_contents, {'__builtins__': None}, None) |
|||
except SyntaxError, e: |
|||
e.filename = os.path.abspath(file_path) |
|||
raise |
|||
supported_vars = ( 'V8_GYP_FILE', |
|||
'V8_GYP_SYNTAX_CHECK', |
|||
'GYP_DEFINES', |
|||
'GYP_GENERATOR_FLAGS', |
|||
'GYP_GENERATOR_OUTPUT', ) |
|||
for var in supported_vars: |
|||
val = file_data.get(var) |
|||
if val: |
|||
if var in os.environ: |
|||
print 'INFO: Environment value for "%s" overrides value in %s.' % ( |
|||
var, os.path.abspath(file_path) |
|||
) |
|||
else: |
|||
os.environ[var] = val |
|||
|
|||
|
|||
def additional_include_files(args=[]): |
|||
""" |
|||
Returns a list of additional (.gypi) files to include, without |
|||
duplicating ones that are already specified on the command line. |
|||
""" |
|||
# Determine the include files specified on the command line. |
|||
# This doesn't cover all the different option formats you can use, |
|||
# but it's mainly intended to avoid duplicating flags on the automatic |
|||
# makefile regeneration which only uses this format. |
|||
specified_includes = set() |
|||
for arg in args: |
|||
if arg.startswith('-I') and len(arg) > 2: |
|||
specified_includes.add(os.path.realpath(arg[2:])) |
|||
|
|||
result = [] |
|||
def AddInclude(path): |
|||
if os.path.realpath(path) not in specified_includes: |
|||
result.append(path) |
|||
|
|||
# Always include common.gypi & features_override.gypi |
|||
AddInclude(os.path.join(script_dir, 'common.gypi')) |
|||
|
|||
# Optionally add supplemental .gypi files if present. |
|||
supplements = glob.glob(os.path.join(v8_root, '*', 'supplement.gypi')) |
|||
for supplement in supplements: |
|||
AddInclude(supplement) |
|||
|
|||
return result |
|||
|
|||
|
|||
def run_gyp(args): |
|||
rc = gyp.main(args) |
|||
if rc != 0: |
|||
print 'Error running GYP' |
|||
sys.exit(rc) |
|||
|
|||
|
|||
if __name__ == '__main__': |
|||
args = sys.argv[1:] |
|||
|
|||
if 'SKIP_V8_GYP_ENV' not in os.environ: |
|||
# Update the environment based on v8.gyp_env |
|||
gyp_env_path = os.path.join(os.path.dirname(v8_root), 'v8.gyp_env') |
|||
apply_gyp_environment(gyp_env_path) |
|||
|
|||
# This could give false positives since it doesn't actually do real option |
|||
# parsing. Oh well. |
|||
gyp_file_specified = False |
|||
for arg in args: |
|||
if arg.endswith('.gyp'): |
|||
gyp_file_specified = True |
|||
break |
|||
|
|||
# If we didn't get a file, check an env var, and then fall back to |
|||
# assuming 'all.gyp' from the same directory as the script. |
|||
if not gyp_file_specified: |
|||
gyp_file = os.environ.get('V8_GYP_FILE') |
|||
if gyp_file: |
|||
# Note that V8_GYP_FILE values can't have backslashes as |
|||
# path separators even on Windows due to the use of shlex.split(). |
|||
args.extend(shlex.split(gyp_file)) |
|||
else: |
|||
args.append(os.path.join(script_dir, 'all.gyp')) |
|||
|
|||
args.extend(['-I' + i for i in additional_include_files(args)]) |
|||
|
|||
# There shouldn't be a circular dependency relationship between .gyp files |
|||
args.append('--no-circular-check') |
|||
|
|||
# Set the GYP DEPTH variable to the root of the V8 project. |
|||
args.append('--depth=' + v8_root) |
|||
|
|||
# If V8_GYP_SYNTAX_CHECK is set to 1, it will invoke gyp with --check |
|||
# to enfore syntax checking. |
|||
syntax_check = os.environ.get('V8_GYP_SYNTAX_CHECK') |
|||
if syntax_check and int(syntax_check): |
|||
args.append('--check') |
|||
|
|||
print 'Updating projects from gyp files...' |
|||
sys.stdout.flush() |
|||
|
|||
# Generate for the architectures supported on the given platform. |
|||
gyp_args = list(args) |
|||
gyp_args.append('-Dtarget_arch=ia32') |
|||
if utils.GuessOS() == 'linux': |
|||
gyp_args.append('-S-ia32') |
|||
run_gyp(gyp_args) |
|||
|
|||
if utils.GuessOS() == 'linux': |
|||
gyp_args = list(args) |
|||
gyp_args.append('-Dtarget_arch=x64') |
|||
gyp_args.append('-S-x64') |
|||
run_gyp(gyp_args) |
|||
|
|||
gyp_args = list(args) |
|||
gyp_args.append('-I' + v8_root + '/build/armu.gypi') |
|||
gyp_args.append('-S-armu') |
|||
run_gyp(gyp_args) |
@ -0,0 +1,125 @@ |
|||
# Copyright 2011 the V8 project authors. All rights reserved. |
|||
# Redistribution and use in source and binary forms, with or without |
|||
# modification, are permitted provided that the following conditions are |
|||
# met: |
|||
# |
|||
# * Redistributions of source code must retain the above copyright |
|||
# notice, this list of conditions and the following disclaimer. |
|||
# * Redistributions in binary form must reproduce the above |
|||
# copyright notice, this list of conditions and the following |
|||
# disclaimer in the documentation and/or other materials provided |
|||
# with the distribution. |
|||
# * Neither the name of Google Inc. nor the names of its |
|||
# contributors may be used to endorse or promote products derived |
|||
# from this software without specific prior written permission. |
|||
# |
|||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
|||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
|||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
|||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
|||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
|||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
|||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
|||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
|||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
|||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
|||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|||
|
|||
# TODO(sgjesse): This is currently copied from v8.gyp, should probably |
|||
# be refactored. |
|||
{ |
|||
'variables': { |
|||
'use_system_v8%': 0, |
|||
'msvs_use_common_release': 0, |
|||
'gcc_version%': 'unknown', |
|||
'v8_compress_startup_data%': 'off', |
|||
'v8_target_arch%': '<(target_arch)', |
|||
|
|||
# Setting 'v8_can_use_unaligned_accesses' to 'true' will allow the code |
|||
# generated by V8 to do unaligned memory access, and setting it to 'false' |
|||
# will ensure that the generated code will always do aligned memory |
|||
# accesses. The default value of 'default' will try to determine the correct |
|||
# setting. Note that for Intel architectures (ia32 and x64) unaligned memory |
|||
# access is allowed for all CPUs. |
|||
'v8_can_use_unaligned_accesses%': 'default', |
|||
|
|||
# Setting 'v8_can_use_vfp_instructions' to 'true' will enable use of ARM VFP |
|||
# instructions in the V8 generated code. VFP instructions will be enabled |
|||
# both for the snapshot and for the ARM target. Leaving the default value |
|||
# of 'false' will avoid VFP instructions in the snapshot and use CPU feature |
|||
# probing when running on the target. |
|||
'v8_can_use_vfp_instructions%': 'false', |
|||
|
|||
# Setting v8_use_arm_eabi_hardfloat to true will turn on V8 support for ARM |
|||
# EABI calling convention where double arguments are passed in VFP |
|||
# registers. Note that the GCC flag '-mfloat-abi=hard' should be used as |
|||
# well when compiling for the ARM target. |
|||
'v8_use_arm_eabi_hardfloat%': 'false', |
|||
|
|||
'v8_use_snapshot%': 'true', |
|||
'host_os%': '<(OS)', |
|||
'v8_use_liveobjectlist%': 'false', |
|||
}, |
|||
'target_defaults': { |
|||
'conditions': [ |
|||
['OS!="mac"', { |
|||
'conditions': [ |
|||
['v8_target_arch=="arm"', { |
|||
'defines': [ |
|||
'V8_TARGET_ARCH_ARM', |
|||
], |
|||
'conditions': [ |
|||
[ 'v8_can_use_unaligned_accesses=="true"', { |
|||
'defines': [ |
|||
'CAN_USE_UNALIGNED_ACCESSES=1', |
|||
], |
|||
}], |
|||
[ 'v8_can_use_unaligned_accesses=="false"', { |
|||
'defines': [ |
|||
'CAN_USE_UNALIGNED_ACCESSES=0', |
|||
], |
|||
}], |
|||
[ 'v8_can_use_vfp_instructions=="true"', { |
|||
'defines': [ |
|||
'CAN_USE_VFP_INSTRUCTIONS', |
|||
], |
|||
}], |
|||
[ 'v8_use_arm_eabi_hardfloat=="true"', { |
|||
'defines': [ |
|||
'USE_EABI_HARDFLOAT=1', |
|||
'CAN_USE_VFP_INSTRUCTIONS', |
|||
], |
|||
}], |
|||
], |
|||
}], |
|||
['v8_target_arch=="ia32"', { |
|||
'defines': [ |
|||
'V8_TARGET_ARCH_IA32', |
|||
], |
|||
}], |
|||
['v8_target_arch=="mips"', { |
|||
'defines': [ |
|||
'V8_TARGET_ARCH_MIPS', |
|||
], |
|||
}], |
|||
['v8_target_arch=="x64"', { |
|||
'defines': [ |
|||
'V8_TARGET_ARCH_X64', |
|||
], |
|||
}], |
|||
], |
|||
}], |
|||
], |
|||
'configurations': { |
|||
'Debug': { |
|||
'defines': [ |
|||
'DEBUG', |
|||
'_DEBUG', |
|||
'ENABLE_DISASSEMBLER', |
|||
'V8_ENABLE_CHECKS', |
|||
'OBJECT_PRINT', |
|||
], |
|||
} |
|||
} |
|||
} |
|||
} |
Loading…
Reference in new issue