Home | History | Annotate | Download | only in gyp
      1 {
      2   'includes': [
      3     '../../gyp/common.gypi',
      4     '../JavaScriptCore.gypi',
      5   ],
      6   'configurations': {
      7     'Production': {
      8       'xcode_config_file': '<(project_dir)/Configurations/Base.xcconfig',
      9     },
     10     'Profiling': {
     11       'xcode_config_file': '<(project_dir)/Configurations/DebugRelease.xcconfig',
     12       'xcode_settings': {
     13         'STRIP_INSTALLED_PRODUCT': 'NO',
     14       },
     15     },
     16     'Release': {
     17       'xcode_config_file': '<(project_dir)/Configurations/DebugRelease.xcconfig',
     18       'xcode_settings': {
     19         'STRIP_INSTALLED_PRODUCT': 'NO',
     20       },
     21     },
     22     'Debug': {
     23       'xcode_config_file': '<(project_dir)/Configurations/DebugRelease.xcconfig',
     24       'xcode_settings': {
     25         'DEAD_CODE_STRIPPING': '$(DEAD_CODE_STRIPPING_debug)',
     26         'DEBUG_DEFINES': '$(DEBUG_DEFINES_debug)',
     27         'GCC_OPTIMIZATION_LEVEL': '$(GCC_OPTIMIZATION_LEVEL_debug)',
     28         'STRIP_INSTALLED_PRODUCT': '$(STRIP_INSTALLED_PRODUCT_debug)',
     29       },
     30     },
     31   },
     32   'variables': {
     33     'javascriptcore_include_dirs': [
     34       '<(project_dir)',
     35       '<(project_dir)/icu',
     36     ],
     37   },
     38   'target_defaults': {
     39     'configurations': {
     40       'Profiling': {},
     41     },
     42   },
     43   'targets': [
     44     {
     45       'target_name': 'JavaScriptCore',
     46       'type': 'shared_library',
     47       'dependencies': [
     48         'Derived Sources',
     49         'Update Version',
     50       ],
     51       'include_dirs': [
     52         '<@(javascriptcore_include_dirs)',
     53         '<(PRODUCT_DIR)/DerivedSources/JavaScriptCore',
     54       ],
     55       'configurations': {
     56         'Production': {
     57           'INSTALL_PATH': '$(BUILT_PRODUCTS_DIR)',
     58         },
     59       },
     60       'sources': [
     61         '<@(javascriptcore_files)',
     62         '<@(javascriptcore_publicheader_files)',
     63         '<@(javascriptcore_privateheader_files)',
     64         '<@(javascriptcore_derived_source_files)',
     65         '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
     66         '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
     67         '/usr/lib/libicucore.dylib',
     68         '/usr/lib/libobjc.dylib',
     69       ],
     70       'mac_framework_headers': [
     71         '<@(javascriptcore_publicheader_files)',
     72       ],
     73       'mac_framework_private_headers': [
     74         '<@(javascriptcore_privateheader_files)',
     75       ],
     76       'xcode_config_file': '<(project_dir)/Configurations/JavaScriptCore.xcconfig',
     77       'sources/': [
     78         ['exclude', 'API/tests/'],
     79         ['exclude', 'ForwardingHeaders/'],
     80         ['exclude', '(?<!unicode)/icu/'],
     81         ['exclude', 'os-win32/'],
     82         ['exclude', 'qt/'],
     83         ['exclude', 'wtf/(android|brew|efl|gtk|haiku|qt|wince|wx)/'],
     84         ['exclude', 'wtf/unicode/brew/'],
     85         ['exclude', 'wtf/unicode/glib/'],
     86         ['exclude', 'wtf/unicode/qt4/'],
     87         ['exclude', 'wtf/unicode/wince/'],
     88         ['exclude', 'wtf/url/'],
     89         ['exclude', '/(gtk|glib|gobject)/.*\\.(cpp|h)$'],
     90         ['exclude', '(Default|Gtk|Chromium|None|Qt|Win|Wx|Symbian)\\.(cpp|mm|h)$'],
     91         ['exclude', 'GCActivityCallback\.cpp$'],
     92         ['exclude', 'BSTR[^/]*$'],
     93       ],
     94       'postbuilds': [
     95         {
     96           'postbuild_name': 'Check For Global Initializers',
     97           'action': [
     98             'sh', '<(project_dir)/gyp/run-if-exists.sh', '<(DEPTH)/../Tools/Scripts/check-for-global-initializers'
     99           ],
    100         },
    101         {
    102           'postbuild_name': 'Check For Exit Time Destructors',
    103           'action': [
    104             'sh', '<(project_dir)/gyp/run-if-exists.sh', '<(DEPTH)/../Tools/Scripts/check-for-exit-time-destructors'
    105           ],
    106         },
    107         {
    108           'postbuild_name': 'Check For Weak VTables and Externals',
    109           'action': [
    110             'sh', '<(project_dir)/gyp/run-if-exists.sh', '<(DEPTH)/../Tools/Scripts/check-for-weak-vtables-and-externals'
    111           ],
    112         },
    113       ],
    114       'conditions': [
    115         ['OS=="mac"', {
    116           'mac_bundle': 1,
    117           'xcode_settings': {
    118             # FIXME: Remove these overrides once JavaScriptCore.xcconfig is
    119             # used only by this project.
    120             'GCC_PREFIX_HEADER': '<(project_dir)/JavaScriptCorePrefix.h',
    121             'INFOPLIST_FILE': '<(project_dir)/Info.plist',
    122           },
    123         }],
    124       ],
    125     },
    126     {
    127       'target_name': 'Derived Sources',
    128       'type': 'none',
    129       'actions': [
    130         {
    131           'action_name': 'Generate Derived Sources',
    132           'inputs': [],
    133           'outputs': [
    134             '<@(javascriptcore_derived_source_files)',
    135           ],
    136           'action': [
    137             'sh', 'generate-derived-sources.sh'
    138           ],
    139         },
    140         {
    141           'action_name': 'Generate DTrace Header',
    142           'inputs': [],
    143            'outputs': [],
    144            'action': [
    145              'sh', '<(project_dir)/gyp/generate-dtrace-header.sh', '<(project_dir)'
    146             ]
    147         }
    148       ],
    149     },
    150     {
    151       'target_name': 'Update Version',
    152       'type': 'none',
    153       'actions': [{
    154         'action_name': 'Update Info.plist with version information',
    155         'inputs': [],
    156          'outputs': [],
    157          'action': [
    158            'sh', '<(project_dir)/gyp/update-info-plist.sh', '<(project_dir)/Info.plist'
    159           ]
    160       }],
    161     },
    162     {
    163       'target_name': 'minidom',
    164       'type': 'executable',
    165       'dependencies': [
    166         'JavaScriptCore',
    167       ],
    168       # FIXME: We should use a header map instead of listing these explicitly.
    169       'include_dirs': [
    170         '<@(javascriptcore_include_dirs)',
    171       ],
    172       'sources': [
    173         '<@(minidom_files)',
    174         '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
    175       ],
    176       'copies': [{
    177         'destination': '<(PRODUCT_DIR)',
    178         'files': [
    179           '<@(minidom_support_files)',
    180         ],
    181       }],
    182     },
    183     {
    184       'target_name': 'testapi',
    185       'type': 'executable',
    186       'dependencies': [
    187         'JavaScriptCore',
    188       ],
    189       # FIXME: We should use a header map instead of listing these explicitly.
    190       'include_dirs': [
    191         '<@(javascriptcore_include_dirs)',
    192       ],
    193       'sources': [
    194         '<@(testapi_files)',
    195         '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
    196       ],
    197       'copies': [{
    198         'destination': '<(PRODUCT_DIR)',
    199         'files': [
    200           '<@(testapi_support_files)',
    201         ],
    202       }],
    203     },
    204     {
    205       'target_name': 'jsc',
    206       'type': 'executable',
    207       'dependencies': [
    208         'JavaScriptCore',
    209       ],
    210       # FIXME: We should use a header map instead of listing these explicitly.
    211       'include_dirs': [
    212         '<@(javascriptcore_include_dirs)',
    213       ],
    214       'configurations': {
    215         'Production': {
    216           'xcode_settings': {
    217             'INSTALL_PATH': '$(JAVASCRIPTCORE_FRAMEWORKS_DIR)/JavaScriptCore.framework/Resources',
    218           },
    219         },
    220       },
    221       'sources': [
    222         '<@(jsc_files)',
    223         '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
    224         '/usr/lib/libedit.dylib',
    225       ],
    226     },
    227   ], # targets
    228 }
    229