Commit 9e987977 authored by Dieter Komendera's avatar Dieter Komendera

Merge pull request #104 from roothybrid7/hotfix/prevent_dup_cleaning

fixed bug of directory cleaning.
parents eb15d119 dab9bf68
...@@ -40,6 +40,10 @@ module Pod ...@@ -40,6 +40,10 @@ module Pod
@project_podfile @project_podfile
end end
def headers_symlink_root
@headers_symlink_root ||= "#{project_pods_root}/Headers"
end
# Returns the spec at the pat returned from `project_podfile`. # Returns the spec at the pat returned from `project_podfile`.
def rootspec def rootspec
unless @rootspec unless @rootspec
......
...@@ -72,6 +72,10 @@ module Pod ...@@ -72,6 +72,10 @@ module Pod
puts "Installing dependencies of: #{@podfile.defined_in_file}" if config.verbose? puts "Installing dependencies of: #{@podfile.defined_in_file}" if config.verbose?
install_dependencies! install_dependencies!
root = config.project_pods_root root = config.project_pods_root
headers_symlink_root = config.headers_symlink_root
# Clean old header symlinks
FileUtils.rm_r(headers_symlink_root, :secure => true) if File.exists?(headers_symlink_root)
puts "Generating support files" unless config.silent? puts "Generating support files" unless config.silent?
target_installers.each do |target_installer| target_installers.each do |target_installer|
......
...@@ -61,18 +61,11 @@ module Pod ...@@ -61,18 +61,11 @@ module Pod
"#{@definition.lib_name}-prefix.pch" "#{@definition.lib_name}-prefix.pch"
end end
def headers_symlink_path_name
"#{config.project_pods_root}/Headers"
end
# TODO move xcconfig related code into the xcconfig method, like copy_resources_script and generate_bridge_support. # TODO move xcconfig related code into the xcconfig method, like copy_resources_script and generate_bridge_support.
def install! def install!
# First add the target to the project # First add the target to the project
@target = @project.targets.new_static_library(@definition.lib_name) @target = @project.targets.new_static_library(@definition.lib_name)
# Clean old header symlinks
FileUtils.rm_r(headers_symlink_path_name, :secure => true) if File.exists?(headers_symlink_path_name)
header_search_paths = [] header_search_paths = []
build_specifications.each do |spec| build_specifications.each do |spec|
xcconfig.merge!(spec.xcconfig) xcconfig.merge!(spec.xcconfig)
...@@ -82,7 +75,7 @@ module Pod ...@@ -82,7 +75,7 @@ module Pod
end end
# Symlink header files to Pods/Headers # Symlink header files to Pods/Headers
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 = "#{config.headers_symlink_root}/#{header_dir}"
FileUtils.mkdir_p(target_dir) FileUtils.mkdir_p(target_dir)
target_dir_real_path = Pathname.new(target_dir).realpath target_dir_real_path = Pathname.new(target_dir).realpath
files.each do |file| files.each do |file|
......
...@@ -337,6 +337,33 @@ else ...@@ -337,6 +337,33 @@ else
end end
end end
it "should prevent duplication cleaning headers symlinks with multiple targets" do
Pod::Source.reset!
Pod::Spec::Set.reset!
podfile = Pod::Podfile.new do
# first ensure that the correct info is available to the specs when they load
config.rootspec = self
self.platform platform
target(:debug) { dependency 'SSZipArchive' }
target(:test, :exclusive => true) { dependency 'JSONKit' }
dependency 'ASIHTTPRequest'
end
installer = Pod::Installer.new(podfile)
installer.install!
root = config.project_pods_root
(root + 'Pods.xcconfig').should.exist
(root + 'Headers').should.exist
(root + 'Headers/SSZipArchive').should.exist
(root + 'Headers/ASIHTTPRequest').should.exist
(root + 'Headers/JSONKit').should.exist
Pathname.glob(File.join(root.to_s, 'Headers/ASIHTTPRequest/*.h')).size.should.be > 0
Pathname.glob(File.join(root.to_s, 'Headers/SSZipArchive/*.h')).size.should.be > 0
Pathname.glob(File.join(root.to_s, 'Headers/JSONKit/*.h')).size.should.be > 0
end
end end
end end
......
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