Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
C
cocoapods
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
gengmeiios
cocoapods
Commits
6c91dad6
Commit
6c91dad6
authored
Sep 09, 2013
by
Fabio Pelosin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[PodsProjectGenerator] Support for removing Pod and aggregate targets
parent
44a0343f
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
80 additions
and
51 deletions
+80
-51
Gemfile.lock
Gemfile.lock
+2
-2
pods_project_generator.rb
lib/cocoapods/installer/pods_project_generator.rb
+77
-47
project.rb
lib/cocoapods/project.rb
+0
-1
cocoapods-integration-specs
spec/cocoapods-integration-specs
+1
-1
No files found.
Gemfile.lock
View file @
6c91dad6
...
...
@@ -17,7 +17,7 @@ GIT
GIT
remote: https://github.com/CocoaPods/Xcodeproj.git
revision:
84782b972ef24e7565eaf9ab96a0bb1cb4c0521f
revision:
23d64ce79dd23e928dadac986a858a13c07ac988
branch: master
specs:
xcodeproj (0.10.1)
...
...
@@ -41,7 +41,7 @@ GIT
GIT
remote: https://github.com/irrationalfab/PrettyBacon.git
revision:
0da7e231bf597005aaa4efb4c2cd837336a6b42b
revision:
59cde2c52a3211c06f894e7324e5e4fac9d8476a
branch: master
specs:
prettybacon (0.0.1)
...
...
lib/cocoapods/installer/pods_project_generator.rb
View file @
6c91dad6
...
...
@@ -85,7 +85,9 @@ module Pod
else
UI
.
message
"- Opening existing project"
do
@project
=
Pod
::
Project
.
open
(
sandbox
.
project_path
)
remove_groups
detect_native_targets
# remove_unrecognized_targets
end
end
...
...
@@ -94,6 +96,67 @@ module Pod
sandbox
.
project
=
project
end
def
remove_groups
pod_names
=
all_pod_targets
.
map
(
&
:pod_name
).
uniq
.
sort
groups_to_remove
=
[]
groups_to_remove
<<
project
.
pod_groups
.
reject
do
|
group
|
pod_names
.
include?
(
group
.
display_name
)
end
aggregate_names
=
aggregate_targets
.
map
(
&
:label
).
uniq
.
sort
groups_to_remove
<<
project
.
support_files_group
.
children
.
reject
do
|
group
|
aggregate_names
.
include?
(
group
.
display_name
)
end
groups_to_remove
.
flatten
.
each
do
|
group
|
remove_group
(
group
)
end
end
# Removes the given group taking care of removing any referenced target.
#
# @return [void]
#
def
remove_group
(
group
)
UI
.
message
"- Removing `
#{
group
}
` group"
do
group
.
groups
.
each
do
|
child
|
remove_group
(
child
)
end
UI
.
message
"- Removing targets"
do
targets
=
project
.
targets
.
select
{
|
target
|
group
.
children
.
include?
(
target
.
product_reference
)
}
targets
.
each
do
|
target
|
remove_target
(
target
)
end
end
group
.
remove_from_project
end
end
# Removes the given target removing any reference to it from any other
# target.
#
# @return [void]
#
def
remove_target
(
target
)
UI
.
message
"- Removing `
#{
target
.
display_name
}
` target"
do
target
.
referrers
.
each
do
|
ref
|
if
ref
.
isa
==
'PBXTargetDependency'
ref
.
remove_from_project
end
end
target
.
remove_from_project
target
.
product_reference
.
referrers
.
each
do
|
ref
|
if
ref
.
isa
==
'PBXBuildFile'
ref
.
remove_from_project
end
end
target
.
product_reference
.
remove_from_project
end
end
# Matches the native targets of the Pods project with the targets
# generated by the analyzer.
#
...
...
@@ -101,27 +164,34 @@ module Pod
#
def
detect_native_targets
UI
.
message
"- Matching targets"
do
p
native_targets_by_name
=
project
.
targets
.
group_by
(
&
:name
)
p
cp_targets
=
aggregate_targets
+
all_pod_targets
native_targets_by_name
=
project
.
targets
.
group_by
(
&
:name
)
native_targets_to_remove
=
native_targets_by_name
.
keys
.
dup
cp_targets
=
aggregate_targets
+
all_pod_targets
cp_targets
.
each
do
|
pod_target
|
native_targets
=
native_targets_by_name
[
pod_target
.
label
]
if
native_targets
pod_target
.
target
=
native_targets
.
first
native_targets_to_remove
.
delete
(
pod_target
.
label
)
end
end
native_targets_to_remove
.
each
do
|
target_name
|
remove_target
(
native_targets_by_name
[
target_name
].
first
)
end
end
end
# @return [void]
#
def
sync_pod_targets
pods_to_remove
.
each
do
|
name
|
remove_pod
(
name
)
end
pods_to_install
.
each
do
|
name
|
add_pod
(
name
)
end
all_pod_targets
.
each
do
|
target
|
gen
=
SupportFilesGenerator
.
new
(
target
,
sandbox
.
project
)
gen
.
generate!
end
end
# Adds and removes aggregate targets to the
...
...
@@ -143,10 +213,6 @@ module Pod
add_aggregate_target
(
target
)
end
targets_to_remove
.
each
do
|
target
|
remove_aggregate_target
(
target
)
end
aggregate_targets
.
each
do
|
target
|
unless
target
.
target_definition
.
empty?
gen
=
SupportFilesGenerator
.
new
(
target
,
sandbox
.
project
)
...
...
@@ -155,7 +221,6 @@ module Pod
end
end
#
#
def
add_aggregate_target
(
target
)
...
...
@@ -164,19 +229,10 @@ module Pod
end
end
#
#
def
remove_aggregate_target
(
target
)
UI
.
message
"- Removing `
#{
target
.
label
}
`"
do
target
.
remove_from_project
target
.
product_reference
.
remove_from_project
project
.
support_files_group
[
target
.
name
].
remove_from_project
end
end
#
#
def
add_pod
(
name
)
remove_group
(
project
.
pod_group
(
name
))
if
project
.
pod_group
(
name
)
UI
.
message
"- Installing `
#{
name
}
`"
do
pod_targets
=
all_pod_targets
.
select
{
|
target
|
target
.
pod_name
==
name
}
...
...
@@ -191,37 +247,11 @@ module Pod
pod_targets
.
each
do
|
pod_target
|
UI
.
message
"- Installing targets"
do
PodTargetInstaller
.
new
(
sandbox
,
pod_target
).
install!
gen
=
SupportFilesGenerator
.
new
(
pod_target
,
sandbox
.
project
)
gen
.
generate!
end
end
end
end
#
#
def
remove_pod
(
name
)
UI
.
message
"- Removing `
#{
name
}
`"
do
products_group
=
project
.
group_for_spec
(
name
,
:products
)
UI
.
message
"- Removing targets"
do
targets
=
project
.
targets
.
select
{
|
target
|
products_group
.
children
.
include?
(
target
.
product_reference
)
}
targets
.
each
do
|
target
|
target
.
referrers
.
each
do
|
ref
|
if
ref
.
isa
==
'PBXTargetDependency'
ref
.
remove_from_project
end
end
target
.
remove_from_project
end
end
UI
.
message
"- Removing file references"
do
group
=
project
.
pod_group
(
name
)
group
.
remove_from_project
end
end
end
# Sets the dependencies of the targets.
#
...
...
lib/cocoapods/project.rb
View file @
6c91dad6
...
...
@@ -81,7 +81,6 @@ module Pod
# @return [PBXGroup] The new group.
#
def
add_pod_group
(
pod_name
,
path
,
development
=
false
,
absolute
=
false
)
raise
"[BUG]"
if
pod_group
(
pod_name
)
parent_group
=
development
?
development_pods
:
pods
source_tree
=
absolute
?
:
absolute
:
:group
group
=
parent_group
.
new_group
(
pod_name
,
path
,
source_tree
)
...
...
cocoapods-integration-specs
@
e9a2805c
Subproject commit e
788a4fd9faa2144344d9ead4f76c2d119d1a766
Subproject commit e
9a2805c54fc2f61db25dc5936d15a19cb4c2c13
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment