module IOSPlatform
Public Class Methods
config(options, build_config)
click to toggle source
# File lib/mundler/platforms/ios.rb, line 2 def self.config(options, build_config) valid_archs = [:armv7, :arm64] options[:archs] ||= valid_archs options[:archs].map do |arch| unless valid_archs.include?(arch) raise "Invalid architecture #{arch}. Valid values: #{valid_archs}" end minimum_ios_version = options[:minimum_ios_sdk_version] || "10.0" ios_sdk = `xcrun --sdk iphoneos --show-sdk-path`.chomp clang = `xcrun -find clang`.chomp flags = %W( -O3 -miphoneos-version-min=#{minimum_ios_version} -arch #{arch} -isysroot #{ios_sdk} ) cc_command = options.dig(:options, :cc, :command) || clang linker_command = options.dig(:options, :linker, :command) || clang cc_flags = flags + Array(options.dig(:options, :cc, :flags) || []) linker_flags = flags + Array(options.dig(:options, :linker, :flags) || []) <<~BUILD MRuby::CrossBuild.new("ios__#{arch}") do |conf| #{build_config.gemboxes} #{build_config.gems} conf.cc do |cc| cc.command = #{cc_command.inspect} cc.flags = #{cc_flags.inspect} end conf.linker do |l| l.command = #{linker_command.inspect} l.flags = #{linker_flags.inspect} end end BUILD end.join("\n") end