add 'config' rake task which dumps the config variables, change the 'sdk_version' variable to auto-detect the latest SDK installed

This commit is contained in:
Laurent Sansonetti
2011-07-21 17:35:03 -07:00
parent 1b83a34077
commit 1812e2083d
2 changed files with 46 additions and 6 deletions

View File

@@ -56,3 +56,11 @@ desc "Clear build objects"
task :clean do
rm_rf(Rubixir::CONFIG.build_dir)
end
desc "Show project config"
task :config do
map = Rubixir::CONFIG.variables
map.keys.sort.each do |key|
puts key.ljust(20) + " = #{map[key].inspect}"
end
end

View File

@@ -1,13 +1,21 @@
module Rubixir
class Config
attr_accessor :files, :platforms_dir, :sdk_version, :frameworks,
VARS = []
def self.variable(*syms)
syms.each do |sym|
attr_accessor sym
VARS << sym.to_s
end
end
variable :files, :platforms_dir, :sdk_version, :frameworks,
:app_delegate_class, :app_name, :build_dir, :resources_dir,
:codesign_certificate, :provisioning_profile
def initialize(project_dir)
@files = Dir.glob(File.join(project_dir, 'app/**/*.rb'))
@platforms_dir = '/Developer/Platforms'
@sdk_version = '4.3'
@frameworks = ['UIKit', 'Foundation', 'CoreGraphics']
@app_delegate_class = 'AppDelegate'
@app_name = 'My App'
@@ -16,6 +24,15 @@ module Rubixir
@bundle_signature = '????'
end
def variables
map = {}
VARS.each do |sym|
val = send(sym) rescue "ERROR"
map[sym] = val
end
map
end
def datadir
File.expand_path(File.join(File.dirname(__FILE__), '../../../data'))
end
@@ -24,9 +41,24 @@ module Rubixir
File.join(@platforms_dir, platform + '.platform')
end
def sdk_version
@sdk_version ||= begin
versions = Dir.glob(File.join(platforms_dir, 'iPhoneOS.platform/Developer/SDKs/iPhoneOS*.sdk')).map do |path|
File.basename(path).scan(/iPhoneOS(.*)\.sdk/)[0][0]
end
if versions.size == 0
$stderr.puts "can't locate any iPhone SDK"
exit 1
elsif versions.size > 1
$stderr.puts "found #{versions.size} SDKs, will use the latest one"
end
versions.max
end
end
def sdk(platform)
File.join(platform_dir(platform), 'Developer/SDKs',
platform + @sdk_version + '.sdk')
platform + sdk_version + '.sdk')
end
def app_bundle(platform, exec=false)
@@ -80,11 +112,11 @@ module Rubixir
<key>DTPlatformName</key>
<string>iphoneos</string>
<key>DTPlatformVersion</key>
<string>#{@sdk_version}</string>
<string>#{sdk_version}</string>
<key>DTSDKBuild</key>
<string>8H7</string>
<key>DTSDKName</key>
<string>iphoneos#{@sdk_version}</string>
<string>iphoneos#{sdk_version}</string>
<key>DTXcode</key>
<string>0402</string>
<key>DTXcodeBuild</key>
@@ -92,7 +124,7 @@ module Rubixir
<key>LSRequiresIPhoneOS</key>
<true/>
<key>MinimumOSVersion</key>
<string>#{@sdk_version}</string>
<string>#{sdk_version}</string>
<key>UIDeviceFamily</key>
<array>
<integer>1</integer>