Commit 00b9b2e5 authored by deanm@chromium.org's avatar deanm@chromium.org

Cleanup v8.gyp. This also drops a bunch of unused targets (the shell, d8,

etc).

There are now two gyp variables to control whether we build snapshots and which
target we are building for.  This allows you to easily cross-compile for arm and
disable snapshots.

Patch by Joel Stanley.

Original review: http://codereview.chromium.org/149243

Review URL: http://codereview.chromium.org/155218


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2392 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent be6dd7a4
......@@ -30,52 +30,167 @@
'chromium_code': 1,
'msvs_use_common_release': 0,
'gcc_version%': 'unknown',
'base_source_files': [
'../../src/arm/assembler-arm-inl.h',
'../../src/arm/assembler-arm.cc',
'../../src/arm/assembler-arm.h',
'../../src/arm/builtins-arm.cc',
'../../src/arm/codegen-arm.cc',
'../../src/arm/codegen-arm.h',
'../../src/arm/constants-arm.h',
'../../src/arm/cpu-arm.cc',
'../../src/arm/debug-arm.cc',
'../../src/arm/disasm-arm.cc',
'../../src/arm/frames-arm.cc',
'../../src/arm/frames-arm.h',
'../../src/arm/ic-arm.cc',
'../../src/arm/jump-target-arm.cc',
'../../src/arm/macro-assembler-arm.cc',
'../../src/arm/macro-assembler-arm.h',
'../../src/arm/regexp-macro-assembler-arm.cc',
'../../src/arm/regexp-macro-assembler-arm.h',
'../../src/arm/register-allocator-arm.cc',
'../../src/arm/simulator-arm.cc',
'../../src/arm/stub-cache-arm.cc',
'../../src/arm/virtual-frame-arm.cc',
'../../src/arm/virtual-frame-arm.h',
'../../src/ia32/assembler-ia32-inl.h',
'../../src/ia32/assembler-ia32.cc',
'../../src/ia32/assembler-ia32.h',
'../../src/ia32/builtins-ia32.cc',
'../../src/ia32/codegen-ia32.cc',
'../../src/ia32/codegen-ia32.h',
'../../src/ia32/cpu-ia32.cc',
'../../src/ia32/debug-ia32.cc',
'../../src/ia32/disasm-ia32.cc',
'../../src/ia32/frames-ia32.cc',
'../../src/ia32/frames-ia32.h',
'../../src/ia32/ic-ia32.cc',
'../../src/ia32/jump-target-ia32.cc',
'../../src/ia32/macro-assembler-ia32.cc',
'../../src/ia32/macro-assembler-ia32.h',
'../../src/ia32/regexp-macro-assembler-ia32.cc',
'../../src/ia32/regexp-macro-assembler-ia32.h',
'../../src/ia32/register-allocator-ia32.cc',
'../../src/ia32/stub-cache-ia32.cc',
'../../src/ia32/virtual-frame-ia32.cc',
'../../src/ia32/virtual-frame-ia32.h',
'../../src/third_party/dtoa/dtoa.c',
'target_arch%': 'ia32',
'v8_use_snapshot%': 'true',
},
'includes': [
'../../../build/common.gypi',
],
'target_defaults': {
'defines': [
'ENABLE_LOGGING_AND_PROFILING',
],
'conditions': [
['target_arch=="arm"', {
'defines': [
'V8_TARGET_ARCH_ARM',
],
}],
['target_arch=="ia32"', {
'defines': [
'V8_TARGET_ARCH_IA32',
'V8_NATIVE_REGEXP',
],
}],
],
'configurations': {
'Debug': {
'defines': [
'DEBUG',
'_DEBUG',
'ENABLE_DISASSEMBLER',
],
'msvs_settings': {
'VCCLCompilerTool': {
'Optimizations': '0',
'RuntimeLibrary': '1',
},
'VCLinkerTool': {
'LinkIncremental': '2',
},
},
},
'Release': {
'conditions': [
['OS=="linux"', {
'cflags!': [
'-O2',
],
'cflags': [
'-fomit-frame-pointer',
'-O3',
],
'conditions': [
[ 'gcc_version=="44"', {
'cflags': [
# Avoid gcc 4.4 strict aliasing issues in dtoa.c
'-fno-strict-aliasing',
# Avoid crashes with gcc 4.4 in the v8 test suite.
'-fno-tree-vrp',
],
}],
],
'cflags_cc': [
'-fno-rtti',
],
}],
['OS=="win"', {
'msvs_configuration_attributes': {
'OutputDirectory': '$(SolutionDir)$(ConfigurationName)',
'IntermediateDirectory': '$(OutDir)\\obj\\$(ProjectName)',
'CharacterSet': '1',
},
'msvs_settings': {
'VCCLCompilerTool': {
'RuntimeLibrary': '0',
'Optimizations': '2',
'InlineFunctionExpansion': '2',
'EnableIntrinsicFunctions': 'true',
'FavorSizeOrSpeed': '0',
'OmitFramePointers': 'true',
'StringPooling': 'true',
},
'VCLinkerTool': {
'LinkIncremental': '1',
'OptimizeReferences': '2',
'OptimizeForWindows98': '1',
'EnableCOMDATFolding': '2',
},
},
}],
],
},
},
'xcode_settings': {
'GCC_ENABLE_CPP_EXCEPTIONS': 'NO',
'GCC_ENABLE_CPP_RTTI': 'NO',
},
},
'targets': [
{
'target_name': 'v8',
'type': 'none',
'conditions': [
['v8_use_snapshot=="true"', {
'dependencies': ['v8_snapshot'],
},
{
'dependencies': ['v8_nosnapshot'],
}],
],
'direct_dependent_settings': {
'include_dirs': [
'../../include',
],
},
},
{
'target_name': 'v8_snapshot',
'type': '<(library)',
'dependencies': [
'mksnapshot',
'js2c',
'v8_base',
],
'sources': [
'<(INTERMEDIATE_DIR)/libraries-empty.cc',
'../../src/snapshot.cc',
],
'actions': [
{
'action_name': 'run_mksnapshot',
'inputs': [
'<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot<(EXECUTABLE_SUFFIX)',
],
'outputs': [
'<(INTERMEDIATE_DIR)/snapshot.cc',
],
'action': ['<@(_inputs)', '<@(_outputs)'],
},
],
},
{
'target_name': 'v8_nosnapshot',
'type': '<(library)',
'dependencies': [
'js2c',
'v8_base',
],
'include_dirs': [
'../../src',
],
'sources': [
'<(SHARED_INTERMEDIATE_DIR)/libraries.cc',
'../../src/snapshot-empty.cc',
],
},
{
'target_name': 'v8_base',
'type': '<(library)',
'include_dirs': [
'../../src',
],
'sources': [
'../../src/accessors.cc',
'../../src/accessors.h',
'../../src/allocation.cc',
......@@ -183,12 +298,6 @@
'../../src/oprofile-agent.cc',
'../../src/parser.cc',
'../../src/parser.h',
'../../src/platform-freebsd.cc',
'../../src/platform-linux.cc',
'../../src/platform-macos.cc',
'../../src/platform-nullos.cc',
'../../src/platform-posix.cc',
'../../src/platform-win32.cc',
'../../src/platform.h',
'../../src/prettyprinter.cc',
'../../src/prettyprinter.h',
......@@ -256,101 +365,99 @@
'../../src/zone.cc',
'../../src/zone.h',
],
'not_base_source_files': [
# These files are #included by others and are not meant to be compiled
# directly.
'../../src/third_party/dtoa/dtoa.c',
'conditions': [
['target_arch=="arm"', {
'include_dirs+': [
'../../src/arm',
],
'd8_source_files': [
'../../src/d8-debug.cc',
'../../src/d8-posix.cc',
'../../src/d8-readline.cc',
'../../src/d8-windows.cc',
'../../src/d8.cc',
'sources': [
'../../src/arm/assembler-arm-inl.h',
'../../src/arm/assembler-arm.cc',
'../../src/arm/assembler-arm.h',
'../../src/arm/builtins-arm.cc',
'../../src/arm/codegen-arm.cc',
'../../src/arm/codegen-arm.h',
'../../src/arm/constants-arm.h',
'../../src/arm/cpu-arm.cc',
'../../src/arm/debug-arm.cc',
'../../src/arm/disasm-arm.cc',
'../../src/arm/frames-arm.cc',
'../../src/arm/frames-arm.h',
'../../src/arm/ic-arm.cc',
'../../src/arm/jump-target-arm.cc',
'../../src/arm/macro-assembler-arm.cc',
'../../src/arm/macro-assembler-arm.h',
'../../src/arm/regexp-macro-assembler-arm.cc',
'../../src/arm/regexp-macro-assembler-arm.h',
'../../src/arm/register-allocator-arm.cc',
'../../src/arm/simulator-arm.cc',
'../../src/arm/stub-cache-arm.cc',
'../../src/arm/virtual-frame-arm.cc',
'../../src/arm/virtual-frame-arm.h',
],
},
'includes': [
'../../../build/common.gypi',
}],
['target_arch=="ia32"', {
'include_dirs+': [
'../../src/ia32',
],
'target_defaults': {
'defines': [
'ENABLE_LOGGING_AND_PROFILING',
'sources': [
'../../src/ia32/assembler-ia32-inl.h',
'../../src/ia32/assembler-ia32.cc',
'../../src/ia32/assembler-ia32.h',
'../../src/ia32/builtins-ia32.cc',
'../../src/ia32/codegen-ia32.cc',
'../../src/ia32/codegen-ia32.h',
'../../src/ia32/cpu-ia32.cc',
'../../src/ia32/debug-ia32.cc',
'../../src/ia32/disasm-ia32.cc',
'../../src/ia32/frames-ia32.cc',
'../../src/ia32/frames-ia32.h',
'../../src/ia32/ic-ia32.cc',
'../../src/ia32/jump-target-ia32.cc',
'../../src/ia32/macro-assembler-ia32.cc',
'../../src/ia32/macro-assembler-ia32.h',
'../../src/ia32/regexp-macro-assembler-ia32.cc',
'../../src/ia32/regexp-macro-assembler-ia32.h',
'../../src/ia32/register-allocator-ia32.cc',
'../../src/ia32/stub-cache-ia32.cc',
'../../src/ia32/virtual-frame-ia32.cc',
'../../src/ia32/virtual-frame-ia32.h',
],
'configurations': {
'Debug': {
'defines': [
'DEBUG',
'_DEBUG',
'ENABLE_DISASSEMBLER',
],
'msvs_settings': {
'VCCLCompilerTool': {
'Optimizations': '0',
'RuntimeLibrary': '1',
},
'VCLinkerTool': {
'LinkIncremental': '2',
},
},
},
'Release': {
'conditions': [
}],
['OS=="linux"', {
'cflags!': [
'-O2',
],
'cflags': [
'-fomit-frame-pointer',
'-O3',
],
'conditions': [
[ 'gcc_version=="44"', {
'cflags': [
# Avoid gcc 4.4 strict aliasing issues in dtoa.c
'-fno-strict-aliasing',
# Avoid crashes with gcc 4.4 in the v8 test suite.
'-fno-tree-vrp',
'link_settings': {
'libraries': [
# Needed for clock_gettime() used by src/platform-linux.cc.
'-lrt',
]},
'sources': [
'../../src/platform-linux.cc',
'../../src/platform-posix.cc'
],
}],
}
],
'cflags_cc': [
'-fno-rtti',
['OS=="mac"', {
'sources': [
'../../src/platform-macos.cc',
'../../src/platform-posix.cc'
]},
],
}],
['OS=="win"', {
'msvs_configuration_attributes': {
'OutputDirectory': '$(SolutionDir)$(ConfigurationName)',
'IntermediateDirectory': '$(OutDir)\\obj\\$(ProjectName)',
'CharacterSet': '1',
},
'msvs_settings': {
'VCCLCompilerTool': {
'RuntimeLibrary': '0',
'Optimizations': '2',
'InlineFunctionExpansion': '2',
'EnableIntrinsicFunctions': 'true',
'FavorSizeOrSpeed': '0',
'OmitFramePointers': 'true',
'StringPooling': 'true',
},
'VCLinkerTool': {
'LinkIncremental': '1',
'OptimizeReferences': '2',
'OptimizeForWindows98': '1',
'EnableCOMDATFolding': '2',
},
'sources': [
'../../src/platform-win32.cc',
],
# 4355, 4800 came from common.vsprops
# 4018, 4244 were a per file config on dtoa-config.c
# TODO: It's probably possible and desirable to stop disabling the
# dtoa-specific warnings by modifying dtoa as was done in Chromium
# r9255. Refer to that revision for details.
'msvs_disabled_warnings': [4355, 4800, 4018, 4244],
'link_settings': {
'libraries': [ '-lwinmm.lib' ],
},
}],
],
},
},
'xcode_settings': {
'GCC_ENABLE_CPP_EXCEPTIONS': 'NO',
'GCC_ENABLE_CPP_RTTI': 'NO',
},
},
'targets': [
# Targets that apply to any architecture.
{
'target_name': 'js2c',
'type': 'none',
......@@ -383,117 +490,14 @@
'<(SHARED_INTERMEDIATE_DIR)/libraries.cc',
'<(SHARED_INTERMEDIATE_DIR)/libraries-empty.cc',
],
'action': ['python', '../../tools/js2c.py', '<@(_outputs)', 'CORE', '<@(library_files)'],
},
],
},
{
'target_name': 'd8_js2c',
'type': 'none',
'variables': {
'library_files': [
'../../src/d8.js',
'../../src/macros.py',
],
},
'actions': [
{
'action_name': 'js2c',
'inputs': [
'action': [
'python',
'../../tools/js2c.py',
'<@(library_files)',
],
'extra_inputs': [
],
'outputs': [
'<(SHARED_INTERMEDIATE_DIR)/d8-js.cc',
'<(SHARED_INTERMEDIATE_DIR)/d8-js-empty.cc',
],
'action': ['python', '../../tools/js2c.py', '<@(_outputs)', 'D8', '<@(library_files)'],
},
],
},
# Targets to build v8 for the native architecture (ia32).
{
'target_name': 'v8_base',
'type': '<(library)',
'defines': [
'V8_TARGET_ARCH_IA32',
'V8_NATIVE_REGEXP'
],
'include_dirs+': [
'../../src',
'../../src/ia32',
],
'msvs_guid': 'EC8B7909-62AF-470D-A75D-E1D89C837142',
'sources': [
'<@(base_source_files)',
],
'sources!': [
'<@(not_base_source_files)',
],
'sources/': [
['exclude', '-arm\\.cc$'],
['exclude', 'src/platform-.*\\.cc$' ],
],
'conditions': [
['OS=="linux"',
{
'link_settings': {
'libraries': [
# Needed for clock_gettime() used by src/platform-linux.cc.
'-lrt',
],
},
'sources/': [
['include', 'src/platform-linux\\.cc$'],
['include', 'src/platform-posix\\.cc$']
]
}
],
['OS=="mac"',
{
'sources/': [
['include', 'src/platform-macos\\.cc$'],
['include', 'src/platform-posix\\.cc$']
]
}
],
['OS=="win"', {
'sources/': [['include', 'src/platform-win32\\.cc$']],
# 4355, 4800 came from common.vsprops
# 4018, 4244 were a per file config on dtoa-config.c
# TODO: It's probably possible and desirable to stop disabling the
# dtoa-specific warnings by modifying dtoa as was done in Chromium
# r9255. Refer to that revision for details.
'msvs_disabled_warnings': [4355, 4800, 4018, 4244],
'link_settings': {
'libraries': [ '-lwinmm.lib' ],
},
}],
'<@(_outputs)',
'CORE',
'<@(library_files)'
],
},
{
'target_name': 'v8_nosnapshot',
'type': '<(library)',
'defines': [
'V8_TARGET_ARCH_IA32',
'V8_NATIVE_REGEXP'
],
'dependencies': [
'js2c',
'v8_base',
],
'include_dirs': [
'../../src',
],
'sources': [
'<(SHARED_INTERMEDIATE_DIR)/libraries.cc',
'../../src/snapshot-empty.cc',
],
'export_dependent_settings': [
'v8_base',
],
},
{
......@@ -502,246 +506,9 @@
'dependencies': [
'v8_nosnapshot',
],
'msvs_guid': '865575D0-37E2-405E-8CBA-5F6C485B5A26',
'sources': [
'../../src/mksnapshot.cc',
],
},
{
'target_name': 'v8',
'type': '<(library)',
'defines': [
'V8_TARGET_ARCH_IA32',
'V8_NATIVE_REGEXP'
],
'dependencies': [
'js2c',
'mksnapshot',
'v8_base',
],
'msvs_guid': '21E22961-22BF-4493-BD3A-868F93DA5179',
'actions': [
{
'action_name': 'mksnapshot',
'inputs': [
'<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot<(EXECUTABLE_SUFFIX)',
],
'outputs': [
'<(INTERMEDIATE_DIR)/snapshot.cc',
],
'action': ['<@(_inputs)', '<@(_outputs)'],
},
],
'include_dirs': [
'../../src',
],
'sources': [
'<(SHARED_INTERMEDIATE_DIR)/libraries-empty.cc',
'<(INTERMEDIATE_DIR)/snapshot.cc',
],
'direct_dependent_settings': {
'include_dirs': [
'../../include',
],
},
'export_dependent_settings': [
'v8_base',
],
},
{
'target_name': 'v8_shell',
'type': 'executable',
'defines': [
'V8_TARGET_ARCH_IA32',
'V8_NATIVE_REGEXP'
],
'dependencies': [
'v8',
],
'sources': [
'../../samples/shell.cc',
],
'conditions': [
[ 'OS=="win"', {
# This could be gotten by not setting chromium_code, if that's OK.
'defines': ['_CRT_SECURE_NO_WARNINGS'],
}],
],
},
],
'conditions': [ ['OS=="mac"', { 'targets': [
# TODO(bradnelson): temporarily disable 'd8' target on Windows while
# we work fix the performance regressions.
# TODO(sgk): temporarily disable 'd8' target on Linux while
# we work out getting the readline library on all the systems.
{
'target_name': 'd8',
'type': 'executable',
'dependencies': [
'd8_js2c',
'v8',
],
'defines': [
'V8_TARGET_ARCH_IA32',
'V8_NATIVE_REGEXP'
],
'include_dirs': [
'../../src',
],
'sources': [
'<(SHARED_INTERMEDIATE_DIR)/d8-js.cc',
'<@(d8_source_files)',
],
'conditions': [
[ 'OS=="linux"', {
'sources!': [ '../../src/d8-windows.cc' ],
'link_settings': { 'libraries': [ '-lreadline' ] },
}],
[ 'OS=="mac"', {
'sources!': [ '../../src/d8-windows.cc' ],
'link_settings': { 'libraries': [
'$(SDKROOT)/usr/lib/libreadline.dylib'
]},
}],
[ 'OS=="win"', {
'sources!': [ '../../src/d8-readline.cc', '../../src/d8-posix.cc' ],
}],
],
},
# TODO(sgk): temporarily disable the arm targets on Linux while
# we work out how to refactor the generator and/or add configuration
# settings to the .gyp file to handle building both variants in
# the same output directory.
#
# ARM targets, to test ARM code generation. These use an ARM simulator
# (src/simulator-arm.cc). The ARM targets are not snapshot-enabled.
{
'target_name': 'v8_arm',
'type': '<(library)',
'dependencies': [
'js2c',
],
'defines': [
'V8_TARGET_ARCH_ARM',
],
'include_dirs+': [
'../../src',
'../../src/arm',
],
'sources': [
'<@(base_source_files)',
'<(SHARED_INTERMEDIATE_DIR)/libraries.cc',
'../../src/snapshot-empty.cc',
],
'sources!': [
'<@(not_base_source_files)',
],
'sources/': [
['exclude', '-ia32\\.cc$'],
['exclude', 'src/platform-.*\\.cc$' ],
],
'direct_dependent_settings': {
'include_dirs': [
'../../include',
],
},
'conditions': [
['OS=="linux"',
{
'sources/': [
['include', 'src/platform-linux\\.cc$'],
['include', 'src/platform-posix\\.cc$']
]
}
],
['OS=="mac"',
{
'sources/': [
['include', 'src/platform-macos\\.cc$'],
['include', 'src/platform-posix\\.cc$']
]
}
],
['OS=="win"', {
'sources/': [['include', 'src/platform-win32\\.cc$']],
# 4355, 4800 came from common.vsprops
# 4018, 4244 were a per file config on dtoa-config.c
# TODO: It's probably possible and desirable to stop disabling the
# dtoa-specific warnings by modifying dtoa as was done in Chromium
# r9255. Refer to that revision for details.
'msvs_disabled_warnings': [4355, 4800, 4018, 4244],
}],
],
},
{
'target_name': 'v8_shell_arm',
'type': 'executable',
'dependencies': [
'v8_arm',
],
'defines': [
'V8_TARGET_ARCH_ARM',
],
'sources': [
'../../samples/shell.cc',
],
'conditions': [
[ 'OS=="win"', {
# This could be gotten by not setting chromium_code, if that's OK.
'defines': ['_CRT_SECURE_NO_WARNINGS'],
}],
],
},
{
'target_name': 'd8_arm',
'type': 'executable',
'dependencies': [
'd8_js2c',
'v8_arm',
],
'defines': [
'V8_TARGET_ARCH_ARM',
],
'include_dirs': [
'../../src',
],
'sources': [
'<(SHARED_INTERMEDIATE_DIR)/d8-js.cc',
'<@(d8_source_files)',
],
'conditions': [
[ 'OS=="linux"', {
'sources!': [ '../../src/d8-windows.cc' ],
'link_settings': { 'libraries': [ '-lreadline' ] },
}],
[ 'OS=="mac"', {
'sources!': [ '../../src/d8-windows.cc' ],
'link_settings': { 'libraries': [
'$(SDKROOT)/usr/lib/libreadline.dylib'
]},
}],
[ 'OS=="win"', {
'sources!': [ '../../src/d8-readline.cc', '../../src/d8-posix.cc' ],
}],
],
},
]}], # OS != "linux" (temporary, TODO(sgk))
['OS=="win"', {
'target_defaults': {
'defines': [
'_USE_32BIT_TIME_T',
'_CRT_SECURE_NO_DEPRECATE',
'_CRT_NONSTDC_NO_DEPRECATE',
],
'msvs_settings': {
'VCLinkerTool': {
'AdditionalOptions': '/IGNORE:4221 /NXCOMPAT',
},
},
},
}],
],
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment