日々鍛錬

日本で一番?わかり易い??システムの落書き帳???を目指し????,日々鍛錬中な元SEさん主婦研究者によるデベロッパとユーザと自分のための雑記帳

Homebrew によるImageMagickのインストール

いちいち,プレビュー起動で見るのがめんどくさくなったので.
それよりは,displayコマンドで見たほうが楽ちんなことが多いのです.
ということで,設定します.


少しハマったので,むむむ??となりました.
そのメモメモを兼ねて入れます.

Homebrew のインストールだとかセットアップだとかについてはこちらを
Mac にHomebrew をインストールする - 日々鍛錬

また,Homebrewの詳しい説明については,以下のサイトが参考になります

HomeBrewの仕組みについてまとめておく - それマグで!


1. Homebrew のUpgradeとUpdate
まずは,HomebrewのDB内情報を最新版に更新します.
次のコマンドをタイプします.

$ brew update
$ brew upgrade

ここで,

brew update
Homebrew の本体とfomulaの本体をそのまま 全体としてUpdate

brew upgrade
利用可能なUpdate version のformulaが存在するかを確認し,
その内容をupdate する

ところが,こちらのupdateをかけると,'Permision not defined'が出てしまいました...

brew upgrade
Error: Cannot write to /usr/local/Cellar

この場合は,以下のコマンドを実行します.

sudo chown -R "whoami" /usr/local/Celler


他にもこんなエラー群が

error: The following untracked working tree files would be overwritten by merge:
Library/Formula/freeswitch.rb
Library/Formula/nailgun.rb
Library/Formula/storm.rb
Please move or remove them before you can merge.
Aborting
Error: Failure while executing: git pull -q origin refs/heads/master:refs/remotes/origin/master


この場合は,gitの情報を書き換えました.
以下のコマンドを実行します.

$ cd /usr/local
$ git fetch origin
$ git reset --hard origin/master

これで,HomebrewのCellerに最新版をかけることができるわけですので,
この処理の後に,再度brew updateで最新版にしておきます.

その後,Imagemagickのインストール

$ brew install imagemagick --with-x11

エラーが以下の様に吐出された.

Warning: imagemagick dependency libtiff was built with a different C++ standard
library (libstdc++ from clang). This may cause problems at runtime.
/usr/local/Cellar/imagemagick/6.8.9-8: 1433 files, 22M, built in 93 seconds

昔のVersionと強豪しているので,最初にunlinkして,それからSoftwareをインストールします.
Softwareというのは,そうやって成立しているものだと改めて実感した.

$ brew unlink imagemagick

次は,ようやくおまたせなインストールのオプションを切り替えて,以下のコマンドで実行

$ export DISPLAY=:0.0
$ brew install imagemagick --disable-openmp --build-from-source --with-x11

画像系のSetupということを想定すると,おそらく,Exportの問題も絡みます.
以下を.profileに1行記述して,必ずsource読み込みをします.

export DISPLAY=:0.0

$ source .profile


以下のメッセージよりエラー無しで私はOKと判断しました!

brew install imagemagick --disable-openmp --build-from-source --with-x11
==> Downloading http://www.imagemagick.org/download/releases/ImageMagick-6.8.9-8
Already downloaded: /Library/Caches/Homebrew/imagemagick-6.8.9-8.tar.xz
==> ./configure --disable-osx-universal-binary --prefix=/usr/local/Cellar/imagem
==> make install
🍺 /usr/local/Cellar/imagemagick/6.8.9-8: 1437 files, 23M, built in 86 seconds

適当な画像をChoiceして実際にdisplay command で実行してみてください.

$ display hoge.jpg
$ display hoge.pgm

これで,実行できればImageMagickの設定は完了です.

要は,リポジトリはちゃんとupdateを掛けておきましょう!

複素数の共役を求めるコードをCにて記述する

学生さんからのコード記述における質問にて,
C言語複素共役を求めるコードの記述を行いたい.


色々わかったことがあったので,メモ書き
サンプルコードはこちらのサイトを介して勉強しました.

C言語関数辞典 - conj, conjf, conjl

こちらのコードを利用する.

/* header files */
#include <stdio.h>
#include <stdlib.h>
#include <complex.h>

