背景
mrubyで画像処理をしてみようと軽く調べたら、Imagemagickが
OpenCLに対応しているらしく、それならこれを使えば、mrubyからOpenCLを
叩けてかっこいいと思った
さらに楽なAPIは、CよりC++な感じがした。これは昨今のOpenCVのAPIを頑なにPython APIで使えるもの調べれば調べるほどC++のみAPIが用意されていたり、より便利なAPIだったりといった状況を知らなければ、C++は例外が標準規格化される以前の時代に触っって、その後SIerのデスマでC++使えるはずの要員が軒並み、Cのコンパルすら自力で通せないなんて経験をしているからC++は極力敬遠したり、最近だとnode.jsサイドからのV8の追随作業で生じるnanもバージョンを上げないと吸収できない件などからあまり良い印象を受けていないかったので、迷わずCのAPIで作業を進めるところだった。
雑な対応メモ
MRuby::Gem::Specification.new('mruby-mrmagick') do |spec|
spec.license = 'MIT'
spec.authors = 'kaita hito'
magick_cflg = `Magick++-config --cxxflags --cppflags`.chomp!
magick_cflg.gsub!(/\n/," ")
#puts magick_cflg
spec.cxx.flags << magick_cflg
magick_libs = `Magick++-config --ldflags --libs`.chomp!
magick_libs.gsub!(/\n/," ")
spec.linker.flags_before_libraries << magick_libs
end
spec.cxx.flags
spec.cxx.flagsへC++ APIのヘッダファイルのパスを追加。
spec.linker.flags_before_libraries
こちらはCのAPIと同様にC++ APIのライブラリへのパスを追加。