背景
外部のライブラリに依存するmrbgemを使ってもmruby-cliでワンバイナリを作成できるようにしたにて自作のmrbgemモジュールのmruby-webcamをmruby-cliに対応させた。
やり方
git clone
mruby-cli --setup webcamapp
cd webcamapp
cp ../mruby-webcam/docker/* .
アプリ本体
webcamapp.rb
def __main__(argv)
if argv[1] == "version"
puts "v#{App1::VERSION}"
else
puts "Hello World"
cam = Webcam.new
cam.capture {|img|
# img : JPEG format
puts img.length
File.open("#{Time.now.to_s.gsub!(' ','').gsub!(':','')}.jpg","wb") {
|f| f.write img
}
}
# SPC : capture
# ESC : exit
cam.start
end
end
ビルド
docker-compose run compile
初代MacBook Pro Retinaで3時間程度待つと、mruby/build配下にWindows、OSX、Linuxのワンバイナリが作成される。
あとがき
mruby-webcamモジュール自体は現状、Webカメラの映像を表示する程度だが、
OpenCVをmruby-cliに付属のコンパイラでクロスコンパイルできているので、
色々頑張ると使えるかもしれません。
docker-machineでcpu数増やすともう少しビルド時間を短縮できるかも。