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
be84c8df
Commit
be84c8df
authored
Oct 01, 2014
by
Michael Melanson
Committed by
Kyle Fuller
Oct 28, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[CocoaPods/CocoaPods#1249] Separate header paths for different targets in .xcconfig files.
parent
4c4895f8
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
35 additions
and
22 deletions
+35
-22
CHANGELOG.md
CHANGELOG.md
+4
-0
aggregate_xcconfig.rb
lib/cocoapods/generator/xcconfig/aggregate_xcconfig.rb
+2
-2
private_pod_xcconfig.rb
lib/cocoapods/generator/xcconfig/private_pod_xcconfig.rb
+4
-1
file_references_installer.rb
lib/cocoapods/installer/file_references_installer.rb
+4
-4
headers_store.rb
lib/cocoapods/sandbox/headers_store.rb
+12
-7
aggregate_xcconfig_spec.rb
spec/unit/generator/xcconfig/aggregate_xcconfig_spec.rb
+2
-2
private_pod_xcconfig_spec.rb
spec/unit/generator/xcconfig/private_pod_xcconfig_spec.rb
+2
-2
file_references_installer_spec.rb
spec/unit/installer/file_references_installer_spec.rb
+1
-0
headers_store_spec.rb
spec/unit/sandbox/headers_store_spec.rb
+4
-4
No files found.
CHANGELOG.md
View file @
be84c8df
...
...
@@ -178,6 +178,10 @@ To install or update CocoaPods see this [guide](http://docs.cocoapods.org/guides
[
Kra Larivain
](
https://github.com/olarivain
)
[
#2532
](
https://github.com/CocoaPods/CocoaPods/pull/2532
)
*
Proper scoping of header search paths to the target platform.
[
Michael Melanson
](
https://github.com/michaelmelanson
)
[
#1249
](
https://github.com/CocoaPods/CocoaPods/issues/1249
)
## 0.34.1
...
...
lib/cocoapods/generator/xcconfig/aggregate_xcconfig.rb
View file @
be84c8df
...
...
@@ -47,11 +47,11 @@ module Pod
# @return [Xcodeproj::Config]
#
def
generate
header_search_path_flags
=
target
.
sandbox
.
public_headers
.
search_paths
header_search_path_flags
=
target
.
sandbox
.
public_headers
.
search_paths
(
target
.
platform
)
@xcconfig
=
Xcodeproj
::
Config
.
new
(
'OTHER_LDFLAGS'
=>
XCConfigHelper
.
default_ld_flags
(
target
),
'OTHER_LIBTOOLFLAGS'
=>
'$(OTHER_LDFLAGS)'
,
'HEADER_SEARCH_PATHS'
=>
XCConfigHelper
.
quote
(
target
.
sandbox
.
public_headers
.
search_path
s
),
'HEADER_SEARCH_PATHS'
=>
XCConfigHelper
.
quote
(
header_search_path_flag
s
),
'PODS_ROOT'
=>
target
.
relative_pods_root
,
'GCC_PREPROCESSOR_DEFINITIONS'
=>
'$(inherited) COCOAPODS=1'
,
'OTHER_CFLAGS'
=>
'$(inherited) '
+
XCConfigHelper
.
quote
(
header_search_path_flags
,
'-isystem'
)
...
...
lib/cocoapods/generator/xcconfig/private_pod_xcconfig.rb
View file @
be84c8df
...
...
@@ -45,7 +45,10 @@ module Pod
# @return [Xcodeproj::Config]
#
def
generate
search_paths
=
target
.
build_headers
.
search_paths
.
concat
(
target
.
sandbox
.
public_headers
.
search_paths
)
target_search_paths
=
target
.
build_headers
.
search_paths
(
target
.
platform
)
sandbox_search_paths
=
target
.
sandbox
.
public_headers
.
search_paths
(
target
.
platform
)
search_paths
=
target_search_paths
.
concat
(
sandbox_search_paths
).
uniq
config
=
{
'OTHER_LDFLAGS'
=>
XCConfigHelper
.
default_ld_flags
(
target
),
'PODS_ROOT'
=>
'${SRCROOT}'
,
...
...
lib/cocoapods/installer/file_references_installer.rb
View file @
be84c8df
...
...
@@ -114,15 +114,15 @@ module Pod
libraries
.
each
do
|
library
|
library
.
file_accessors
.
each
do
|
file_accessor
|
headers_sandbox
=
Pathname
.
new
(
file_accessor
.
spec
.
root
.
name
)
library
.
build_headers
.
add_search_path
(
headers_sandbox
)
sandbox
.
public_headers
.
add_search_path
(
headers_sandbox
)
library
.
build_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
).
each
do
|
namespaced_path
,
files
|
library
.
build_headers
.
add_files
(
namespaced_path
,
files
)
library
.
build_headers
.
add_files
(
namespaced_path
,
files
,
library
.
platform
)
end
header_mappings
(
headers_sandbox
,
file_accessor
,
file_accessor
.
public_headers
).
each
do
|
namespaced_path
,
files
|
sandbox
.
public_headers
.
add_files
(
namespaced_path
,
files
)
sandbox
.
public_headers
.
add_files
(
namespaced_path
,
files
,
library
.
platform
)
end
end
end
...
...
lib/cocoapods/sandbox/headers_store.rb
View file @
be84c8df
...
...
@@ -23,16 +23,18 @@ module Pod
def
initialize
(
sandbox
,
relative_path
)
@sandbox
=
sandbox
@relative_path
=
relative_path
@search_paths
=
[
relative_path
]
@search_paths
=
[]
end
# @return [Array<String>] All the search paths of the header directory in
# xcconfig format. The paths are specified relative to the pods
# root with the `${PODS_ROOT}` variable.
#
def
search_paths
def
search_paths
(
platform
)
platform_search_paths
=
@search_paths
.
select
{
|
entry
|
entry
[
:platform
]
==
platform
}
headers_dir
=
root
.
relative_path_from
(
sandbox
.
root
).
dirname
@search_paths
.
uniq
.
map
{
|
path
|
"${PODS_ROOT}/
#{
headers_dir
}
/
#{
path
}
"
}
[
"${PODS_ROOT}/
#{
headers_dir
}
/
#{
@relative_path
}
"
]
+
platform_search_paths
.
uniq
.
map
{
|
entry
|
"${PODS_ROOT}/
#{
headers_dir
}
/
#{
entry
[
:path
]
}
"
}
end
# Removes the directory as it is regenerated from scratch during each
...
...
@@ -64,8 +66,8 @@ module Pod
#
# @return [Pathname]
#
def
add_files
(
namespace
,
relative_header_paths
)
add_search_path
(
namespace
)
def
add_files
(
namespace
,
relative_header_paths
,
platform
)
add_search_path
(
namespace
,
platform
)
namespaced_path
=
root
+
namespace
namespaced_path
.
mkpath
unless
File
.
exist?
(
namespaced_path
)
...
...
@@ -84,10 +86,13 @@ module Pod
# @param [Pathname] path
# the path tho add.
#
# @param [String] platform
# the platform the search path applies to
#
# @return [void]
#
def
add_search_path
(
path
)
@search_paths
<<
Pathname
.
new
(
@relative_path
)
+
path
def
add_search_path
(
path
,
platform
)
@search_paths
<<
{
:platform
=>
platform
,
:path
=>
(
Pathname
.
new
(
@relative_path
)
+
path
)
}
end
#-----------------------------------------------------------------------#
...
...
spec/unit/generator/xcconfig/aggregate_xcconfig_spec.rb
View file @
be84c8df
...
...
@@ -58,12 +58,12 @@ module Pod
end
it
'adds the sandbox public headers search paths to the xcconfig, with quotes, as header search paths'
do
expected
=
"
\"
#{
config
.
sandbox
.
public_headers
.
search_paths
.
join
(
'" "'
)
}
\"
"
expected
=
"
\"
#{
config
.
sandbox
.
public_headers
.
search_paths
(
:ios
)
.
join
(
'" "'
)
}
\"
"
@xcconfig
.
to_hash
[
'HEADER_SEARCH_PATHS'
].
should
==
expected
end
it
'adds the sandbox public headers search paths to the xcconfig, with quotes, as system headers'
do
expected
=
"$(inherited) -isystem
\"
#{
config
.
sandbox
.
public_headers
.
search_paths
.
join
(
'" -isystem "'
)
}
\"
"
expected
=
"$(inherited) -isystem
\"
#{
config
.
sandbox
.
public_headers
.
search_paths
(
:ios
)
.
join
(
'" -isystem "'
)
}
\"
"
@xcconfig
.
to_hash
[
'OTHER_CFLAGS'
].
should
==
expected
end
...
...
spec/unit/generator/xcconfig/private_pod_xcconfig_spec.rb
View file @
be84c8df
...
...
@@ -44,8 +44,8 @@ module Pod
end
it
'adds the library build headers and public headers search paths to the xcconfig, with quotes'
do
private_headers
=
"
\"
#{
@pod_target
.
build_headers
.
search_paths
.
join
(
'" "'
)
}
\"
"
public_headers
=
"
\"
#{
config
.
sandbox
.
public_headers
.
search_paths
.
join
(
'" "'
)
}
\"
"
private_headers
=
"
\"
#{
@pod_target
.
build_headers
.
search_paths
(
:ios
)
.
join
(
'" "'
)
}
\"
"
public_headers
=
"
\"
#{
config
.
sandbox
.
public_headers
.
search_paths
(
:ios
)
.
join
(
'" "'
)
}
\"
"
@xcconfig
.
to_hash
[
'HEADER_SEARCH_PATHS'
].
should
.
include
private_headers
@xcconfig
.
to_hash
[
'HEADER_SEARCH_PATHS'
].
should
.
include
public_headers
end
...
...
spec/unit/installer/file_references_installer_spec.rb
View file @
be84c8df
...
...
@@ -6,6 +6,7 @@ module Pod
before
do
@file_accessor
=
fixture_file_accessor
(
'banana-lib/BananaLib.podspec'
)
@pod_target
=
PodTarget
.
new
([],
nil
,
config
.
sandbox
)
@pod_target
.
stubs
(
:platform
).
returns
(
Platform
.
new
(
:ios
,
'6.0'
))
@pod_target
.
file_accessors
=
[
@file_accessor
]
@project
=
Project
.
new
(
config
.
sandbox
.
project_path
)
@project
.
add_pod_group
(
'BananaLib'
,
fixture
(
'banana-lib'
))
...
...
spec/unit/sandbox/headers_store_spec.rb
View file @
be84c8df
...
...
@@ -22,7 +22,7 @@ module Pod
relative_header_paths
.
each
do
|
path
|
File
.
open
(
@sandbox
.
root
+
path
,
'w'
)
{
|
file
|
file
.
write
(
'hello'
)
}
end
symlink_paths
=
@header_dir
.
add_files
(
namespace_path
,
relative_header_paths
)
symlink_paths
=
@header_dir
.
add_files
(
namespace_path
,
relative_header_paths
,
:fake_platform
)
symlink_paths
.
each
do
|
path
|
path
.
should
.
be
.
symlink
File
.
read
(
path
).
should
==
'hello'
...
...
@@ -39,12 +39,12 @@ module Pod
relative_header_paths
.
each
do
|
path
|
File
.
open
(
@sandbox
.
root
+
path
,
'w'
)
{
|
file
|
file
.
write
(
'hello'
)
}
end
@header_dir
.
add_files
(
namespace_path
,
relative_header_paths
)
@header_dir
.
search_paths
.
should
.
include
(
'${PODS_ROOT}/Headers/Public/ExampleLib'
)
@header_dir
.
add_files
(
namespace_path
,
relative_header_paths
,
:fake_platform
)
@header_dir
.
search_paths
(
:fake_platform
)
.
should
.
include
(
'${PODS_ROOT}/Headers/Public/ExampleLib'
)
end
it
'always adds the Headers root to the header search paths'
do
@header_dir
.
search_paths
.
should
.
include
(
'${PODS_ROOT}/Headers/Public'
)
@header_dir
.
search_paths
(
:fake_platform
)
.
should
.
include
(
'${PODS_ROOT}/Headers/Public'
)
end
end
end
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