Blame common.gypi

Packit b5b901
{
Packit b5b901
  'variables': {
Packit b5b901
    'target_arch%': 'ia32',          # set v8's target architecture
Packit b5b901
    'host_arch%': 'ia32',            # set v8's host architecture
Packit b5b901
    'uv_library%': 'static_library', # allow override to 'shared_library' for DLL/.so builds
Packit b5b901
    'msvs_multi_core_compile': '0',  # we do enable multicore compiles, but not using the V8 way
Packit b5b901
  },
Packit b5b901
Packit b5b901
  'target_defaults': {
Packit b5b901
    'default_configuration': 'Debug',
Packit b5b901
    'configurations': {
Packit b5b901
      'Debug': {
Packit b5b901
        'defines': [ 'DEBUG', '_DEBUG' ],
Packit b5b901
        'cflags': [ '-g' ],
Packit b5b901
        'msvs_settings': {
Packit b5b901
          'VCCLCompilerTool': {
Packit b5b901
            'target_conditions': [
Packit b5b901
              ['uv_library=="static_library"', {
Packit b5b901
                'RuntimeLibrary': 1, # /MTd static debug
Packit b5b901
              }, {
Packit b5b901
                'RuntimeLibrary': 3, # /MDd DLL debug
Packit b5b901
              }],
Packit b5b901
            ],
Packit b5b901
            'Optimization': 0, # /Od, no optimization
Packit b5b901
            'MinimalRebuild': 'false',
Packit b5b901
            'OmitFramePointers': 'false',
Packit b5b901
            'BasicRuntimeChecks': 3, # /RTC1
Packit b5b901
          },
Packit b5b901
          'VCLinkerTool': {
Packit b5b901
            'LinkIncremental': 2, # enable incremental linking
Packit b5b901
          },
Packit b5b901
        },
Packit b5b901
        'xcode_settings': {
Packit b5b901
          'GCC_OPTIMIZATION_LEVEL': '0',
Packit b5b901
        },
Packit b5b901
        'conditions': [
Packit b5b901
          ['OS != "zos"', {
Packit b5b901
            'cflags': [ '-O0', '-fwrapv' ]
Packit b5b901
          }],
Packit b5b901
          ['OS == "android"', {
Packit b5b901
            'cflags': [ '-fPIE' ],
Packit b5b901
            'ldflags': [ '-fPIE', '-pie' ]
Packit b5b901
          }]
Packit b5b901
        ]
Packit b5b901
      },
Packit b5b901
      'Release': {
Packit b5b901
        'defines': [ 'NDEBUG' ],
Packit b5b901
        'cflags': [
Packit b5b901
          '-O3',
Packit b5b901
        ],
Packit b5b901
        'msvs_settings': {
Packit b5b901
          'VCCLCompilerTool': {
Packit b5b901
            'target_conditions': [
Packit b5b901
              ['uv_library=="static_library"', {
Packit b5b901
                'RuntimeLibrary': 0, # /MT static release
Packit b5b901
              }, {
Packit b5b901
                'RuntimeLibrary': 2, # /MD DLL release
Packit b5b901
              }],
Packit b5b901
            ],
Packit b5b901
            'Optimization': 3, # /Ox, full optimization
Packit b5b901
            'FavorSizeOrSpeed': 1, # /Ot, favour speed over size
Packit b5b901
            'InlineFunctionExpansion': 2, # /Ob2, inline anything eligible
Packit b5b901
            'WholeProgramOptimization': 'true', # /GL, whole program optimization, needed for LTCG
Packit b5b901
            'OmitFramePointers': 'true',
Packit b5b901
            'EnableFunctionLevelLinking': 'true',
Packit b5b901
            'EnableIntrinsicFunctions': 'true',
Packit b5b901
          },
Packit b5b901
          'VCLibrarianTool': {
Packit b5b901
            'AdditionalOptions': [
Packit b5b901
              '/LTCG', # link time code generation
Packit b5b901
            ],
Packit b5b901
          },
Packit b5b901
          'VCLinkerTool': {
Packit b5b901
            'LinkTimeCodeGeneration': 1, # link-time code generation
Packit b5b901
            'OptimizeReferences': 2, # /OPT:REF
Packit b5b901
            'EnableCOMDATFolding': 2, # /OPT:ICF
Packit b5b901
            'LinkIncremental': 1, # disable incremental linking
Packit b5b901
          },
Packit b5b901
        },
Packit b5b901
        'conditions': [
Packit b5b901
          ['OS != "zos"', {
Packit b5b901
            'cflags': [
Packit b5b901
              '-fomit-frame-pointer',
Packit b5b901
              '-fdata-sections',
Packit b5b901
              '-ffunction-sections',
Packit b5b901
            ],
Packit b5b901
          }],
Packit b5b901
        ]
Packit b5b901
      }
Packit b5b901
    },
Packit b5b901
    'msvs_settings': {
Packit b5b901
      'VCCLCompilerTool': {
Packit b5b901
        'StringPooling': 'true', # pool string literals
Packit b5b901
        'DebugInformationFormat': 3, # Generate a PDB
Packit b5b901
        'WarningLevel': 3,
Packit b5b901
        'BufferSecurityCheck': 'true',
Packit b5b901
        'ExceptionHandling': 1, # /EHsc
Packit b5b901
        'SuppressStartupBanner': 'true',
Packit b5b901
        'WarnAsError': 'false',
Packit b5b901
        'AdditionalOptions': [
Packit b5b901
           '/MP', # compile across multiple CPUs
Packit b5b901
         ],
Packit b5b901
      },
Packit b5b901
      'VCLibrarianTool': {
Packit b5b901
      },
Packit b5b901
      'VCLinkerTool': {
Packit b5b901
        'GenerateDebugInformation': 'true',
Packit b5b901
        'RandomizedBaseAddress': 2, # enable ASLR
Packit b5b901
        'DataExecutionPrevention': 2, # enable DEP
Packit b5b901
        'AllowIsolation': 'true',
Packit b5b901
        'SuppressStartupBanner': 'true',
Packit b5b901
        'target_conditions': [
Packit b5b901
          ['_type=="executable"', {
Packit b5b901
            'SubSystem': 1, # console executable
Packit b5b901
          }],
Packit b5b901
        ],
Packit b5b901
      },
Packit b5b901
    },
Packit b5b901
    'conditions': [
Packit b5b901
      ['OS == "win"', {
Packit b5b901
        'msvs_cygwin_shell': 0, # prevent actions from trying to use cygwin
Packit b5b901
        'defines': [
Packit b5b901
          'WIN32',
Packit b5b901
          # we don't really want VC++ warning us about
Packit b5b901
          # how dangerous C functions are...
Packit b5b901
          '_CRT_SECURE_NO_DEPRECATE',
Packit b5b901
          # ... or that C implementations shouldn't use
Packit b5b901
          # POSIX names
Packit b5b901
          '_CRT_NONSTDC_NO_DEPRECATE',
Packit b5b901
        ],
Packit b5b901
        'target_conditions': [
Packit b5b901
          ['target_arch=="x64"', {
Packit b5b901
            'msvs_configuration_platform': 'x64'
Packit b5b901
          }]
Packit b5b901
        ]
Packit b5b901
      }],
Packit b5b901
      ['OS in "freebsd dragonflybsd linux openbsd solaris android aix"', {
Packit b5b901
        'cflags': [ '-Wall' ],
Packit b5b901
        'cflags_cc': [ '-fno-rtti', '-fno-exceptions' ],
Packit b5b901
        'target_conditions': [
Packit b5b901
          ['_type=="static_library"', {
Packit b5b901
            'standalone_static_library': 1, # disable thin archive which needs binutils >= 2.19
Packit b5b901
          }],
Packit b5b901
        ],
Packit b5b901
        'conditions': [
Packit b5b901
          [ 'host_arch != target_arch and target_arch=="ia32"', {
Packit b5b901
            'cflags': [ '-m32' ],
Packit b5b901
            'ldflags': [ '-m32' ],
Packit b5b901
          }],
Packit b5b901
          [ 'target_arch=="x32"', {
Packit b5b901
            'cflags': [ '-mx32' ],
Packit b5b901
            'ldflags': [ '-mx32' ],
Packit b5b901
          }],
Packit b5b901
          [ 'OS=="linux"', {
Packit b5b901
            'cflags': [ '-ansi' ],
Packit b5b901
          }],
Packit b5b901
          [ 'OS=="solaris"', {
Packit b5b901
            'cflags': [ '-pthreads' ],
Packit b5b901
            'ldflags': [ '-pthreads' ],
Packit b5b901
          }],
Packit b5b901
          [ 'OS not in "solaris android zos"', {
Packit b5b901
            'cflags': [ '-pthread' ],
Packit b5b901
            'ldflags': [ '-pthread' ],
Packit b5b901
          }],
Packit b5b901
          [ 'OS=="aix" and target_arch=="ppc64"', {
Packit b5b901
            'cflags': [ '-maix64' ],
Packit b5b901
            'ldflags': [ '-maix64' ],
Packit b5b901
          }],
Packit b5b901
        ],
Packit b5b901
      }],
Packit b5b901
      ['OS=="mac"', {
Packit b5b901
        'xcode_settings': {
Packit b5b901
          'ALWAYS_SEARCH_USER_PATHS': 'NO',
Packit b5b901
          'GCC_CW_ASM_SYNTAX': 'NO',                # No -fasm-blocks
Packit b5b901
          'GCC_DYNAMIC_NO_PIC': 'NO',               # No -mdynamic-no-pic
Packit b5b901
                                                    # (Equivalent to -fPIC)
Packit b5b901
          'GCC_ENABLE_CPP_EXCEPTIONS': 'NO',        # -fno-exceptions
Packit b5b901
          'GCC_ENABLE_CPP_RTTI': 'NO',              # -fno-rtti
Packit b5b901
          'GCC_ENABLE_PASCAL_STRINGS': 'NO',        # No -mpascal-strings
Packit b5b901
          'GCC_THREADSAFE_STATICS': 'NO',           # -fno-threadsafe-statics
Packit b5b901
          'PREBINDING': 'NO',                       # No -Wl,-prebind
Packit b5b901
          'USE_HEADERMAP': 'NO',
Packit b5b901
          'WARNING_CFLAGS': [
Packit b5b901
            '-Wall',
Packit b5b901
            '-Wendif-labels',
Packit b5b901
            '-W',
Packit b5b901
            '-Wno-unused-parameter',
Packit b5b901
            '-Wstrict-prototypes',
Packit b5b901
          ],
Packit b5b901
        },
Packit b5b901
        'conditions': [
Packit b5b901
          ['target_arch=="ia32"', {
Packit b5b901
            'xcode_settings': {'ARCHS': ['i386']},
Packit b5b901
          }],
Packit b5b901
          ['target_arch=="x64"', {
Packit b5b901
            'xcode_settings': {'ARCHS': ['x86_64']},
Packit b5b901
          }],
Packit b5b901
        ],
Packit b5b901
        'target_conditions': [
Packit b5b901
          ['_type!="static_library"', {
Packit b5b901
            'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-search_paths_first']},
Packit b5b901
          }],
Packit b5b901
        ],
Packit b5b901
      }],
Packit b5b901
     ['OS=="solaris"', {
Packit b5b901
       'cflags': [ '-fno-omit-frame-pointer' ],
Packit b5b901
       # pull in V8's postmortem metadata
Packit b5b901
       'ldflags': [ '-Wl,-z,allextract' ]
Packit b5b901
     }],
Packit b5b901
    ],
Packit b5b901
  },
Packit b5b901
}