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