/* main */
int main(void) {
    double complex z = 3.0 + 2.0 * I;
    double complex conjugate;

    /* 共役複素数を取得 */
    conjugate = conj(z);
    printf("共役複素数: %.1f + %.1fi\n", creal(conjugate), cimag(conjugate));

    return EXIT_SUCCESS;

C言語C++ では,標準ライブラリとして

#include <complex.h>   //C言語
#include <complex>      //C++

が用意されている.

早速, Codeを用意して,コンパイル+実行を!・・・・

Visual studioC言語を行なってみる.
...動作しない.・・・

色々キーワードを調べて評価を行うが,どうしても動作しない
動作しない理由を調査する.


教えて!Ziddyちゃん - C言語の複素数についてです。


もしかすると....と思いまして,Visual studioLinux gcc にて
同codeを確認してみる.

なんと,Visual studio 2013では,動作しなかったが,Linuxgccでは動作しました.
しかし,Visual studio 2013 のC++ではきちんと動作しました...

どうやら,Visula studio 2013では,complex.hに定義されたライブラリ,C言語では動作しないぽい.
なんてこった....

class templateでの定義上での利用になっているのだろうか.
#define complexもダメでございました.

visual studio は2013からC99の大半を実装しているらしいのですが,やはりまだ幾つか機能も実装されてないらしい...
ということは,その実装されてないライブラリのひとつとして,complex.hがあるというのだろうかしら.

VTK6.2+Qt5.10+MSVS2012でVTK環境を構築する

たとえ仕事といえど,何度繰り返し入れまくったかわかりません.
これが私です.


今回は,VTK6.2+Qt5.10+MSVS2012でVTK環境を構築します.
環境は
 Windows 7.
 メモリ 6GB (←若干上がった♪
 IDE   Microsoft Visual studio 2012 SP1


ということで,まずはVTKの最新版をインストールします.


1. VTKのダウンロード
2014/07/16の段階でのGit版で私は頂きました.
まず,コンソールでVTKをインストールしたい場所へ移動します.

cd

:GitによるSourceの最新場所の置き場

ここで,以下のコマンドを行う.

git clone git://vtk.org/VTK.git

しばらく,15分ほどダウンロードを待ちますと,/VTKのディレクトリができます.
このディレクトリがGitによるVTKのソースになるわけです.
ここで,(調子にのって)もう一つ以下のコマンドを打ち込みます.

git clone http://vtk.org/VTKData.git

VTKのサンプルを動作させるとき,これらデータセットで動作させることになります.



2.CMakeによるConfig

CMakeの最新版をインストールしているということを条件とします.
先ほどの/VTK内のCMakeLists.txtをCMakeで開き,以下を設定します.

  • BUILD_SHARED_LIBS チェックオン
  • CMAKE_CONFIGURATION_TYPES Debug; Release
  • VTK_QT_VERSION    5 (5.10をインストールするためです.)
  • Module_vtkGUIsupportQt    Qt チェックオン
  • Module_vtkGUIsupportQtOpenGL Qt チェックオン
  • Module_vtkGUIsupportQtWebkit Qt チェックオン
  • Module_vtkGUIRenderingQt
  • VTK_Group_Qt チェックオン

また,CMake上の「Add Entry」をクリックし,以下を入力してOKを押下します.

Name -> CMAKE_PREFIX_PATH
Type -> PATH
Value-> C:/Program Files (x86)/Windows Kits/8.0/Lib/win8/um/x64 (←自分の環境に合わせる)

これで,Configします.エラーがなければ,Generateを行います.


3. Visual studio 2012でBuild

Debugモードで,All_buildをBuild+INSTALLでBuildを行います.
その後,ReleaseモードでAll_buildをBuild+INSTALLでBuildを行います.

エラーがなければ,PATHをセットして終了.

ITKのインストール その1(一番基本的なインストール)

順調に2ヶ月更新になっていることは気にしないでください.
更新している時間がないので...
#と言っても,,,色々実験ノートの一つとして使ってるので,やはり更新は必要です.


今回はITKのインストールを説明します.
ITKとは,については,後日記載予定(予定は予定であくまで未定)


ITKのインストールと一言で言っても,色んなパターンがあります.
ここでは,以下のように分けたITKのインストール方法を説明します.

  1. 一番基本的なITKのインストール
  2. Pythonなどの言語とのインストール
  3. OpenCV,VTKなどのmoduleオプションとしてインストール

今回は,1. の基本的なITKインストール方法の説明
以下の環境で動作を確認.

また,ITKのインストール環境には以下を用意

  • openCV 2.4.9
  • VTK 6.2
  • ITK Ver 4.5.2
  • CMake 2.8.12


Windows SDKのインストールされたVersionがわからない場合,レジストリで確認できるので,
以下から,たどってみる

1. スタートメニュ―の検索から「regedit」を起動
2. 「HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SDKs\Windows\」をたどる
3.インストールされたリストが提示

あとは,.NETも最新版をあてておくようにしましょう.


1. ITKのダウンロード
以下のサイトからITKのソース一式をダウンロード
ITK Download

ダウンロードされたデータをSouerceとして保存したい場所にてディレクトリを展開.
展開されたディレクトリ(Winならフォルダの意)を今回ITK452srcとした

%MyLibDir%ITK/ITK452/ITK452src/

%MyLibDir%は,自分の環境にインストールする一式を取りまとめたフォルダやディレクトリを指している.

2. CMake でSource とBuild の設定
CMakeを起動し,以下のように指定
起動時,Compilerの設定が求められるので,自分の環境に合せたCompilerを選択する.
#私は,MSVS12, x64を選択

Where is Source code : %MyLibDir%ITK/ITK452/ITK452src/ <先ほどのSourceの指定フォルダ>
Where is Build he binaries : %MyLibDir%ITK/ITK452/ITK452src/Build <先ほどのSourceの指定フォルダにBuildを作成>

Build指定のフォルダがない場合,作る?と聞かれるのでYesを押下
Configureを押下して待つ


3. CMakeのConfigure準備

2. の方法で,一度Configureが終了→真っ赤になる.
Configure準備の準備をととのえる.
今回はStandardなConfigなので,以下を設定

BUILD_DOCUMENTATION チェックなし
BUILD_EXAMPLE チェックなし
BUILD_SHARED_LIBS チェックなし
BUILD_TESTING チェックなし
CMAKE_CONFIGURATION_TYPES: Debug; Release
CMAKE_INSTAL_PREFIX : %MyLibDir%ITK/ITK452/ITK452Bin/stBin
CMAKE_PREFIX_PATH :C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x64 (先のWindowsSDKの場所を指定)
CMAKE_MODULE_PATHC:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x64

BUILD_* について,時間がかかったり,必要なライブラリ,環境が求められる.
また,TESTもものすごい時間がかかる.
だから,チェックをつける必要ありません.
BUILD_SHARED_LIBS については,別のインストール方法で記載します.

上記設定後,先と同様にConfigureを押下
赤の注意が出たら,指示に従って修正するけど,この段階では出ないだろう.
#ただし,INSTALL_PREFIXで指定したフォルダ名が長い時は怒られますので,
#解りやすく区別しやすい表記名で(日本のはもってのほかですが,空白や記号を入れないこと!)

4. インストーラの構成
Configが終了すれば,「Configuring done」と出るので,次に「Generate」ボタンを押下
問題なければ,「Generating done」が表示され,2.で指定したBuildフォルダ内に「ITK.sln」ができる.
このソリューションファイルを開いて,準備が整うのを待つ

5.ALL_BUILD とINSTALLのビルド
ITK.slnの準備が整ったら,まずはDebug と x64の環境下でALL_BUILDのBuildを行う.
問題なく終了したら,INSTALLのBuildを行う

次に,Releaseでx64環境下でALL_BUILDのBuild,INSTALLのBuildを順に行う.
終了後に,INSTALL_PREFIXで指定した場所にてそれぞれ,以下のフォルダ(ディレクトリ)が
作成され,それぞれのファイルができている.

bin/
include/
lib/
share/

これで,ITKのインストールは終了
あとは,環境変数設定と動作確認

6. 環境変数の設定
スタートメニューやエクスプローラ内の「コンピュータ」をクリックすると,エクスプローラのアドレスバー下に「システムのプロパティ」が出現する,

システムの詳細設定を選択し,「詳細設定」→「環境変数」を指定

環境変数内に「新規作成」で以下を設定

変数名 ITKPath (お好きな半角英数字で)
変数値 <CMAK_INSTALL_PREFIXの指定場所>

あとは,すべてOKを押下,システムプロパティをすべて終了

Mac にHomebrew をインストールする

Macports ではSVNなどの設定やら,Proxyの問題がありありです.
ちゃんと設定やらをしたらよいのですが,自宅でやら研究室でやら..の研究を行うのであれば,port updateの度に設定を変えるのは正直めんどくさい.

なら,proxyに依存したくない! そんな私に朗報
#たまたま,環境でhomebrew のproxy が大丈夫だったというオチはありますが...
#proxy認証環境は管理者にお問い合わせが必要です.

「HomeBrew」を使えば良い

Home brew

  • Mac OS 上でのソフトウェア管理を行うソフトウェアのこと
  • Macの中に入っているソフトウェアを尊重して利用するVersion 管理なので,利用しやすい

ということで,インストールする.

インストール方法は以下のとおり
参考サイトはこちら
MacOSX - パッケージ管理システム Homebrew - Qiita

ただし,事前にxcodeをインストールしておくこと.
私は,ver.5.1.1 (2014年4月28日における最新Ver.)で以下を行いました.


1 . Javaのインストール確認とインストール

Javaの確認は以下から

$ java -version

(インストールされているなら,以下のようなメッセージが出力)
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)

インストールされていなければ,インストールするよう,メッセージが出力されるので,
指示に従います.

2. xcode コマンドラインをインストール
実は,こちらが今回,homebrew インストールでは手間取りました.
#あまり手間ではなかったけど....
というのも,xcodeからのcommand Line tool のセットアップでお馴染みの,

『「Xcode」→「Preferences」→「Downloads」→「Components」』

では,できませんでした.

色々調べたら,以下がヒット
MavericksでCommand Line Tools for Xcodeをインストールする - Qiita

こちらの手順に従って,以下に従ってCommand Line Tool をインストール

Xcode->Open Developer Tool->More Developer Tools

こちらから,Command Line Tool を選択し,installを行うには,Apple IDのサイトに移動します.
ここで,Apple IDを入力すると,Command Line Toolがインストール出来る準備ができますので,
サイトからダウンロードし,インストールする.

3. HomeBrew 本体をインストールする

以下のコマンドをTerminal上で行う

 ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"

本体インストールができたら,success というコメントが出ます.
そのコメントが出力されたなら,早速,homebrew の最新チェックと更新 を以下で行います.

4. システムの整合性確認

$ brew doctor

5. システム更新

$ brew update

これで,色々システムの更新やインストールができます.
MacOpenCVインストールはhomebrewを使うととっても簡単にできます.
次の機会にでも案内します.

Emacs の初期設定

init.elのとりまとめ.
今はダッシュのメモ書きなので,このスペースはinit.elのための落書き帳としてます.

参考にしたサイトは以下のとおり.

両者共にわかりやすいですが,uwabamiさんのサイトは特にわかりやすい.
今度時間があるときにでも,もっとよく読んで理解をしていきます.

ひとまず,私は以下のとおりに設定している.

; -*- Mode: Emacs-Lisp ; Coding: utf-8 -*-
;; ------------------------------------------------------------------------
;; @ load-path

;; load-pathの追加関数
(defun add-to-load-path (&rest paths)
  (let (path)
    (dolist (path paths paths)
      (let ((default-directory (expand-file-name (concat user-emacs-directory path))))
        (add-to-list 'load-path default-directory)
        (if (fboundp 'normal-top-level-add-subdirs-to-load-path)
            (normal-top-level-add-subdirs-to-load-path))))))

;; load-pathに追加するフォルダ
;; 2つ以上フォルダを指定する場合の引数 => (add-to-load-path "elisp" "xxx" "xxx")
;;(add-to-load-path "elisp" "C:\MySystem\MySystem\emacs\lisp")
(add-to-load-path "C:/MySystem/MySystem/emacs/elisp")
(add-to-load-path "elisp")
(add-to-load-path "elpa")
(add-to-load-path "lisp")
(add-to-load-path "site-lisp")
(add-to-load-path ".emacs")
;; ------------------------------------------------------------------------
;; @ general

;; common lisp
(require 'cl)

;; 文字コード
(set-language-environment "Japanese")
(let ((ws window-system))
  (cond ((eq ws 'w32)
         (prefer-coding-system 'utf-8-unix)
         (set-default-coding-systems 'utf-8-unix)
         (setq file-name-coding-system 'sjis)
         (setq locale-coding-system 'utf-8))
        ((eq ws 'ns)
         (require 'ucs-normalize)
         (prefer-coding-system 'utf-8-hfs)
         (setq file-name-coding-system 'utf-8-hfs)
         (setq locale-coding-system 'utf-8-hfs))))


;; Windowsで英数と日本語にMeiryoを指定
;; Macで英数と日本語にRictyを指定
(let ((ws window-system))
  (cond ((eq ws 'w32)
         (set-face-attribute 'default nil
                             :family "Meiryo"  ;; 英数
                             :height 100)
         (set-fontset-font nil 'japanese-jisx0208 (font-spec :family "Meiryo")))  ;; 日本語
        ((eq ws 'ns)
         (set-face-attribute 'default nil
                             :family "Ricty"  ;; 英数
                             :height 140)
         (set-fontset-font nil 'japanese-jisx0208 (font-spec :family "Ricty")))))  ;; 日本語

;=======================================================================
;フレームサイズ・位置・色など
;=======================================================================
(setq default-frame-alist
      (append (list '(foreground-color . "black")
   '(background-color . "LemonChiffon")
   '(background-color . "gray")
   '(border-color . "black")
   '(alpha . (85 40))
   '(mouse-color . "white")
   '(cursor-color . "black")
   '(font . "fontset-メイリオ")
   '(width . 100)   ;文字数
   '(height . 100)   ;文字数
   '(top . 100)     ;pixel値 表示位置
   '(left . 100))
     default-frame-alist))

;; スタートアップ非表示
(setq inhibit-startup-screen t)
;; scratchの初期メッセージ消去
(setq initial-scratch-message "")

;; ツールバー非表示
(tool-bar-mode -1)
;; メニューバーを非表示
;;(menu-bar-mode -1)
;; スクロールバー非表示
(set-scroll-bar-mode nil)

;; タイトルバーにファイルのフルパス表示
(setq frame-title-format
      (format "%%f - Emacs@%s" (system-name)))
;; 行番号表示
(global-linum-mode t)
(set-face-attribute 'linum nil
                    :foreground "#800"
                    :height 0.9)
;; 行番号フォーマット
(setq linum-format "%4d")

;;; 対応する括弧を光らせる。
(show-paren-mode 1)
;;; ウィンドウ内に収まらないときだけ括弧内も光らせる。
(setq show-paren-style 'mixed)
;;; 現在行を目立たせる
(global-hl-line-mode)
;;; カーソルの位置が何文字目かを表示する
(column-number-mode t)
;;; カーソルの位置が何行目かを表示する
(line-number-mode t)

;; 行末の空白を強調表示
(setq-default show-trailing-whitespace t)
(set-face-background 'trailing-whitespace "#b14770")

;; タブをスペースで扱う
(setq-default indent-tabs-mode nil)
;; タブ幅
(custom-set-variables '(tab-width 4))

;; yes or noをy or n
(fset 'yes-or-no-p 'y-or-n-p)
;; ミニバッファの履歴を保存する
(savehist-mode 1)
;; ミニバッファの履歴の保存数を増やす
(setq history-length 3000)

;; 行間
;(setq-default line-spacing 0

;; 1行ずつスクロール
(setq scroll-conservatively 35
      scroll-margin 0
      scroll-step 1)
(setq comint-scroll-show-maximum-output t) ;; shell-mode

;; フレームの透明度
(set-frame-parameter (selected-frame) 'alpha '(0.85))

;; http://www.gentei.org/~yuuji/software/euc/instamp.el
;; 現在時刻挿入
(setq display-time-string-forms
  '(year "/" month "/" day " " dayname " " 24-hours ":" minutes " "
    (if mail " Mail" "")))
(display-time)

;; M-wやC-kでコピーしたものを、他のアプルケーションで貼り付け可能にする
(cond (window-system
       (setq x-select-enable-clipboard t)
))

;;自動スペルチェック
(add-to-list 'exec-path "C:/MySystem/MySystem/emacs/Aspell/bin")
(setq-default ispell-program-name "aspell")
;;プログラムが起動したら,自動でスペルチェックを起動
(eval-after-load "ispell"
 '(add-to-list 'ispell-skip-region-alist '("[^\000-\377]+")))
; flyspell-mode
  (mapc
   (lambda (hook)
     (add-hook hook 'flyspell-prog-mode)) ;;ここではコメントの領域におけるスペルチェック
   '(
     c-mode-common-hook
     emacs-lisp-mode-hook
     ))
  (defun my-flyspell-mode-enable ()
    (flyspell-mode 1))
  (mapc
   (lambda (hook)
     (add-hook hook 'my-flyspell-mode-enable)) ;;ここではファイル全体そのものにスペルチェック   
   '(
     changelog-mode-hook
     debian-control-mode-hook
     tex-mode-hoo
     yatex-mode-hook
     text-mode-hook
     ))

;;auto-complete
;(add-to-list 'load-path "~/.emacs.d/site-lisp")
;(require 'auto-complete-config)
;(add-to-list 'ac-dictionary-directories "~/.emacs.d/site-lisp/ac-dict")
;(ac-config-default)
;;
;;



;; ------------------------------------------------------------------------
;; @ modeline

;; モードラインの割合表示を総行数表示
(defvar my-lines-page-mode t)
(defvar my-mode-line-format)

(when my-lines-page-mode
  (setq my-mode-line-format "%d")
  (if size-indication-mode
      (setq my-mode-line-format (concat my-mode-line-format " of %%I")))
  (cond ((and (eq line-number-mode t) (eq column-number-mode t))
         (setq my-mode-line-format (concat my-mode-line-format " (%%l,%%c)")))
        ((eq line-number-mode t)
         (setq my-mode-line-format (concat my-mode-line-format " L%%l")))
        ((eq column-number-mode t)
         (setq my-mode-line-format (concat my-mode-line-format " C%%c"))))

  (setq mode-line-position
        '(:eval (format my-mode-line-format
                        (count-lines (point-max) (point-min))))))
;; モードラインに行番号表示
;(line-number-mode t)
;; モードラインに列番号表示
;(column-number-mode t)


;;;;;;;;;;;;;;;;;Lispの設定;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;auto-install
(add-to-list 'load-path (expand-file-name "~/.emacs.d/auto-install/"))
(require 'auto-install)
(auto-install-update-emacswiki-package-name t)
(auto-install-compatibility-setup)

;; ------------------------------------------------------------------------
;; @ menu-tree.el
;; メニューバー日本語化
;; http://www11.atwiki.jp/s-irie/pages/13.html
(if (and (= emacs-major-version 22)
         (eq window-system 'x))
    (setq menu-tree-coding-system 'utf-8))
(require 'menu-tree nil t)


;;;;;;;;;;;;;;;;;;;;;;;;

;;======================================================================
;; TeX
;;======================================================================
; YaTeX-mode
(setq auto-mode-alist  (cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
(setq load-path (cons "~/.emacs.d/yatex" load-path))         ;;ココにyatexのパス書く
(setq tex-command "platex")
(setq dvi2-command "C:/MySystem/MySystem/w32tex/dviout/dviout.exe" )                   ;;ココdvioutのパス書く
(setq dviprint-command-format "dvipdfmx %s ")
; BibTex
(add-hook 'yatex-mode-hook 'turn-on-reftex)

VTKのCMakeLists.txtを読み解く

今回は時間の関係上,VTKに特化したCMakeLists.txtについて記載する.

以下に一般的なVTKのCmakeLists.txtを示す.

cmake_minimum_required(VERSION 2.8)
 
PROJECT(VTKPolydataSingleObj)
 
find_package(VTK REQUIRED)
include(${VTK_USE_FILE})
 
add_executable(VTKPolydataSingleObj MACOSX_BUNDLE VTKPolydataSingleObj)
 
if(VTK_LIBRARIES)
  target_link_libraries(VTKPolydataSingleObj ${VTK_LIBRARIES})
else()
  target_link_libraries(VTKPolydataSingleObj vtkHybrid)
endif()

1行ずつ読んでいく

cmake_minimum_required(VERSION 2.8)

これは,CMakeを実行する際に,最低限守らないといけない,CmakeのVersionを示してます.
よって,このシステムは,CMakeのVersionは最低,2.8以上でなければなりません.

PROJECT(VTKPolydataSingleObj)

このシステムのプロジェクト名を指定します.
Makeファイルでいうところ,各実行系の名前を指定する所,ということでしょう.
ここでは,プロジェクト名をVTKPolydataSingleObjとしているようです.


さて,いよいよ,こちらからが本格的なVTK情報読み込みデス.

find_package(VTK REQUIRED)

VTKを動作させるために,必要なLink先やコードの位置を探している所デス.
位置などを読み込んだ後に,見つけたライブラリのパスなどを通します.
ここで,複数のライブラリを組み合わせます.

include(${VTK_USE_FILE})

VTK を動作させるためのファイル一式をプロジェクトに取り込む命令文

add_executable(VTKPolydataSingleObj MACOSX_BUNDLE VTKPolydataSingleObj)
<<
VTKを実行させる,実行系ファイルの名前の指定です.
第1引数がMain関数のコード名,第2は関係なし,第3引数が実行系ファイルの名前となる.

if(VTK_LIBRARIES)
target_link_libraries(VTKPolydataSingleObj ${VTK_LIBRARIES})
else()
target_link_libraries(VTKPolydataSingleObj vtkHybrid)
endif()