cocoapods 0.39.0.beta.1 → 0.39.0.beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/lib/cocoapods/gem_version.rb +1 -1
- metadata +35 -63
- data/lib/cocoapods/command/cache/clean.rb +0 -90
- data/lib/cocoapods/command/cache/list.rb +0 -69
- data/lib/cocoapods/command/repo/add.rb +0 -53
- data/lib/cocoapods/command/repo/lint.rb +0 -77
- data/lib/cocoapods/command/repo/list.rb +0 -93
- data/lib/cocoapods/command/repo/push.rb +0 -223
- data/lib/cocoapods/command/repo/remove.rb +0 -36
- data/lib/cocoapods/command/repo/update.rb +0 -27
- data/lib/cocoapods/command/spec/cat.rb +0 -51
- data/lib/cocoapods/command/spec/create.rb +0 -279
- data/lib/cocoapods/command/spec/edit.rb +0 -94
- data/lib/cocoapods/command/spec/lint.rb +0 -119
- data/lib/cocoapods/command/spec/which.rb +0 -43
- data/lib/cocoapods/generator/acknowledgements/markdown.rb +0 -38
- data/lib/cocoapods/generator/acknowledgements/plist.rb +0 -80
- data/lib/cocoapods/generator/xcconfig/aggregate_xcconfig.rb +0 -260
- data/lib/cocoapods/generator/xcconfig/pod_xcconfig.rb +0 -83
- data/lib/cocoapods/generator/xcconfig/xcconfig_helper.rb +0 -213
- data/lib/cocoapods/installer/analyzer/analysis_result.rb +0 -46
- data/lib/cocoapods/installer/analyzer/locking_dependency_analyzer.rb +0 -79
- data/lib/cocoapods/installer/analyzer/sandbox_analyzer.rb +0 -262
- data/lib/cocoapods/installer/analyzer/specs_state.rb +0 -76
- data/lib/cocoapods/installer/analyzer/target_inspection_result.rb +0 -41
- data/lib/cocoapods/installer/analyzer/target_inspector.rb +0 -203
- data/lib/cocoapods/installer/target_installer/aggregate_target_installer.rb +0 -186
- data/lib/cocoapods/installer/target_installer/pod_target_installer.rb +0 -297
- data/lib/cocoapods/installer/user_project_integrator/target_integrator.rb +0 -318
- data/lib/cocoapods/installer/user_project_integrator/target_integrator/xcconfig_integrator.rb +0 -173
data/lib/cocoapods/installer/user_project_integrator/target_integrator/xcconfig_integrator.rb
DELETED
@@ -1,173 +0,0 @@
|
|
1
|
-
module Pod
|
2
|
-
class Installer
|
3
|
-
class UserProjectIntegrator
|
4
|
-
class TargetIntegrator
|
5
|
-
# Configures an user target to use the CocoaPods xcconfigs which allow
|
6
|
-
# lo link against the Pods.
|
7
|
-
#
|
8
|
-
class XCConfigIntegrator
|
9
|
-
# Integrates the user target.
|
10
|
-
#
|
11
|
-
# @param [Target::AggregateTarget] pod_bundle
|
12
|
-
# The Pods bundle.
|
13
|
-
#
|
14
|
-
# @param [Array<PBXNativeTarget>] targets
|
15
|
-
# The native targets associated which should be integrated
|
16
|
-
# with the Pod bundle.
|
17
|
-
#
|
18
|
-
# @return [Bool] whether any changes to the project were made.
|
19
|
-
#
|
20
|
-
def self.integrate(pod_bundle, targets)
|
21
|
-
changes = false
|
22
|
-
targets.each do |target|
|
23
|
-
target.build_configurations.each do |config|
|
24
|
-
changes = true if update_to_cocoapods_0_34(pod_bundle, targets)
|
25
|
-
changes = true if set_target_xcconfig(pod_bundle, target, config)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
changes
|
29
|
-
end
|
30
|
-
|
31
|
-
private
|
32
|
-
|
33
|
-
# @!group Integration steps
|
34
|
-
#-------------------------------------------------------------------#
|
35
|
-
|
36
|
-
# Removes the xcconfig used up to CocoaPods 0.33 from the project and
|
37
|
-
# deletes the file if it exists.
|
38
|
-
#
|
39
|
-
# @param [Target::AggregateTarget] pod_bundle
|
40
|
-
# The Pods bundle.
|
41
|
-
#
|
42
|
-
# @param [Array<XcodeProj::PBXNativeTarget>] targets
|
43
|
-
# The native targets.
|
44
|
-
#
|
45
|
-
# @return [Bool] whether any changes to the project were made.
|
46
|
-
#
|
47
|
-
# @todo This can be removed for CocoaPods 1.0
|
48
|
-
#
|
49
|
-
def self.update_to_cocoapods_0_34(pod_bundle, targets)
|
50
|
-
sandbox = pod_bundle.sandbox
|
51
|
-
changes = false
|
52
|
-
targets.map(&:project).uniq.each do |project|
|
53
|
-
file_refs = project.files.select do |file_ref|
|
54
|
-
path = file_ref.path.to_s
|
55
|
-
if File.extname(path) == '.xcconfig'
|
56
|
-
absolute_path = file_ref.real_path.to_s
|
57
|
-
absolute_path.start_with?(sandbox.root.to_s) &&
|
58
|
-
!absolute_path.start_with?(sandbox.target_support_files_root.to_s)
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
file_refs.uniq.each do |file_ref|
|
63
|
-
UI.message "- Removing (#{file_ref.path})" do
|
64
|
-
file_ref.remove_from_project
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
changes = true unless file_refs.empty?
|
69
|
-
end
|
70
|
-
changes
|
71
|
-
end
|
72
|
-
|
73
|
-
# Creates a file reference to the xcconfig generated by
|
74
|
-
# CocoaPods (if needed) and sets it as the base configuration of
|
75
|
-
# build configuration of the user target.
|
76
|
-
#
|
77
|
-
# @param [Target::AggregateTarget] pod_bundle
|
78
|
-
# The Pods bundle.
|
79
|
-
#
|
80
|
-
# @param [PBXNativeTarget] target
|
81
|
-
# The native target.
|
82
|
-
#
|
83
|
-
# @param [Xcodeproj::XCBuildConfiguration] config
|
84
|
-
# The build configuration.
|
85
|
-
#
|
86
|
-
# @return [Boolean] Indicates whether or not any changes were made.
|
87
|
-
#
|
88
|
-
def self.set_target_xcconfig(pod_bundle, target, config)
|
89
|
-
path = pod_bundle.xcconfig_relative_path(config.name)
|
90
|
-
group = config.project['Pods'] || config.project.new_group('Pods')
|
91
|
-
file_ref = group.files.find { |f| f.path == path }
|
92
|
-
if config.base_configuration_reference &&
|
93
|
-
config.base_configuration_reference != file_ref
|
94
|
-
unless xcconfig_includes_target_xcconfig?(config.base_configuration_reference, path)
|
95
|
-
UI.warn 'CocoaPods did not set the base configuration of your ' \
|
96
|
-
'project because your project already has a custom ' \
|
97
|
-
'config set. In order for CocoaPods integration to work at ' \
|
98
|
-
'all, please either set the base configurations of the target ' \
|
99
|
-
"`#{target.name}` to `#{path}` or include the `#{path}` in your " \
|
100
|
-
'build configuration.'
|
101
|
-
end
|
102
|
-
elsif config.base_configuration_reference.nil? || file_ref.nil?
|
103
|
-
file_ref ||= group.new_file(path)
|
104
|
-
config.base_configuration_reference = file_ref
|
105
|
-
return true
|
106
|
-
end
|
107
|
-
false
|
108
|
-
end
|
109
|
-
|
110
|
-
private
|
111
|
-
|
112
|
-
# @!group Private helpers
|
113
|
-
#-------------------------------------------------------------------#
|
114
|
-
|
115
|
-
# Prints a warning informing the user that a build configuration of
|
116
|
-
# the integrated target is overriding the CocoaPods build settings.
|
117
|
-
#
|
118
|
-
# @param [Target::AggregateTarget] pod_bundle
|
119
|
-
# The Pods bundle.
|
120
|
-
#
|
121
|
-
# @param [XcodeProj::PBXNativeTarget] target
|
122
|
-
# The native target.
|
123
|
-
#
|
124
|
-
# @param [Xcodeproj::XCBuildConfiguration] config
|
125
|
-
# The build configuration.
|
126
|
-
#
|
127
|
-
# @param [String] key
|
128
|
-
# The key of the overridden build setting.
|
129
|
-
#
|
130
|
-
def self.print_override_warning(pod_bundle, target, config, key)
|
131
|
-
actions = [
|
132
|
-
'Use the `$(inherited)` flag, or',
|
133
|
-
'Remove the build settings from the target.',
|
134
|
-
]
|
135
|
-
message = "The `#{target.name} [#{config.name}]` " \
|
136
|
-
"target overrides the `#{key}` build setting defined in " \
|
137
|
-
"`#{pod_bundle.xcconfig_relative_path(config.name)}'. " \
|
138
|
-
'This can lead to problems with the CocoaPods installation'
|
139
|
-
UI.warn(message, actions)
|
140
|
-
end
|
141
|
-
|
142
|
-
# Naively checks to see if a given PBXFileReference imports a given
|
143
|
-
# path.
|
144
|
-
#
|
145
|
-
# @param [PBXFileReference] base_config_ref
|
146
|
-
# A file reference to an `.xcconfig` file.
|
147
|
-
#
|
148
|
-
# @param [String] target_config_path
|
149
|
-
# The path to check for.
|
150
|
-
#
|
151
|
-
SILENCE_WARNINGS_STRING = '// @COCOAPODS_SILENCE_WARNINGS@ //'
|
152
|
-
def self.xcconfig_includes_target_xcconfig?(base_config_ref, target_config_path)
|
153
|
-
return unless base_config_ref && base_config_ref.real_path.file?
|
154
|
-
regex = /
|
155
|
-
^(
|
156
|
-
(\s* # Possible, but unlikely, space before include statement
|
157
|
-
\#include\s+ # Include statement
|
158
|
-
['"] # Open quote
|
159
|
-
(.*\/)? # Possible prefix to path
|
160
|
-
#{Regexp.quote(target_config_path)} # The path should end in the target_config_path
|
161
|
-
['"] # Close quote
|
162
|
-
)
|
163
|
-
|
|
164
|
-
(#{Regexp.quote(SILENCE_WARNINGS_STRING)}) # Token to treat xcconfig as good and silence pod install warnings
|
165
|
-
)
|
166
|
-
/x
|
167
|
-
base_config_ref.real_path.readlines.find { |line| line =~ regex }
|
168
|
-
end
|
169
|
-
end
|
170
|
-
end
|
171
|
-
end
|
172
|
-
end
|
173
|
-
end
|