おはようございます。次男がちょっと咳をするようになってますが、鼻水も多めで、ちょっと花粉症疑惑もかかってます。@kjunichiです。
背景
ちょっと前にCI環境を整備した。 この時に長らく結果的にv6系のImageMagickにしか対応していたWindows向けの mruby-mrmagickをv7系に対応した。
学んだこと
DLLの名称がv7とv6で異なっていた
v6だと
- CORE_RL_magick_
- CORE_RL_Magick++_
- CORE_RL_wand_
v7だと
- CORE_RL_MagickCore_
- CORE_RL_Magick++_
- CORE_RL_MagickWand_
と、共有ライブラリの名称が微妙に異なっていた。
対策
Rakeファイルで以下のようにインストールされているImageMagickのバージョンで 分岐を設けて、この差異に対応した。
文字列の比較は以下のメソッドを知って、これを使った。 mrbgem作れるけど、Rubyは勉強中なのでw。。
obj#include?(文字列)
当初、v6の指定を6としていて、
ImageMagick-7.0.3-Q16
もv6と判定されてしまった。
imHome.include?("-6")
と前方にハイフンをつけることでこれに対応した。
関連記事
- mrubyでselfを呼び出されたメソッドのインスタンスとして実行するには
- mruby-mrmagick開発記 2015初秋編
- mrubyで簡単に回転画像が生成出来るコマンドを作ろうとしている
- mrubyでaobenchを動かし、GIFアニメを出力できるようにした
- ChocolateyでImageMagickをヘッダ、Libファイルとレガシーコマンドも一緒に入れるには