{ '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 }