@android_home = Pathname.new ENV['ANDROID_HOME']
+ def detect_platforms
+ @platforms = {}
+ platforms.entries.each do |e|
+ path = platforms.join e
+ if path.directory?
+ prop = path.join 'source.properties'
+ if prop.file? and prop.readable?
+ prop.open do |f|
+ f.readlines.each do |line|
+ line.chomp!
+ if m = line.match(/\AAndroidVersion\.ApiLevel=(\d+)\z/)
+ $stderr.puts "Detected platform api_level=#{m[1]} at #{path.to_s}"
+ @platforms[m[1].to_i] = path
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+
def platform_tools
@android_home.join 'platform-tools'
end
@android_home.join 'platforms'
end
+ def platform
+ if @platforms.has_key? Project.api_level
+ @platforms[Project.api_level]
+ else
+ raise "Platform not found!: api_level=#{Project.api_level}"
+ end
+ end
+
def tools
@android_home.join 'tools'
end
end
def android_jar
- platforms.join "android-#{Project.api_level}", 'android.jar'
+ platform.join 'android.jar'
end
def annotations_jar
].join(':')
end
end# }}}
+AndroidSdk.detect_platforms
task :default => 'apk:aligned'