plasmo_xcodeproj 1.21.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +19 -0
- data/README.md +95 -0
- data/bin/xcodeproj +10 -0
- data/lib/xcodeproj/command/config_dump.rb +91 -0
- data/lib/xcodeproj/command/project_diff.rb +56 -0
- data/lib/xcodeproj/command/show.rb +60 -0
- data/lib/xcodeproj/command/sort.rb +44 -0
- data/lib/xcodeproj/command/target_diff.rb +43 -0
- data/lib/xcodeproj/command.rb +63 -0
- data/lib/xcodeproj/config/other_linker_flags_parser.rb +73 -0
- data/lib/xcodeproj/config.rb +386 -0
- data/lib/xcodeproj/constants.rb +465 -0
- data/lib/xcodeproj/differ.rb +239 -0
- data/lib/xcodeproj/gem_version.rb +5 -0
- data/lib/xcodeproj/helper.rb +30 -0
- data/lib/xcodeproj/plist.rb +94 -0
- data/lib/xcodeproj/project/case_converter.rb +90 -0
- data/lib/xcodeproj/project/object/build_configuration.rb +255 -0
- data/lib/xcodeproj/project/object/build_file.rb +84 -0
- data/lib/xcodeproj/project/object/build_phase.rb +369 -0
- data/lib/xcodeproj/project/object/build_rule.rb +109 -0
- data/lib/xcodeproj/project/object/configuration_list.rb +117 -0
- data/lib/xcodeproj/project/object/container_item_proxy.rb +116 -0
- data/lib/xcodeproj/project/object/file_reference.rb +338 -0
- data/lib/xcodeproj/project/object/group.rb +506 -0
- data/lib/xcodeproj/project/object/helpers/build_settings_array_settings_by_object_version.rb +72 -0
- data/lib/xcodeproj/project/object/helpers/file_references_factory.rb +245 -0
- data/lib/xcodeproj/project/object/helpers/groupable_helper.rb +260 -0
- data/lib/xcodeproj/project/object/native_target.rb +751 -0
- data/lib/xcodeproj/project/object/reference_proxy.rb +86 -0
- data/lib/xcodeproj/project/object/root_object.rb +100 -0
- data/lib/xcodeproj/project/object/swift_package_product_dependency.rb +29 -0
- data/lib/xcodeproj/project/object/swift_package_remote_reference.rb +33 -0
- data/lib/xcodeproj/project/object/target_dependency.rb +94 -0
- data/lib/xcodeproj/project/object.rb +534 -0
- data/lib/xcodeproj/project/object_attributes.rb +522 -0
- data/lib/xcodeproj/project/object_dictionary.rb +210 -0
- data/lib/xcodeproj/project/object_list.rb +223 -0
- data/lib/xcodeproj/project/project_helper.rb +341 -0
- data/lib/xcodeproj/project/uuid_generator.rb +132 -0
- data/lib/xcodeproj/project.rb +874 -0
- data/lib/xcodeproj/scheme/abstract_scheme_action.rb +100 -0
- data/lib/xcodeproj/scheme/analyze_action.rb +19 -0
- data/lib/xcodeproj/scheme/archive_action.rb +59 -0
- data/lib/xcodeproj/scheme/build_action.rb +298 -0
- data/lib/xcodeproj/scheme/buildable_product_runnable.rb +55 -0
- data/lib/xcodeproj/scheme/buildable_reference.rb +129 -0
- data/lib/xcodeproj/scheme/command_line_arguments.rb +162 -0
- data/lib/xcodeproj/scheme/environment_variables.rb +170 -0
- data/lib/xcodeproj/scheme/execution_action.rb +86 -0
- data/lib/xcodeproj/scheme/launch_action.rb +179 -0
- data/lib/xcodeproj/scheme/location_scenario_reference.rb +49 -0
- data/lib/xcodeproj/scheme/macro_expansion.rb +34 -0
- data/lib/xcodeproj/scheme/profile_action.rb +57 -0
- data/lib/xcodeproj/scheme/remote_runnable.rb +92 -0
- data/lib/xcodeproj/scheme/send_email_action_content.rb +84 -0
- data/lib/xcodeproj/scheme/shell_script_action_content.rb +77 -0
- data/lib/xcodeproj/scheme/test_action.rb +394 -0
- data/lib/xcodeproj/scheme/xml_element_wrapper.rb +82 -0
- data/lib/xcodeproj/scheme.rb +375 -0
- data/lib/xcodeproj/user_interface.rb +22 -0
- data/lib/xcodeproj/workspace/file_reference.rb +79 -0
- data/lib/xcodeproj/workspace/group_reference.rb +67 -0
- data/lib/xcodeproj/workspace/reference.rb +40 -0
- data/lib/xcodeproj/workspace.rb +277 -0
- data/lib/xcodeproj/xcodebuild_helper.rb +108 -0
- data/lib/xcodeproj.rb +29 -0
- metadata +208 -0
@@ -0,0 +1,465 @@
|
|
1
|
+
module Xcodeproj
|
2
|
+
# This modules groups all the constants known to Xcodeproj.
|
3
|
+
#
|
4
|
+
module Constants
|
5
|
+
# @return [String] The last known iOS SDK (stable).
|
6
|
+
#
|
7
|
+
LAST_KNOWN_IOS_SDK = '14.0'
|
8
|
+
|
9
|
+
# @return [String] The last known OS X SDK (stable).
|
10
|
+
#
|
11
|
+
LAST_KNOWN_OSX_SDK = '10.15'
|
12
|
+
|
13
|
+
# @return [String] The last known tvOS SDK (stable).
|
14
|
+
#
|
15
|
+
LAST_KNOWN_TVOS_SDK = '14.0'
|
16
|
+
|
17
|
+
# @return [String] The last known watchOS SDK (stable).
|
18
|
+
#
|
19
|
+
LAST_KNOWN_WATCHOS_SDK = '7.0'
|
20
|
+
|
21
|
+
# @return [String] The last known archive version to Xcodeproj.
|
22
|
+
#
|
23
|
+
LAST_KNOWN_ARCHIVE_VERSION = 1
|
24
|
+
|
25
|
+
# @return [String] The last known Swift version (stable).
|
26
|
+
#
|
27
|
+
LAST_KNOWN_SWIFT_VERSION = '5.0'
|
28
|
+
|
29
|
+
# @return [String] The default object version for Xcodeproj.
|
30
|
+
#
|
31
|
+
DEFAULT_OBJECT_VERSION = 46
|
32
|
+
|
33
|
+
# @return [String] The last known object version to Xcodeproj.
|
34
|
+
#
|
35
|
+
LAST_KNOWN_OBJECT_VERSION = 55
|
36
|
+
|
37
|
+
# @return [String] The last known Xcode version to Xcodeproj.
|
38
|
+
#
|
39
|
+
LAST_UPGRADE_CHECK = '1300'
|
40
|
+
|
41
|
+
# @return [String] The last known Xcode version to Xcodeproj.
|
42
|
+
#
|
43
|
+
LAST_SWIFT_UPGRADE_CHECK = '1300'
|
44
|
+
|
45
|
+
# @return [String] The version of `.xcscheme` files supported by Xcodeproj
|
46
|
+
#
|
47
|
+
XCSCHEME_FORMAT_VERSION = '1.3'
|
48
|
+
|
49
|
+
# @return [Hash] The all the known ISAs grouped by superclass.
|
50
|
+
#
|
51
|
+
KNOWN_ISAS = {
|
52
|
+
'AbstractObject' => %w(
|
53
|
+
PBXBuildFile
|
54
|
+
AbstractBuildPhase
|
55
|
+
PBXBuildRule
|
56
|
+
XCBuildConfiguration
|
57
|
+
XCConfigurationList
|
58
|
+
PBXContainerItemProxy
|
59
|
+
PBXFileReference
|
60
|
+
PBXGroup
|
61
|
+
PBXProject
|
62
|
+
PBXTargetDependency
|
63
|
+
PBXReferenceProxy
|
64
|
+
AbstractTarget
|
65
|
+
),
|
66
|
+
|
67
|
+
'AbstractBuildPhase' => %w(
|
68
|
+
PBXCopyFilesBuildPhase
|
69
|
+
PBXResourcesBuildPhase
|
70
|
+
PBXSourcesBuildPhase
|
71
|
+
PBXFrameworksBuildPhase
|
72
|
+
PBXHeadersBuildPhase
|
73
|
+
PBXShellScriptBuildPhase
|
74
|
+
),
|
75
|
+
|
76
|
+
'AbstractTarget' => %w(
|
77
|
+
PBXNativeTarget
|
78
|
+
PBXAggregateTarget
|
79
|
+
PBXLegacyTarget
|
80
|
+
),
|
81
|
+
|
82
|
+
'PBXGroup' => %w(
|
83
|
+
XCVersionGroup
|
84
|
+
PBXVariantGroup
|
85
|
+
),
|
86
|
+
}.freeze
|
87
|
+
|
88
|
+
# @return [Hash] The known file types corresponding to each extension.
|
89
|
+
#
|
90
|
+
FILE_TYPES_BY_EXTENSION = {
|
91
|
+
'a' => 'archive.ar',
|
92
|
+
'apns' => 'text',
|
93
|
+
'app' => 'wrapper.application',
|
94
|
+
'appex' => 'wrapper.app-extension',
|
95
|
+
'bundle' => 'wrapper.plug-in',
|
96
|
+
'cpp' => 'sourcecode.cpp.cpp',
|
97
|
+
'dylib' => 'compiled.mach-o.dylib',
|
98
|
+
'entitlements' => 'text.plist.entitlements',
|
99
|
+
'framework' => 'wrapper.framework',
|
100
|
+
'gif' => 'image.gif',
|
101
|
+
'gpx' => 'text.xml',
|
102
|
+
'h' => 'sourcecode.c.h',
|
103
|
+
'hpp' => 'sourcecode.cpp.h',
|
104
|
+
'm' => 'sourcecode.c.objc',
|
105
|
+
'markdown' => 'text',
|
106
|
+
'mdimporter' => 'wrapper.cfbundle',
|
107
|
+
'modulemap' => 'sourcecode.module',
|
108
|
+
'mov' => 'video.quicktime',
|
109
|
+
'mp3' => 'audio.mp3',
|
110
|
+
'octest' => 'wrapper.cfbundle',
|
111
|
+
'pch' => 'sourcecode.c.h',
|
112
|
+
'plist' => 'text.plist.xml',
|
113
|
+
'png' => 'image.png',
|
114
|
+
'sh' => 'text.script.sh',
|
115
|
+
'sks' => 'file.sks',
|
116
|
+
'storyboard' => 'file.storyboard',
|
117
|
+
'strings' => 'text.plist.strings',
|
118
|
+
'swift' => 'sourcecode.swift',
|
119
|
+
'xcassets' => 'folder.assetcatalog',
|
120
|
+
'xcconfig' => 'text.xcconfig',
|
121
|
+
'xcdatamodel' => 'wrapper.xcdatamodel',
|
122
|
+
'xcodeproj' => 'wrapper.pb-project',
|
123
|
+
'xctest' => 'wrapper.cfbundle',
|
124
|
+
'xib' => 'file.xib',
|
125
|
+
'zip' => 'archive.zip',
|
126
|
+
}.freeze
|
127
|
+
|
128
|
+
# @return [Hash] The compatibility version string for different object versions.
|
129
|
+
#
|
130
|
+
COMPATIBILITY_VERSION_BY_OBJECT_VERSION = {
|
131
|
+
55 => 'Xcode 13.0',
|
132
|
+
54 => 'Xcode 12.0',
|
133
|
+
53 => 'Xcode 11.4',
|
134
|
+
52 => 'Xcode 11.0',
|
135
|
+
51 => 'Xcode 10.0',
|
136
|
+
50 => 'Xcode 9.3',
|
137
|
+
48 => 'Xcode 8.0',
|
138
|
+
47 => 'Xcode 6.3',
|
139
|
+
46 => 'Xcode 3.2',
|
140
|
+
45 => 'Xcode 3.1',
|
141
|
+
}.freeze
|
142
|
+
|
143
|
+
# @return [Hash] The uniform type identifier of various product types.
|
144
|
+
#
|
145
|
+
PRODUCT_TYPE_UTI = {
|
146
|
+
:application => 'com.apple.product-type.application',
|
147
|
+
:application_on_demand_install_capable => 'com.apple.product-type.application.on-demand-install-capable',
|
148
|
+
:framework => 'com.apple.product-type.framework',
|
149
|
+
:dynamic_library => 'com.apple.product-type.library.dynamic',
|
150
|
+
:static_library => 'com.apple.product-type.library.static',
|
151
|
+
:bundle => 'com.apple.product-type.bundle',
|
152
|
+
:octest_bundle => 'com.apple.product-type.bundle',
|
153
|
+
:unit_test_bundle => 'com.apple.product-type.bundle.unit-test',
|
154
|
+
:ui_test_bundle => 'com.apple.product-type.bundle.ui-testing',
|
155
|
+
:app_extension => 'com.apple.product-type.app-extension',
|
156
|
+
:command_line_tool => 'com.apple.product-type.tool',
|
157
|
+
:watch_app => 'com.apple.product-type.application.watchapp',
|
158
|
+
:watch2_app => 'com.apple.product-type.application.watchapp2',
|
159
|
+
:watch2_app_container => 'com.apple.product-type.application.watchapp2-container',
|
160
|
+
:watch_extension => 'com.apple.product-type.watchkit-extension',
|
161
|
+
:watch2_extension => 'com.apple.product-type.watchkit2-extension',
|
162
|
+
:tv_extension => 'com.apple.product-type.tv-app-extension',
|
163
|
+
:messages_application => 'com.apple.product-type.application.messages',
|
164
|
+
:messages_extension => 'com.apple.product-type.app-extension.messages',
|
165
|
+
:sticker_pack => 'com.apple.product-type.app-extension.messages-sticker-pack',
|
166
|
+
:xpc_service => 'com.apple.product-type.xpc-service',
|
167
|
+
}.freeze
|
168
|
+
|
169
|
+
# @return [Hash] The extensions or the various product UTIs.
|
170
|
+
#
|
171
|
+
PRODUCT_UTI_EXTENSIONS = {
|
172
|
+
:application => 'app',
|
173
|
+
:application_on_demand_install_capable => 'app',
|
174
|
+
:framework => 'framework',
|
175
|
+
:dynamic_library => 'dylib',
|
176
|
+
:static_library => 'a',
|
177
|
+
:bundle => 'bundle',
|
178
|
+
:octest_bundle => 'octest',
|
179
|
+
:unit_test_bundle => 'xctest',
|
180
|
+
:ui_test_bundle => 'xctest',
|
181
|
+
:app_extension => 'appex',
|
182
|
+
:messages_application => 'app',
|
183
|
+
:messages_extension => 'appex',
|
184
|
+
:sticker_pack => 'appex',
|
185
|
+
:watch2_extension => 'appex',
|
186
|
+
:watch2_app => 'app',
|
187
|
+
:watch2_app_container => 'app',
|
188
|
+
}.freeze
|
189
|
+
|
190
|
+
# @return [Hash] The common build settings grouped by platform, and build
|
191
|
+
# configuration name.
|
192
|
+
#
|
193
|
+
COMMON_BUILD_SETTINGS = {
|
194
|
+
:all => {
|
195
|
+
# empty?
|
196
|
+
# come from the project settings
|
197
|
+
}.freeze,
|
198
|
+
[:debug] => {
|
199
|
+
# empty?
|
200
|
+
# come from the project settings
|
201
|
+
}.freeze,
|
202
|
+
[:release] => {
|
203
|
+
# empty?
|
204
|
+
# come from the project settings
|
205
|
+
}.freeze,
|
206
|
+
[:ios] => {
|
207
|
+
'SDKROOT' => 'iphoneos',
|
208
|
+
}.freeze,
|
209
|
+
[:osx] => {
|
210
|
+
'SDKROOT' => 'macosx',
|
211
|
+
}.freeze,
|
212
|
+
[:tvos] => {
|
213
|
+
'SDKROOT' => 'appletvos',
|
214
|
+
}.freeze,
|
215
|
+
[:watchos] => {
|
216
|
+
'SDKROOT' => 'watchos',
|
217
|
+
}.freeze,
|
218
|
+
[:debug, :osx] => {
|
219
|
+
# Empty?
|
220
|
+
}.freeze,
|
221
|
+
[:release, :osx] => {
|
222
|
+
# Empty?
|
223
|
+
}.freeze,
|
224
|
+
[:debug, :ios] => {
|
225
|
+
# Empty?
|
226
|
+
}.freeze,
|
227
|
+
[:release, :ios] => {
|
228
|
+
'VALIDATE_PRODUCT' => 'YES',
|
229
|
+
}.freeze,
|
230
|
+
[:debug, :tvos] => {
|
231
|
+
# Empty?
|
232
|
+
}.freeze,
|
233
|
+
[:release, :tvos] => {
|
234
|
+
'VALIDATE_PRODUCT' => 'YES',
|
235
|
+
}.freeze,
|
236
|
+
[:debug, :watchos] => {
|
237
|
+
# Empty?
|
238
|
+
}.freeze,
|
239
|
+
[:release, :watchos] => {
|
240
|
+
'VALIDATE_PRODUCT' => 'YES',
|
241
|
+
}.freeze,
|
242
|
+
[:swift] => {
|
243
|
+
# Empty?
|
244
|
+
# The swift version, like deployment target, is set in
|
245
|
+
# ProjectHelper#common_build_settings
|
246
|
+
}.freeze,
|
247
|
+
[:debug, :application, :swift] => {
|
248
|
+
# Empty?
|
249
|
+
}.freeze,
|
250
|
+
[:debug, :swift] => {
|
251
|
+
# Swift optimization settings are provided by the project settings
|
252
|
+
}.freeze,
|
253
|
+
[:release, :swift] => {
|
254
|
+
# Swift optimization settings are provided by the project settings
|
255
|
+
}.freeze,
|
256
|
+
[:debug, :static_library, :swift] => {
|
257
|
+
}.freeze,
|
258
|
+
[:framework] => {
|
259
|
+
'CURRENT_PROJECT_VERSION' => '1',
|
260
|
+
'DEFINES_MODULE' => 'YES',
|
261
|
+
'DYLIB_COMPATIBILITY_VERSION' => '1',
|
262
|
+
'DYLIB_CURRENT_VERSION' => '1',
|
263
|
+
'DYLIB_INSTALL_NAME_BASE' => '@rpath',
|
264
|
+
'INSTALL_PATH' => '$(LOCAL_LIBRARY_DIR)/Frameworks',
|
265
|
+
'PRODUCT_NAME' => '$(TARGET_NAME:c99extidentifier)',
|
266
|
+
'SKIP_INSTALL' => 'YES',
|
267
|
+
'VERSION_INFO_PREFIX' => '',
|
268
|
+
'VERSIONING_SYSTEM' => 'apple-generic',
|
269
|
+
}.freeze,
|
270
|
+
[:ios, :framework] => {
|
271
|
+
'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/Frameworks @loader_path/Frameworks',
|
272
|
+
'TARGETED_DEVICE_FAMILY' => '1,2',
|
273
|
+
}.freeze,
|
274
|
+
[:osx, :framework] => {
|
275
|
+
'COMBINE_HIDPI_IMAGES' => 'YES',
|
276
|
+
'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/../Frameworks @loader_path/Frameworks',
|
277
|
+
}.freeze,
|
278
|
+
[:watchos, :framework] => {
|
279
|
+
'APPLICATION_EXTENSION_API_ONLY' => 'YES',
|
280
|
+
'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/Frameworks @loader_path/Frameworks',
|
281
|
+
'TARGETED_DEVICE_FAMILY' => '4',
|
282
|
+
}.freeze,
|
283
|
+
[:tvos, :framework] => {
|
284
|
+
'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/Frameworks @loader_path/Frameworks',
|
285
|
+
'TARGETED_DEVICE_FAMILY' => '3',
|
286
|
+
}.freeze,
|
287
|
+
[:framework, :swift] => {
|
288
|
+
'DEFINES_MODULE' => 'YES',
|
289
|
+
}.freeze,
|
290
|
+
[:osx, :static_library] => {
|
291
|
+
'EXECUTABLE_PREFIX' => 'lib',
|
292
|
+
'SKIP_INSTALL' => 'YES',
|
293
|
+
}.freeze,
|
294
|
+
[:ios, :static_library] => {
|
295
|
+
'OTHER_LDFLAGS' => '-ObjC',
|
296
|
+
'SKIP_INSTALL' => 'YES',
|
297
|
+
'TARGETED_DEVICE_FAMILY' => '1,2',
|
298
|
+
}.freeze,
|
299
|
+
[:watchos, :static_library] => {
|
300
|
+
'OTHER_LDFLAGS' => '-ObjC',
|
301
|
+
'SKIP_INSTALL' => 'YES',
|
302
|
+
'TARGETED_DEVICE_FAMILY' => '4',
|
303
|
+
}.freeze,
|
304
|
+
[:tvos, :static_library] => {
|
305
|
+
'OTHER_LDFLAGS' => '-ObjC',
|
306
|
+
'SKIP_INSTALL' => 'YES',
|
307
|
+
'TARGETED_DEVICE_FAMILY' => '3',
|
308
|
+
}.freeze,
|
309
|
+
[:osx, :dynamic_library] => {
|
310
|
+
'DYLIB_COMPATIBILITY_VERSION' => '1',
|
311
|
+
'DYLIB_CURRENT_VERSION' => '1',
|
312
|
+
'EXECUTABLE_PREFIX' => 'lib',
|
313
|
+
'SKIP_INSTALL' => 'YES',
|
314
|
+
}.freeze,
|
315
|
+
[:application] => {
|
316
|
+
'ASSETCATALOG_COMPILER_APPICON_NAME' => 'AppIcon',
|
317
|
+
'ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME' => 'AccentColor',
|
318
|
+
}.freeze,
|
319
|
+
[:ios, :application] => {
|
320
|
+
'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/Frameworks',
|
321
|
+
'TARGETED_DEVICE_FAMILY' => '1,2',
|
322
|
+
}.freeze,
|
323
|
+
[:osx, :application] => {
|
324
|
+
'COMBINE_HIDPI_IMAGES' => 'YES',
|
325
|
+
'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/../Frameworks',
|
326
|
+
}.freeze,
|
327
|
+
[:watchos, :application] => {
|
328
|
+
'SKIP_INSTALL' => 'YES',
|
329
|
+
'TARGETED_DEVICE_FAMILY' => '4',
|
330
|
+
}.freeze,
|
331
|
+
[:tvos, :application] => {
|
332
|
+
'ASSETCATALOG_COMPILER_APPICON_NAME' => 'App Icon & Top Shelf Image',
|
333
|
+
'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/Frameworks',
|
334
|
+
'TARGETED_DEVICE_FAMILY' => '3',
|
335
|
+
}.freeze,
|
336
|
+
[:tvos, :application, :swift] => {
|
337
|
+
'ENABLE_PREVIEWS' => 'YES',
|
338
|
+
}.freeze,
|
339
|
+
[:watchos, :application, :swift] => {
|
340
|
+
'ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES' => 'YES',
|
341
|
+
}.freeze,
|
342
|
+
[:bundle] => {
|
343
|
+
'WRAPPER_EXTENSION' => 'bundle',
|
344
|
+
'SKIP_INSTALL' => 'YES',
|
345
|
+
}.freeze,
|
346
|
+
[:ios, :bundle] => {
|
347
|
+
'SDKROOT' => 'iphoneos',
|
348
|
+
}.freeze,
|
349
|
+
[:osx, :bundle] => {
|
350
|
+
'COMBINE_HIDPI_IMAGES' => 'YES',
|
351
|
+
'INSTALL_PATH' => '$(LOCAL_LIBRARY_DIR)/Bundles',
|
352
|
+
'SDKROOT' => 'macosx',
|
353
|
+
}.freeze,
|
354
|
+
}.freeze
|
355
|
+
|
356
|
+
# @return [Hash] The default build settings for a new project.
|
357
|
+
#
|
358
|
+
PROJECT_DEFAULT_BUILD_SETTINGS = {
|
359
|
+
:all => {
|
360
|
+
'ALWAYS_SEARCH_USER_PATHS' => 'NO',
|
361
|
+
'CLANG_ANALYZER_NONNULL' => 'YES',
|
362
|
+
'CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION' => 'YES_AGGRESSIVE',
|
363
|
+
'CLANG_CXX_LANGUAGE_STANDARD' => 'gnu++14',
|
364
|
+
'CLANG_CXX_LIBRARY' => 'libc++',
|
365
|
+
'CLANG_ENABLE_MODULES' => 'YES',
|
366
|
+
'CLANG_ENABLE_OBJC_ARC' => 'YES',
|
367
|
+
'CLANG_ENABLE_OBJC_WEAK' => 'YES',
|
368
|
+
'CLANG_WARN__DUPLICATE_METHOD_MATCH' => 'YES',
|
369
|
+
'CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING' => 'YES',
|
370
|
+
'CLANG_WARN_BOOL_CONVERSION' => 'YES',
|
371
|
+
'CLANG_WARN_COMMA' => 'YES',
|
372
|
+
'CLANG_WARN_CONSTANT_CONVERSION' => 'YES',
|
373
|
+
'CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS' => 'YES',
|
374
|
+
'CLANG_WARN_DIRECT_OBJC_ISA_USAGE' => 'YES_ERROR',
|
375
|
+
'CLANG_WARN_DOCUMENTATION_COMMENTS' => 'YES',
|
376
|
+
'CLANG_WARN_EMPTY_BODY' => 'YES',
|
377
|
+
'CLANG_WARN_ENUM_CONVERSION' => 'YES',
|
378
|
+
'CLANG_WARN_INFINITE_RECURSION' => 'YES',
|
379
|
+
'CLANG_WARN_INT_CONVERSION' => 'YES',
|
380
|
+
'CLANG_WARN_NON_LITERAL_NULL_CONVERSION' => 'YES',
|
381
|
+
'CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF' => 'YES',
|
382
|
+
'CLANG_WARN_OBJC_LITERAL_CONVERSION' => 'YES',
|
383
|
+
'CLANG_WARN_OBJC_ROOT_CLASS' => 'YES_ERROR',
|
384
|
+
'CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER' => 'YES',
|
385
|
+
'CLANG_WARN_RANGE_LOOP_ANALYSIS' => 'YES',
|
386
|
+
'CLANG_WARN_STRICT_PROTOTYPES' => 'YES',
|
387
|
+
'CLANG_WARN_SUSPICIOUS_MOVE' => 'YES',
|
388
|
+
'CLANG_WARN_UNGUARDED_AVAILABILITY' => 'YES_AGGRESSIVE',
|
389
|
+
'CLANG_WARN_UNREACHABLE_CODE' => 'YES',
|
390
|
+
'COPY_PHASE_STRIP' => 'NO',
|
391
|
+
'ENABLE_STRICT_OBJC_MSGSEND' => 'YES',
|
392
|
+
'GCC_C_LANGUAGE_STANDARD' => 'gnu11',
|
393
|
+
'GCC_NO_COMMON_BLOCKS' => 'YES',
|
394
|
+
'GCC_WARN_64_TO_32_BIT_CONVERSION' => 'YES',
|
395
|
+
'GCC_WARN_ABOUT_RETURN_TYPE' => 'YES_ERROR',
|
396
|
+
'GCC_WARN_UNDECLARED_SELECTOR' => 'YES',
|
397
|
+
'GCC_WARN_UNINITIALIZED_AUTOS' => 'YES_AGGRESSIVE',
|
398
|
+
'GCC_WARN_UNUSED_FUNCTION' => 'YES',
|
399
|
+
'GCC_WARN_UNUSED_VARIABLE' => 'YES',
|
400
|
+
'MTL_FAST_MATH' => 'YES',
|
401
|
+
'PRODUCT_NAME' => '$(TARGET_NAME)',
|
402
|
+
'SWIFT_VERSION' => '5.0',
|
403
|
+
},
|
404
|
+
:release => {
|
405
|
+
'DEBUG_INFORMATION_FORMAT' => 'dwarf-with-dsym',
|
406
|
+
'ENABLE_NS_ASSERTIONS' => 'NO',
|
407
|
+
'MTL_ENABLE_DEBUG_INFO' => 'NO',
|
408
|
+
'SWIFT_COMPILATION_MODE' => 'wholemodule',
|
409
|
+
'SWIFT_OPTIMIZATION_LEVEL' => '-O',
|
410
|
+
}.freeze,
|
411
|
+
:debug => {
|
412
|
+
'DEBUG_INFORMATION_FORMAT' => 'dwarf',
|
413
|
+
'ENABLE_TESTABILITY' => 'YES',
|
414
|
+
'GCC_DYNAMIC_NO_PIC' => 'NO',
|
415
|
+
'GCC_OPTIMIZATION_LEVEL' => '0',
|
416
|
+
'GCC_PREPROCESSOR_DEFINITIONS' => ['DEBUG=1', '$(inherited)'],
|
417
|
+
'MTL_ENABLE_DEBUG_INFO' => 'INCLUDE_SOURCE',
|
418
|
+
'ONLY_ACTIVE_ARCH' => 'YES',
|
419
|
+
'SWIFT_ACTIVE_COMPILATION_CONDITIONS' => 'DEBUG',
|
420
|
+
'SWIFT_OPTIMIZATION_LEVEL' => '-Onone',
|
421
|
+
}.freeze,
|
422
|
+
}.freeze
|
423
|
+
|
424
|
+
# @return [Hash] The corresponding numeric value of each copy build phase
|
425
|
+
# destination.
|
426
|
+
#
|
427
|
+
COPY_FILES_BUILD_PHASE_DESTINATIONS = {
|
428
|
+
:absolute_path => '0',
|
429
|
+
:products_directory => '16',
|
430
|
+
:wrapper => '1',
|
431
|
+
:resources => '7', # default
|
432
|
+
:executables => '6',
|
433
|
+
:java_resources => '15',
|
434
|
+
:frameworks => '10',
|
435
|
+
:shared_frameworks => '11',
|
436
|
+
:shared_support => '12',
|
437
|
+
:plug_ins => '13',
|
438
|
+
}.freeze
|
439
|
+
|
440
|
+
# @return [Hash] The corresponding numeric value of each proxy type for
|
441
|
+
# PBXContainerItemProxy.
|
442
|
+
PROXY_TYPES = {
|
443
|
+
:native_target => '1',
|
444
|
+
:reference => '2',
|
445
|
+
}.freeze
|
446
|
+
|
447
|
+
# @return [Array] The extensions which are associated with header files.
|
448
|
+
#
|
449
|
+
HEADER_FILES_EXTENSIONS = %w(.h .hh .hpp .ipp .tpp .hxx .def .inl .inc).freeze
|
450
|
+
|
451
|
+
# @return [Array] The keywords Xcode use to identify a build setting can
|
452
|
+
# inherit values from a previous precedence level
|
453
|
+
INHERITED_KEYWORDS = %w(
|
454
|
+
$(inherited)
|
455
|
+
${inherited}
|
456
|
+
).freeze
|
457
|
+
|
458
|
+
# @return [Hash] Possible types for a scheme's 'ExecutionAction' node
|
459
|
+
#
|
460
|
+
EXECUTION_ACTION_TYPE = {
|
461
|
+
:shell_script => 'Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction',
|
462
|
+
:send_email => 'Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.SendEmailAction',
|
463
|
+
}.freeze
|
464
|
+
end
|
465
|
+
end
|