2014年1月3日金曜日

cmake: ImageMagick/Magick++


cmakeで<Magick++>を使ったプロジェクトをビルドしたい場合の例です。
ソースコード側で#include <Magick/Magick++.h>せずにcmakeでコンパイラーへのincludeパスの追加を指示しているところがちょっとしたポイントです。

GLUTなんかだとOSによってシステムへのインストールパスが違うのがcmakeのfind_packageと${GLUT_INCLUDE_PATH}ではどうにもならないので、結局ソースコードにせよCMakeLists.txtにせよプラットフォームによる分岐が必要になるのでなんだかなーと言った具合ですが、ImageMagickの場合はソースコード中で<Magick/Magick++.h>しちゃうとそもそもその内部での#include<>記述のためにコンパイル不能になってしまいます。

それもそれでなんだかなーと思うものの、cmake/FindXXX.cmakeでincludeディレクトリーを適切に拾ってくれる事になっているのは便利で良いですね。

もののついでに蛇足として、cmakeのFindXXX.cmakeによって得られる${ImageMagick_INCLUDE_DIRS}のような変数の命名規則にも事実上ルールが無くて混沌としている状況もなんとかなって欲しいところです。ものにとっては${nantoka_DIR}だったり、${nantoka_include_path}だったり、${nantoka_DIRS}だったり・・・。

参考:
  1. http://stackoverflow.com/questions/7902916/set-path-in-cmake-c-imagemagick

0 件のコメント:

コメントを投稿