# Copyright 2009 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': {
    'chromium_code': 1,
    'msvs_use_common_release': 0,
    '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',
      '../../src/accessors.cc',
      '../../src/accessors.h',
      '../../src/allocation.cc',
      '../../src/allocation.h',
      '../../src/api.cc',
      '../../src/api.h',
      '../../src/apiutils.h',
      '../../src/arguments.h',
      '../../src/assembler.cc',
      '../../src/assembler.h',
      '../../src/ast.cc',
      '../../src/ast.h',
      '../../src/bootstrapper.cc',
      '../../src/bootstrapper.h',
      '../../src/builtins.cc',
      '../../src/builtins.h',
      '../../src/bytecodes-irregexp.h',
      '../../src/char-predicates-inl.h',
      '../../src/char-predicates.h',
      '../../src/checks.cc',
      '../../src/checks.h',
      '../../src/code-stubs.cc',
      '../../src/code-stubs.h',
      '../../src/code.h',
      '../../src/codegen-inl.h',
      '../../src/codegen.cc',
      '../../src/codegen.h',
      '../../src/compilation-cache.cc',
      '../../src/compilation-cache.h',
      '../../src/compiler.cc',
      '../../src/compiler.h',
      '../../src/contexts.cc',
      '../../src/contexts.h',
      '../../src/conversions-inl.h',
      '../../src/conversions.cc',
      '../../src/conversions.h',
      '../../src/counters.cc',
      '../../src/counters.h',
      '../../src/cpu.h',
      '../../src/dateparser.cc',
      '../../src/dateparser.h',
      '../../src/dateparser-inl.h',
      '../../src/debug.cc',
      '../../src/debug.h',
      '../../src/debug-agent.cc',
      '../../src/debug-agent.h',
      '../../src/disasm.h',
      '../../src/disassembler.cc',
      '../../src/disassembler.h',
      '../../src/dtoa-config.c',
      '../../src/execution.cc',
      '../../src/execution.h',
      '../../src/factory.cc',
      '../../src/factory.h',
      '../../src/flag-definitions.h',
      '../../src/flags.cc',
      '../../src/flags.h',
      '../../src/frames-inl.h',
      '../../src/frames.cc',
      '../../src/frames.h',
      '../../src/func-name-inferrer.cc',
      '../../src/func-name-inferrer.h',
      '../../src/global-handles.cc',
      '../../src/global-handles.h',
      '../../src/globals.h',
      '../../src/handles-inl.h',
      '../../src/handles.cc',
      '../../src/handles.h',
      '../../src/hashmap.cc',
      '../../src/hashmap.h',
      '../../src/heap-inl.h',
      '../../src/heap.cc',
      '../../src/heap.h',
      '../../src/ic-inl.h',
      '../../src/ic.cc',
      '../../src/ic.h',
      '../../src/interpreter-irregexp.cc',
      '../../src/interpreter-irregexp.h',
      '../../src/jump-target.cc',
      '../../src/jump-target.h',
      '../../src/jsregexp-inl.h',
      '../../src/jsregexp.cc',
      '../../src/jsregexp.h',
      '../../src/list-inl.h',
      '../../src/list.h',
      '../../src/log.cc',
      '../../src/log.h',
      '../../src/macro-assembler.h',
      '../../src/mark-compact.cc',
      '../../src/mark-compact.h',
      '../../src/memory.h',
      '../../src/messages.cc',
      '../../src/messages.h',
      '../../src/natives.h',
      '../../src/objects-debug.cc',
      '../../src/objects-inl.h',
      '../../src/objects.cc',
      '../../src/objects.h',
      '../../src/oprofile-agent.h',
      '../../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',
      '../../src/property.cc',
      '../../src/property.h',
      '../../src/regexp-macro-assembler-irregexp-inl.h',
      '../../src/regexp-macro-assembler-irregexp.cc',
      '../../src/regexp-macro-assembler-irregexp.h',
      '../../src/regexp-macro-assembler-tracer.cc',
      '../../src/regexp-macro-assembler-tracer.h',
      '../../src/regexp-macro-assembler.cc',
      '../../src/regexp-macro-assembler.h',
      '../../src/regexp-stack.cc',
      '../../src/regexp-stack.h',
      '../../src/register-allocator.h',
      '../../src/register-allocator-inl.h',
      '../../src/register-allocator.cc',
      '../../src/rewriter.cc',
      '../../src/rewriter.h',
      '../../src/runtime.cc',
      '../../src/runtime.h',
      '../../src/scanner.cc',
      '../../src/scanner.h',
      '../../src/scopeinfo.cc',
      '../../src/scopeinfo.h',
      '../../src/scopes.cc',
      '../../src/scopes.h',
      '../../src/serialize.cc',
      '../../src/serialize.h',
      '../../src/shell.h',
      '../../src/smart-pointer.h',
      '../../src/snapshot-common.cc',
      '../../src/snapshot.h',
      '../../src/spaces-inl.h',
      '../../src/spaces.cc',
      '../../src/spaces.h',
      '../../src/string-stream.cc',
      '../../src/string-stream.h',
      '../../src/stub-cache.cc',
      '../../src/stub-cache.h',
      '../../src/token.cc',
      '../../src/token.h',
      '../../src/top.cc',
      '../../src/top.h',
      '../../src/unicode-inl.h',
      '../../src/unicode.cc',
      '../../src/unicode.h',
      '../../src/usage-analyzer.cc',
      '../../src/usage-analyzer.h',
      '../../src/utils.cc',
      '../../src/utils.h',
      '../../src/v8-counters.cc',
      '../../src/v8-counters.h',
      '../../src/v8.cc',
      '../../src/v8.h',
      '../../src/v8threads.cc',
      '../../src/v8threads.h',
      '../../src/variables.cc',
      '../../src/variables.h',
      '../../src/virtual-frame.h',
      '../../src/virtual-frame.cc',
      '../../src/zone-inl.h',
      '../../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',
    ],
    'd8_source_files': [
      '../../src/d8-debug.cc',
      '../../src/d8-posix.cc',
      '../../src/d8-readline.cc',
      '../../src/d8-windows.cc',
      '../../src/d8.cc',
    ],
  },
  'includes': [
    '../../../build/common.gypi',
  ],
  'target_defaults': {
    'defines': [
      'ENABLE_LOGGING_AND_PROFILING',
    ],
    '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',
            ],
            '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': [
    # Targets that apply to any architecture.
    {
      'target_name': 'js2c',
      'type': 'none',
      'variables': {
        'library_files': [
          '../../src/runtime.js',
          '../../src/v8natives.js',
          '../../src/array.js',
          '../../src/string.js',
          '../../src/uri.js',
          '../../src/math.js',
          '../../src/messages.js',
          '../../src/apinatives.js',
          '../../src/debug-delay.js',
          '../../src/mirror-delay.js',
          '../../src/date-delay.js',
          '../../src/json-delay.js',
          '../../src/regexp-delay.js',
          '../../src/macros.py',
        ],
      },
      'actions': [
        {
          'action_name': 'js2c',
          'inputs': [
            '../../tools/js2c.py',
            '<@(library_files)',
          ],
          'outputs': [
            '<(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': [
            '../../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)',
      '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' ],
          },
        }],
      ],
    },
    {
      'target_name': 'v8_nosnapshot',
      'type': '<(library)',
      'dependencies': [
        'js2c',
        'v8_base',
      ],
      'include_dirs': [
        '../../src',
      ],
      'sources': [
        '<(SHARED_INTERMEDIATE_DIR)/libraries.cc',
        '../../src/snapshot-empty.cc',
      ],
      'export_dependent_settings': [
        'v8_base',
      ],
    },
    {
      'target_name': 'mksnapshot',
      'type': 'executable',
      'dependencies': [
        'v8_nosnapshot',
      ],
      'msvs_guid': '865575D0-37E2-405E-8CBA-5F6C485B5A26',
      'sources': [
        '../../src/mksnapshot.cc',
      ],
    },
    {
      'target_name': 'v8',
      'type': '<(library)',
      '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',
      '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',
      ],
      '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': [
        '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': [
        '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': [
        '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',
          },
        },
      },
    }],
  ],
}
