class Object

Constants

CONFIGURATION
PLATFORMS

Public Instance Methods

build_for_iosish_platform(sandbox, build_dir, output_path, target, device, simulator, bitcode_enabled, simulator_default_arch) click to toggle source

Build specific target to framework file @param [PodTarget] target

a specific pod target
# File lib/cocoapods-binary/rome/build_framework.rb, line 12
def build_for_iosish_platform(sandbox, 
                              build_dir, 
                              output_path,
                              target, 
                              device, 
                              simulator,
                              bitcode_enabled,
                              simulator_default_arch)

  deployment_target = target.platform.deployment_target.to_s
  
  target_label = target.label # name with platform if it's used in multiple platforms
  Pod::UI.puts "Prebuilding #{target_label}..."
  
  other_options = [] 
  if bitcode_enabled
    other_options += ['OTHER_CFLAGS="-fembed-bitcode"']
  end
  xcodebuild(sandbox, target_label, device, deployment_target, other_options)
  xcodebuild(sandbox, target_label, simulator, deployment_target, other_options + ["ARCHS=#{simulator_default_arch}",'ONLY_ACTIVE_ARCH=NO'])

  # paths
  target_name = target.name # equals target.label, like "AFNeworking-iOS" when AFNetworking is used in multiple platforms.
  module_name = target.product_module_name
  device_framwork_path = "#{build_dir}/#{CONFIGURATION}-#{device}/#{target_name}/#{module_name}.framework"
  simulator_framwork_path = "#{build_dir}/#{CONFIGURATION}-#{simulator}/#{target_name}/#{module_name}.framework"

  device_binary = device_framwork_path + "/#{module_name}"
  simulator_binary = simulator_framwork_path + "/#{module_name}"
  return unless File.file?(device_binary) && File.file?(simulator_binary)
  
  # the device_lib path is the final output file path
  # combine the bianries
  tmp_lipoed_binary_path = "#{build_dir}/#{target_name}"
  lipo_log = `lipo -create -output #{tmp_lipoed_binary_path} #{device_binary} #{simulator_binary}`
  puts lipo_log unless File.exist?(tmp_lipoed_binary_path)
  FileUtils.mv tmp_lipoed_binary_path, device_binary, :force => true
  
  # collect the swiftmodule file for various archs.
  device_swiftmodule_path = device_framwork_path + "/Modules/#{module_name}.swiftmodule"
  simulator_swiftmodule_path = simulator_framwork_path + "/Modules/#{module_name}.swiftmodule"
  if File.exist?(device_swiftmodule_path)
    FileUtils.cp_r simulator_swiftmodule_path + "/.", device_swiftmodule_path
  end

  # output
  output_path.mkpath unless output_path.exist?
  FileUtils.mv device_framwork_path, output_path, :force => true

end
class_attr_accessor(symbol) click to toggle source

attr_accessor for class variable. usage:

```
class Pod
    class_attr_accessor :is_prebuild_stage
end
```
# File lib/cocoapods-binary/tool/tool.rb, line 10
def class_attr_accessor(symbol)
    self.class.send(:attr_accessor, symbol)
end
xcodebuild(sandbox, target, sdk='macosx', deployment_target=nil, other_options=[]) click to toggle source
# File lib/cocoapods-binary/rome/build_framework.rb, line 63
def xcodebuild(sandbox, target, sdk='macosx', deployment_target=nil, other_options=[])
  args = %W(-project #{sandbox.project_path.realdirpath} -scheme #{target} -configuration #{CONFIGURATION} -sdk #{sdk} )
  platform = PLATFORMS[sdk]
  args += Fourflusher::SimControl.new.destination(:oldest, platform, deployment_target) unless platform.nil?
  args += other_options
  Pod::Executable.execute_command 'xcodebuild', args, true
end