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
5d724d44
Commit
5d724d44
authored
Oct 28, 2014
by
Eloy Durán
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[Sandbox::FileAccessor] Don't symlink framework headers, just list them.
parent
30ebfc4c
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
27 additions
and
34 deletions
+27
-34
CHANGELOG.md
CHANGELOG.md
+7
-2
file_references_installer.rb
lib/cocoapods/installer/file_references_installer.rb
+4
-17
file_accessor.rb
lib/cocoapods/sandbox/file_accessor.rb
+6
-1
file_references_installer_spec.rb
spec/unit/installer/file_references_installer_spec.rb
+3
-14
file_accessor_spec.rb
spec/unit/sandbox/file_accessor_spec.rb
+7
-0
No files found.
CHANGELOG.md
View file @
5d724d44
...
@@ -22,8 +22,8 @@ To install or update CocoaPods see this [guide](http://docs.cocoapods.org/guides
...
@@ -22,8 +22,8 @@ To install or update CocoaPods see this [guide](http://docs.cocoapods.org/guides
##### Enhancements
##### Enhancements
*
The
`pod push`
has been removed as it has been deprecated in favour of
`pod
*
The
`pod push`
command has been removed as it has been deprecated in favour of
repo push`
in CocoaPods 0.33.
`pod
repo push`
in CocoaPods 0.33.
[
Fabio Pelosin
](
https://github.com/fabiopelosin
)
[
Fabio Pelosin
](
https://github.com/fabiopelosin
)
*
Refactorings in preparation to framework support, which could break usages
*
Refactorings in preparation to framework support, which could break usages
...
@@ -55,6 +55,11 @@ To install or update CocoaPods see this [guide](http://docs.cocoapods.org/guides
...
@@ -55,6 +55,11 @@ To install or update CocoaPods see this [guide](http://docs.cocoapods.org/guides
[
Daniel Tomlinson
](
https://github.com/DanielTomlinson
)
[
Daniel Tomlinson
](
https://github.com/DanielTomlinson
)
[
#2562
](
https://github.com/CocoaPods/CocoaPods/issues/2562
)
[
#2562
](
https://github.com/CocoaPods/CocoaPods/issues/2562
)
*
`Sandbox::FileAccessor`
now optionally includes expanded paths of headers of
vendored frameworks in
`public_headers`
.
[
Eloy Durán
](
https://github.com/alloy
)
[
#2722
](
https://github.com/CocoaPods/CocoaPods/pull/2722
)
##### Bug Fixes
##### Bug Fixes
*
Do not try to clone spec-repos in
`/`
.
*
Do not try to clone spec-repos in
`/`
.
...
...
lib/cocoapods/installer/file_references_installer.rb
View file @
5d724d44
...
@@ -117,15 +117,11 @@ module Pod
...
@@ -117,15 +117,11 @@ module Pod
library
.
build_headers
.
add_search_path
(
headers_sandbox
,
library
.
platform
)
library
.
build_headers
.
add_search_path
(
headers_sandbox
,
library
.
platform
)
sandbox
.
public_headers
.
add_search_path
(
headers_sandbox
,
library
.
platform
)
sandbox
.
public_headers
.
add_search_path
(
headers_sandbox
,
library
.
platform
)
header_mappings
(
headers_sandbox
,
file_accessor
,
file_accessor
.
headers
,
false
).
each
do
|
namespaced_path
,
files
|
header_mappings
(
headers_sandbox
,
file_accessor
,
file_accessor
.
headers
).
each
do
|
namespaced_path
,
files
|
library
.
build_headers
.
add_files
(
namespaced_path
,
files
,
library
.
platform
)
library
.
build_headers
.
add_files
(
namespaced_path
,
files
,
library
.
platform
)
end
end
header_mappings
(
headers_sandbox
,
file_accessor
,
file_accessor
.
public_headers
,
false
).
each
do
|
namespaced_path
,
files
|
header_mappings
(
headers_sandbox
,
file_accessor
,
file_accessor
.
public_headers
).
each
do
|
namespaced_path
,
files
|
sandbox
.
public_headers
.
add_files
(
namespaced_path
,
files
,
library
.
platform
)
end
header_mappings
(
headers_sandbox
,
file_accessor
,
file_accessor
.
vendored_frameworks_headers
,
true
).
each
do
|
namespaced_path
,
files
|
sandbox
.
public_headers
.
add_files
(
namespaced_path
,
files
,
library
.
platform
)
sandbox
.
public_headers
.
add_files
(
namespaced_path
,
files
,
library
.
platform
)
end
end
end
end
...
@@ -181,15 +177,11 @@ module Pod
...
@@ -181,15 +177,11 @@ module Pod
# @param [Array<Pathname>] headers
# @param [Array<Pathname>] headers
# The absolute paths of the headers which need to be mapped.
# The absolute paths of the headers which need to be mapped.
#
#
# @param [Boolean] framework_headers
# Whether or not these headers should get an extra framework name
# namespace. E.g. `Bananas/Bananas.h` instead of `Bananas.h`.
#
# @return [Hash{Pathname => Array<Pathname>}] A hash containing the
# @return [Hash{Pathname => Array<Pathname>}] A hash containing the
# headers folders as the keys and the absolute paths of the
# headers folders as the keys and the absolute paths of the
# header files as the values.
# header files as the values.
#
#
def
header_mappings
(
headers_sandbox
,
file_accessor
,
headers
,
framework_headers
)
def
header_mappings
(
headers_sandbox
,
file_accessor
,
headers
)
consumer
=
file_accessor
.
spec_consumer
consumer
=
file_accessor
.
spec_consumer
dir
=
headers_sandbox
dir
=
headers_sandbox
dir
+=
consumer
.
header_dir
if
consumer
.
header_dir
dir
+=
consumer
.
header_dir
if
consumer
.
header_dir
...
@@ -197,12 +189,7 @@ module Pod
...
@@ -197,12 +189,7 @@ module Pod
mappings
=
{}
mappings
=
{}
headers
.
each
do
|
header
|
headers
.
each
do
|
header
|
sub_dir
=
dir
sub_dir
=
dir
if
framework_headers
if
consumer
.
header_mappings_dir
framework_filename
=
header
.
each_filename
.
find
do
|
filename
|
File
.
extname
(
filename
)
==
'.framework'
end
sub_dir
+=
File
.
basename
(
framework_filename
,
'.framework'
)
elsif
consumer
.
header_mappings_dir
header_mappings_dir
=
file_accessor
.
path_list
.
root
+
consumer
.
header_mappings_dir
header_mappings_dir
=
file_accessor
.
path_list
.
root
+
consumer
.
header_mappings_dir
relative_path
=
header
.
relative_path_from
(
header_mappings_dir
)
relative_path
=
header
.
relative_path_from
(
header_mappings_dir
)
sub_dir
+=
relative_path
.
dirname
sub_dir
+=
relative_path
.
dirname
...
...
lib/cocoapods/sandbox/file_accessor.rb
View file @
5d724d44
...
@@ -85,9 +85,13 @@ module Pod
...
@@ -85,9 +85,13 @@ module Pod
source_files
.
select
{
|
f
|
extensions
.
include?
(
f
.
extname
)
}
source_files
.
select
{
|
f
|
extensions
.
include?
(
f
.
extname
)
}
end
end
# @param [Boolean] include_frameworks
# Whether or not to include the headers of the vendored frameworks.
# Defaults to not include them.
#
# @return [Array<Pathname>] the public headers of the specification.
# @return [Array<Pathname>] the public headers of the specification.
#
#
def
public_headers
def
public_headers
(
include_frameworks
=
false
)
public_headers
=
paths_for_attribute
(
:public_header_files
)
public_headers
=
paths_for_attribute
(
:public_header_files
)
private_headers
=
paths_for_attribute
(
:private_header_files
)
private_headers
=
paths_for_attribute
(
:private_header_files
)
if
public_headers
.
nil?
||
public_headers
.
empty?
if
public_headers
.
nil?
||
public_headers
.
empty?
...
@@ -95,6 +99,7 @@ module Pod
...
@@ -95,6 +99,7 @@ module Pod
else
else
header_files
=
public_headers
header_files
=
public_headers
end
end
header_files
+=
vendored_frameworks_headers
if
include_frameworks
header_files
-
private_headers
header_files
-
private_headers
end
end
...
...
spec/unit/installer/file_references_installer_spec.rb
View file @
5d724d44
...
@@ -67,10 +67,8 @@ module Pod
...
@@ -67,10 +67,8 @@ module Pod
headers_root
=
config
.
sandbox
.
public_headers
.
root
headers_root
=
config
.
sandbox
.
public_headers
.
root
public_header
=
headers_root
+
'BananaLib/Banana.h'
public_header
=
headers_root
+
'BananaLib/Banana.h'
private_header
=
headers_root
+
'BananaLib/BananaPrivate.h'
private_header
=
headers_root
+
'BananaLib/BananaPrivate.h'
framework_header
=
headers_root
+
'BananaLib/Bananalib/Bananalib.h'
public_header
.
should
.
exist
public_header
.
should
.
exist
private_header
.
should
.
not
.
exist
private_header
.
should
.
not
.
exist
framework_header
.
should
.
exist
end
end
end
end
...
@@ -102,7 +100,7 @@ module Pod
...
@@ -102,7 +100,7 @@ module Pod
it
'returns the header mappings'
do
it
'returns the header mappings'
do
headers_sandbox
=
Pathname
.
new
(
'BananaLib'
)
headers_sandbox
=
Pathname
.
new
(
'BananaLib'
)
headers
=
[
Pathname
.
new
(
'BananaLib/Banana.h'
)]
headers
=
[
Pathname
.
new
(
'BananaLib/Banana.h'
)]
mappings
=
@installer
.
send
(
:header_mappings
,
headers_sandbox
,
@file_accessor
,
headers
,
false
)
mappings
=
@installer
.
send
(
:header_mappings
,
headers_sandbox
,
@file_accessor
,
headers
)
mappings
.
should
==
{
mappings
.
should
==
{
headers_sandbox
=>
headers
,
headers_sandbox
=>
headers
,
}
}
...
@@ -112,7 +110,7 @@ module Pod
...
@@ -112,7 +110,7 @@ module Pod
headers_sandbox
=
Pathname
.
new
(
'BananaLib'
)
headers_sandbox
=
Pathname
.
new
(
'BananaLib'
)
headers
=
[
Pathname
.
new
(
'BananaLib/Banana.h'
)]
headers
=
[
Pathname
.
new
(
'BananaLib/Banana.h'
)]
@file_accessor
.
spec_consumer
.
stubs
(
:header_dir
).
returns
(
'Sub_dir'
)
@file_accessor
.
spec_consumer
.
stubs
(
:header_dir
).
returns
(
'Sub_dir'
)
mappings
=
@installer
.
send
(
:header_mappings
,
headers_sandbox
,
@file_accessor
,
headers
,
false
)
mappings
=
@installer
.
send
(
:header_mappings
,
headers_sandbox
,
@file_accessor
,
headers
)
mappings
.
should
==
{
mappings
.
should
==
{
(
headers_sandbox
+
'Sub_dir'
)
=>
headers
,
(
headers_sandbox
+
'Sub_dir'
)
=>
headers
,
}
}
...
@@ -124,21 +122,12 @@ module Pod
...
@@ -124,21 +122,12 @@ module Pod
header_2
=
@file_accessor
.
root
+
'BananaLib/sub_dir/dir_2/banana_2.h'
header_2
=
@file_accessor
.
root
+
'BananaLib/sub_dir/dir_2/banana_2.h'
headers
=
[
header_1
,
header_2
]
headers
=
[
header_1
,
header_2
]
@file_accessor
.
spec_consumer
.
stubs
(
:header_mappings_dir
).
returns
(
'BananaLib/sub_dir'
)
@file_accessor
.
spec_consumer
.
stubs
(
:header_mappings_dir
).
returns
(
'BananaLib/sub_dir'
)
mappings
=
@installer
.
send
(
:header_mappings
,
headers_sandbox
,
@file_accessor
,
headers
,
false
)
mappings
=
@installer
.
send
(
:header_mappings
,
headers_sandbox
,
@file_accessor
,
headers
)
mappings
.
should
==
{
mappings
.
should
==
{
(
headers_sandbox
+
'dir_1'
)
=>
[
header_1
],
(
headers_sandbox
+
'dir_1'
)
=>
[
header_1
],
(
headers_sandbox
+
'dir_2'
)
=>
[
header_2
],
(
headers_sandbox
+
'dir_2'
)
=>
[
header_2
],
}
}
end
end
it
'takes into account the framework name required in the namespace'
do
headers_sandbox
=
Pathname
.
new
(
'BananaLib'
)
headers
=
[
Pathname
.
new
(
'BananaLib/Bananalib.framework/Versions/A/Headers/Bananalib.h'
)]
mappings
=
@installer
.
send
(
:header_mappings
,
headers_sandbox
,
@file_accessor
,
headers
,
true
)
mappings
.
should
==
{
(
headers_sandbox
+
'Bananalib'
)
=>
headers
,
}
end
end
end
end
end
...
...
spec/unit/sandbox/file_accessor_spec.rb
View file @
5d724d44
...
@@ -82,6 +82,13 @@ module Pod
...
@@ -82,6 +82,13 @@ module Pod
]
]
end
end
it
'includes the vendored framework headers if requested'
do
@accessor
.
public_headers
(
true
).
sort
.
should
==
[
@root
+
'Bananalib.framework/Versions/A/Headers/Bananalib.h'
,
@root
+
'Classes/Banana.h'
,
]
end
it
'returns the resources'
do
it
'returns the resources'
do
@accessor
.
resources
.
sort
.
should
==
[
@accessor
.
resources
.
sort
.
should
==
[
@root
+
'Resources/logo-sidebar.png'
,
@root
+
'Resources/logo-sidebar.png'
,
...
...
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