ただ問題なのがBoost関連の設定。
aptでインストールしようにも現時点で提供されているバージョンは1.40。
LuxRenderで要求されているのは1.41。
でうまくいったやり方はとりあえず2通り。
A:バージョンを無視する。
B:Boostのソースを入手して使う
まずはAのパターン
LuxRenderのCMakeLists.txtを開いてBoostの有無を確認している箇所を探す。
そこで
FIND_PACKAGE(Boost 1.41 REQUIRED COMPONENTS python)
となっているのをFIND_PACKAGE(Boost 1.40 REQUIRED COMPONENTS python)
としてバージョンを書き換えてしまう。同じような箇所が直後にもう一行あるのでそっちもバージョンを書き換える。
という感じで2ヶ所書き換えたら
$ cmake -G "Unix Makefiles"
$ make luxrender
で完了。要求されているライブラリのバージョンを無視しているわけですが
とりあえずビルドできて今のところちゃんと動いている模様。
これはちょっと気持ち悪いなぁという方はBのパターンへ。
で、Bのパターン
Boostのソースをもらってくる。上記wikiの解説では1.42.0をもらってきているので
それをもらってくる。
ソースのアーカイブを展開
$ tar zxvf boost_1_42_0.tar.gz
$ cd boost_1_42_0
Boostのコンパイル$ ./bootstrap.sh
$ ./bjam --layout=system stage
まではwikiの解説どおりでOK。上で出来上がったBoost1.42をインストールするのが簡単なんだろうけど
システムはaptで管理させておきたいのと、なるべくUbuntu10.04標準の状態に
しておきたいのでBoost1.42はインストールせずにLuxRenderのビルドだけで
使用するようにしたかったわけで。
となるとちょっと面倒でwikiの解説に
If you did not install Boost 1.42 to your system, you will need to editとあるとおりCMakeLists.txtでのBoost関連の設定をいじらないといけない。
lux/CMakeLists.txt to change the name of the Boost libs to those you just built.
で、どこをどう修正したらいいかは説明されていないorz
とりあえずだめもとでCMakeLists.txtを修正せずにmakeすると、リンク時にBoost関連と
思われるエラーが大量にでる。
いろいろ試した結果、CMakeLists.txtの
IF(Boost_FOUND)
MESSAGE(STATUS "Boost library directory: " ${Boost_LIBRARY_DIRS}
MESSAGE(STATUS "Boost include directory: " ${Boost_INCLUDE_DIRS}
ELSE(Boost_FOUND)
の部分をIF(Boost_FOUND)
SET(Boost_LIBRARY_DIRS ../boost_1_42_0/stage/lib)
SET(Boost_INCLUDE_DIRS ../boost_1_42_0/boost)
MESSAGE(STATUS "Boost library directory: " ${Boost_LIBRARY_DIRS}
MESSAGE(STATUS "Boost include directory: " ${Boost_INCLUDE_DIRS}
ELSE(Boost_FOUND)
という感じに変更して用意したBoost1.42のライブラリとインクルードファイルのディレクトリを指定してやればOK。
あとはwikiの解説を参考にすれば出来上がり。
さあ、これで最適化ビルドが作り放題だw
---------------------------------------------------------------
コメントなどありましたらこちらへ->web拍手