Commit 82a6c8fb authored by Dieter Komendera's avatar Dieter Komendera

Make symlinking headers work with specs which overwrite Spec#copy_header_mapping.

parent fa69d832
...@@ -30,6 +30,7 @@ module Pod ...@@ -30,6 +30,7 @@ module Pod
@xcconfig ||= Xcodeproj::Config.new({ @xcconfig ||= Xcodeproj::Config.new({
# In a workspace this is where the static library headers should be found. # In a workspace this is where the static library headers should be found.
'HEADER_SEARCH_PATHS' => '"Pods/Headers"', 'HEADER_SEARCH_PATHS' => '"Pods/Headers"',
'ALWAYS_SEARCH_USER_PATHS' => 'YES',
# This makes categories from static libraries work, which many libraries # This makes categories from static libraries work, which many libraries
# require, so we add these by default. # require, so we add these by default.
'OTHER_LDFLAGS' => '-ObjC -all_load', 'OTHER_LDFLAGS' => '-ObjC -all_load',
...@@ -98,9 +99,11 @@ module Pod ...@@ -98,9 +99,11 @@ module Pod
spec.copy_header_mappings.each do |header_dir, files| spec.copy_header_mappings.each do |header_dir, files|
target_dir = "#{headers_symlink_path_name}/#{header_dir}" target_dir = "#{headers_symlink_path_name}/#{header_dir}"
FileUtils.mkdir_p(target_dir) FileUtils.mkdir_p(target_dir)
Dir.chdir(target_dir) do target_dir_real_path = Pathname.new(target_dir).realpath
files.each do |file| files.each do |file|
FileUtils.ln_s("../../#{file}", file.basename) source = Pathname.new("Pods/#{file}").realpath.relative_path_from(target_dir_real_path)
Dir.chdir(target_dir) do
FileUtils.ln_sf(source, File.basename(file))
end end
end end
end end
......
...@@ -296,7 +296,7 @@ module Pod ...@@ -296,7 +296,7 @@ module Pod
# methods. # methods.
def header_search_paths def header_search_paths
dirs = [header_dir] + copy_header_mappings.keys dirs = [header_dir] + copy_header_mappings.keys
dirs.map { |dir| %{"Pods/Headers/#{dir}"} } dirs.map { |dir| %{"$(POD_SRCROOT)/Headers/#{dir}"} }
end end
def to_s def to_s
......
...@@ -99,6 +99,7 @@ module Xcodeproj ...@@ -99,6 +99,7 @@ module Xcodeproj
def self.build_settings(platform, scheme) def self.build_settings(platform, scheme)
settings = COMMON_BUILD_SETTINGS[:all].merge(COMMON_BUILD_SETTINGS[platform]) settings = COMMON_BUILD_SETTINGS[:all].merge(COMMON_BUILD_SETTINGS[platform])
settings['COPY_PHASE_STRIP'] = scheme == :debug ? 'NO' : 'YES' settings['COPY_PHASE_STRIP'] = scheme == :debug ? 'NO' : 'YES'
settings['POD_SRCROOT'] = '$(SRCROOT)'
if scheme == :debug if scheme == :debug
settings.merge!(COMMON_BUILD_SETTINGS[:debug]) settings.merge!(COMMON_BUILD_SETTINGS[:debug])
settings['ONLY_ACTIVE_ARCH'] = 'YES' if platform == :osx settings['ONLY_ACTIVE_ARCH'] = 'YES' if platform == :osx
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment