1install_root = @config['install-root'] 2 3# Fix Xcode projects to point to the right location of RubyCocoa.framework 4DEFAULT_FRAMEWORK_PATH = '/Library/Frameworks/RubyCocoa.framework' 5TARGET_FRAMEWORK_PATH = File.join(File.expand_path("#{install_root}#{@config['frameworks']}"), 'RubyCocoa.framework') 6TARGET_FRAMEWORK_PATH.sub!(/^#{ENV['DSTROOT']}/, '') if ENV['DSTROOT'] 7def fix_xcode_projects_in_dir(dstdir) 8 return if @packaging 9 Dir.glob("#{dstdir}/**/*.pbxproj") do |proj| 10 txt = File.read(proj) 11 if txt.gsub!(/#{DEFAULT_FRAMEWORK_PATH}/, TARGET_FRAMEWORK_PATH) 12 File.open(proj, 'w') { |io| io.write(txt) } 13 end 14 end 15end 16 17# If required, backup files create here. 18backup_dir = '/tmp/rubycocoa_backup' 19 20# Install ProjectBuilder Templates 21pbextras_dir = 22 @config['projectbuilder-extras'] ? 23 File.expand_path("#{install_root}#{@config['projectbuilder-extras']}") : nil 24xcodeextras_dir = 25 @config['xcode-extras'] ? @config['xcode-extras'].split(',').map {|path| 26 File.expand_path("#{install_root}#{path}")} : nil 27if @config['macosx-deployment-target'].to_f >= 10.5 28 pbtmpldir = "template/ProjectBuilder" # for Xcode 3.x 29else 30 pbtmpldir = "template/Xcode2.x/ProjectBuilder" # for Xcode 2.x 31end 32 33[pbextras_dir, xcodeextras_dir].flatten.compact.each do |extras_dir| 34 [ 35 [ "#{pbtmpldir}/File", 36 "#{extras_dir}/File Templates/Ruby" ], 37 38 [ "#{pbtmpldir}/Target", 39 "#{extras_dir}/Target Templates/Ruby" ], 40 41 [ "#{pbtmpldir}/Application/Cocoa-Ruby Application", 42 "#{extras_dir}/Project Templates/Application/Cocoa-Ruby Application" ], 43 44 [ "#{pbtmpldir}/Application/Cocoa-Ruby Document-based Application", 45 "#{extras_dir}/Project Templates/Application/Cocoa-Ruby Document-based Application" ], 46 47 [ "#{pbtmpldir}/Application/Cocoa-Ruby Core Data Application", 48 "#{extras_dir}/Project Templates/Application/Cocoa-Ruby Core Data Application" ], 49 50 [ "#{pbtmpldir}/Application/Cocoa-Ruby Core Data Document-based Application", 51 "#{extras_dir}/Project Templates/Application/Cocoa-Ruby Core Data Document-based Application" ], 52 53 ].each do |srcdir, dstdir| 54 if FileTest.exist?( dstdir ) then 55 backupname = File.basename( dstdir ) 56 command "rm -rf '#{backup_dir}/#{backupname}'" 57 command "mkdir -p '#{backup_dir}'" 58 command "mv '#{dstdir}' '#{backup_dir}/'" 59 end 60 command "mkdir -p '#{File.dirname(dstdir)}'" 61 command "cp -R '#{srcdir}' '#{dstdir}'" 62 command "find '#{dstdir}' -name '*.in' -print0 | /usr/bin/xargs -0 rm" 63 64 fix_xcode_projects_in_dir(dstdir) 65 end 66end 67 68# Install Examples & Document 69[ 70 [ 'sample', "#{install_root}#{@config['examples']}", 'g+w', true ], 71 [ 'doc', "#{install_root}#{@config['documentation']}", nil, false ], 72 73].each do |srcdir, dstdir, chmod, fix_xcode_projects| 74 if File.exist?( "#{dstdir}/RubyCocoa" ) then 75 command "rm -rf '#{backup_dir}/#{srcdir}'" 76 command "mkdir -p '#{backup_dir}'" 77 command "mv '#{dstdir}/RubyCocoa' '#{backup_dir}/#{srcdir}'" 78 end 79 command "mkdir -p '#{dstdir}'" 80 command "cp -R '#{srcdir}' '#{dstdir}/RubyCocoa'" 81 command "chmod -R #{chmod} '#{dstdir}/RubyCocoa'" if chmod 82 83 fix_xcode_projects_in_dir(dstdir) if fix_xcode_projects 84end 85if File.exist?('framework/bridge-doc') 86 # Frameworks HTML documentation 87 dstdir = "#{install_root}#{@config['documentation']}/RubyCocoa/Frameworks" 88 command "cp -R 'framework/bridge-doc/html' '#{dstdir}'" if File.exist?('framework/bridge-doc/html') 89 # Frameworks RI documentation 90 basedstdir = @config['ri-dir'] 91 unless File.exist?(basedstdir) 92 command "mkdir -p '#{basedstdir}'" 93 end 94 command "cp -R 'framework/bridge-doc/ri/OSX' '#{basedstdir}'" if File.exist?('framework/bridge-doc/ri/OSX') 95end 96