ChocolateyでImageMagickをヘッダ、Libファイルとレガシーコマンドも一緒に入れるには
おはようございます。最近長男はすっかり習慣となりつつある、夕食後のドリルの時間ですが、次男も途中からは参加するようになってきました。@kjunichiです。
背景
ImageMagickをライブラリとして利用するWindowsのコードを書いていて、 CIを導入したくなった。chocolateyがAppvoyerでは使えることを知っていたので、 今回もこれを使ってImageMagickを入れてCI出来るように試みた。
cinstでImagemagickのヘッダーとlibを入れるには
普通に
cinst imagemagick.app
では駄目、.appなしのimagemagickパッケージならいけるかと思い、
cinst imagemagick
しかし、こちらも変わらず、ヘッダが無いよエラー。
解決法
cinst時に「-PackageParameters InstallDevelopmentHeaders=true」を指定することで、ヘッダとlibファイルも インストールされるようになった。
cinst imagemagick.app -PackageParameters InstallDevelopmentHeaders=true
v7系のImageMagickではconvertコマンドなどが無くなった!?
v7からはconvertなどのコマンドはmagickコマンドに変わるらしく、こちらは cinst時に「-PackageParameters LegacySupport=true」を指定することで、v6で使えていたコマンド達がインストールされた。
解決法
cinst imagemagick.app -PackageParameters LegacySupport=true
これら2つのオプションを指定するには
試しに2つそのまま並べて
-PackageParameters InstallDevelopmentHeaders=true -PackageParameters InstallDevelopmentHeaders=true LegacySupport=true
としてみたが、ダメ。
試行錯誤の末、以下の様にダブルクォートでオプションを囲むことで複数指定ができる模様。
cinst imagemagick.app -PackageParameters "InstallDevelopmentHeaders=true LegacySupport=true"
まとめ
実は、今回mruby-mrmagickをAppVeyorでCI出来るようにしようと 試行錯誤していた。
が、いまのところ、どうもAppveyor上ではmruby-mrmagickのテストが異常終了して しまう模様。
その為、cinstでレガシーオプションを有効にして入れたImagemagickのconvert等の コマンドがAppvoyerで動かされることは無かった。。
手元で確認する限り、普通には使えるバイナリが出来てはいるので、 とりあえず、Githubのリポジトリにはバッジを付けることを優先することにした。
参考資料
- https://github.com/bdukes/Chocolatey-Packages/issues/6
- https://www.imagemagick.org/discourse-server/viewtopic.php?t=29582