blob: a520344fbb51a54cdfa2cfada1dd7f933e530c9b [file] [log] [blame]
{
'includes': [
'../../gyp/common.gypi',
'../JavaScriptCore.gypi',
],
'configurations': {
'Production': {
'xcode_config_file': '<(project_dir)/Configurations/Base.xcconfig',
},
'Profiling': {
'xcode_config_file': '<(project_dir)/Configurations/DebugRelease.xcconfig',
'xcode_settings': {
'STRIP_INSTALLED_PRODUCT': 'NO',
},
},
'Release': {
'xcode_config_file': '<(project_dir)/Configurations/DebugRelease.xcconfig',
'xcode_settings': {
'STRIP_INSTALLED_PRODUCT': 'NO',
},
},
'Debug': {
'xcode_config_file': '<(project_dir)/Configurations/DebugRelease.xcconfig',
'xcode_settings': {
'DEAD_CODE_STRIPPING': '$(DEAD_CODE_STRIPPING_debug)',
'DEBUG_DEFINES': '$(DEBUG_DEFINES_debug)',
'GCC_OPTIMIZATION_LEVEL': '$(GCC_OPTIMIZATION_LEVEL_debug)',
'STRIP_INSTALLED_PRODUCT': '$(STRIP_INSTALLED_PRODUCT_debug)',
},
},
},
'variables': {
'javascriptcore_include_dirs': [
'<(project_dir)',
'<(project_dir)/icu',
],
},
'target_defaults': {
'configurations': {
'Profiling': {},
},
},
'targets': [
{
'target_name': 'JavaScriptCore',
'type': 'shared_library',
'dependencies': [
'Derived Sources',
'Update Version',
],
'include_dirs': [
'<@(javascriptcore_include_dirs)',
'<(PRODUCT_DIR)/DerivedSources/JavaScriptCore',
],
'configurations': {
'Production': {
'INSTALL_PATH': '$(BUILT_PRODUCTS_DIR)',
},
},
'sources': [
'<@(javascriptcore_files)',
'<@(javascriptcore_publicheader_files)',
'<@(javascriptcore_privateheader_files)',
'<@(javascriptcore_derived_source_files)',
'$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
'$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
'/usr/lib/libicucore.dylib',
'/usr/lib/libobjc.dylib',
],
'mac_framework_headers': [
'<@(javascriptcore_publicheader_files)',
],
'mac_framework_private_headers': [
'<@(javascriptcore_privateheader_files)',
],
'xcode_config_file': '<(project_dir)/Configurations/JavaScriptCore.xcconfig',
'sources/': [
['exclude', 'API/tests/'],
['exclude', 'ForwardingHeaders/'],
['exclude', '(?<!unicode)/icu/'],
['exclude', 'os-win32/'],
['exclude', 'qt/'],
['exclude', 'wtf/(android|brew|efl|gtk|haiku|qt|wince|wx)/'],
['exclude', 'wtf/unicode/brew/'],
['exclude', 'wtf/unicode/glib/'],
['exclude', 'wtf/unicode/qt4/'],
['exclude', 'wtf/unicode/wince/'],
['exclude', 'wtf/url/'],
['exclude', '/(gtk|glib|gobject)/.*\\.(cpp|h)$'],
['exclude', '(Default|Gtk|Chromium|None|Qt|Win|Wx|Symbian)\\.(cpp|mm|h)$'],
['exclude', 'GCActivityCallback\.cpp$'],
['exclude', 'BSTR[^/]*$'],
],
'postbuilds': [
{
'postbuild_name': 'Check For Global Initializers',
'action': [
'sh', '<(project_dir)/gyp/run-if-exists.sh', '<(DEPTH)/../Tools/Scripts/check-for-global-initializers'
],
},
{
'postbuild_name': 'Check For Exit Time Destructors',
'action': [
'sh', '<(project_dir)/gyp/run-if-exists.sh', '<(DEPTH)/../Tools/Scripts/check-for-exit-time-destructors'
],
},
{
'postbuild_name': 'Check For Weak VTables and Externals',
'action': [
'sh', '<(project_dir)/gyp/run-if-exists.sh', '<(DEPTH)/../Tools/Scripts/check-for-weak-vtables-and-externals'
],
},
],
'conditions': [
['OS=="mac"', {
'mac_bundle': 1,
'xcode_settings': {
# FIXME: Remove these overrides once JavaScriptCore.xcconfig is
# used only by this project.
'GCC_PREFIX_HEADER': '<(project_dir)/JavaScriptCorePrefix.h',
'INFOPLIST_FILE': '<(project_dir)/Info.plist',
},
}],
],
},
{
'target_name': 'Derived Sources',
'type': 'none',
'actions': [
{
'action_name': 'Generate Derived Sources',
'inputs': [],
'outputs': [
'<@(javascriptcore_derived_source_files)',
],
'action': [
'sh', 'generate-derived-sources.sh'
],
},
{
'action_name': 'Generate DTrace Header',
'inputs': [],
'outputs': [],
'action': [
'sh', '<(project_dir)/gyp/generate-dtrace-header.sh', '<(project_dir)'
]
}
],
},
{
'target_name': 'Update Version',
'type': 'none',
'actions': [{
'action_name': 'Update Info.plist with version information',
'inputs': [],
'outputs': [],
'action': [
'sh', '<(project_dir)/gyp/update-info-plist.sh', '<(project_dir)/Info.plist'
]
}],
},
{
'target_name': 'minidom',
'type': 'executable',
'dependencies': [
'JavaScriptCore',
],
# FIXME: We should use a header map instead of listing these explicitly.
'include_dirs': [
'<@(javascriptcore_include_dirs)',
],
'sources': [
'<@(minidom_files)',
'$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
],
'copies': [{
'destination': '<(PRODUCT_DIR)',
'files': [
'<@(minidom_support_files)',
],
}],
},
{
'target_name': 'testapi',
'type': 'executable',
'dependencies': [
'JavaScriptCore',
],
# FIXME: We should use a header map instead of listing these explicitly.
'include_dirs': [
'<@(javascriptcore_include_dirs)',
],
'sources': [
'<@(testapi_files)',
'$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
],
'copies': [{
'destination': '<(PRODUCT_DIR)',
'files': [
'<@(testapi_support_files)',
],
}],
},
{
'target_name': 'jsc',
'type': 'executable',
'dependencies': [
'JavaScriptCore',
],
# FIXME: We should use a header map instead of listing these explicitly.
'include_dirs': [
'<@(javascriptcore_include_dirs)',
],
'configurations': {
'Production': {
'xcode_settings': {
'INSTALL_PATH': '$(JAVASCRIPTCORE_FRAMEWORKS_DIR)/JavaScriptCore.framework/Resources',
},
},
},
'sources': [
'<@(jsc_files)',
'$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
'/usr/lib/libedit.dylib',
],
},
], # targets
}