PixarのUniversal Scene Descriptionをビルドしてみる
20170902。実はビルドスクリプトがあって、簡単になっていた。
動画でCEDEC2017のセッションを聞いてよさげな気がしたので再度やってみた(ちょっと前に途中までやって放置していた)。
usdviewが使えるようにするとよいらしい。
Pixar USD の Windows ビルド方法(2017/9 版)
自動ビルドスクリプトがついているので放っておくだけなのだけど、うまくいかなかったところを補足する。
環境は、Windows10(64bit)
+ VisualStudio2017
+ VisualStudio2015 のコンパイラ追加インストール(VisualStudio2017のインストールメニューにある)
visualstudio補足
VisualStudioは、最近のバージョンに限ってもいろいろある。
- VisualStudio2017(MSVC14.1)のみ
- VisualStudio2017(MSVC14.1)にVS2015(MSVC14.0)のコンパイラが追加インストールされている(うちはこれ)
- VisualStudio2015(MSVC14.0)のみ
- Visual C++ 2015 Build Tools(MSVC14.0)Python3ビルド向けにIDEの無いバージョン)
ものによって vcvars.bat
の場所が違って、bjam
とか distutils
がコンパイラの発見に失敗したりする場合があるようだ。
cl.exe
が見つからないような場合、visualstudioの提供する設定済みのdosプロンプトから始めるのが手堅いかもしれない。
一応、
VisualStudio2017 - x64 native tools command prompt
からはじめる。
CMakeはVisualStudioの検出にあまり失敗しないので、おもにBoostのビルド対策。
効果があったかは不明。
VS2017
しか入っていないとき
build_usd.py内Boost.Pythonに関してmsvc=14.0指定(VS2015)があるので、これをコメントアウトすればたぶんVS2017しかなくてもビルドできる。Windows版のPython2.7のビルドコンパイラは VS2008(MSVC9.0)
らしい。
www.microsoft.com
https://www.microsoft.com/en-us/download/details.aspx?id=44266
python補足
Python27以外のPythonが入っているとはまる率が上がる。
python使いたるもの2系、3系両方入っていたりするものである。
cloneしてビルドスクリプトを実行
こんな風に足りないツールのメッセージが出るのでせっせとインストールしてパスを設定する。
set PATH=D:\Program Files\CMake\bin;%PATH%
set PATH=D:\Program Files\NASM;%PATH%
build…
Alembicとか無しの最小ビルド。
こんな感じに順番にビルドが進んでいく。
pngのビルドでこけた
何故か、zlibへのリンクがうまくいっていない?
CMakeのGUIでsourceをUSD_build/src/libpng-1.6.29、buildをD:/dev/_alembic/USD_build/build/libpng-1.6.29にして確認するとZLIB_LIBRARY_RELEASEがC:/Program Files/Anaconda3/Library/lib/z.libになっていてお察し。
pythonをフルパスで指定したらなんか治った。違うPythonが意図せず使われていたか。
dos窓は、whichコマンドが無いしよくわからん。
ビルドできた。
Boost.Pythonメモ
boost_python-vc140-mt-1_61.dll
が python36.dll
とか違うのにリンクしてしまう場合。
最悪PythonをすべてアンインストールしてPython27(64bit)だけをインストールすればいけるのだが、それでは負けた気がするのでBoost.Pythonに使うPythonを強制する方法。
を作って環境変数 BOOST_BUILD_PATH
を user-config.jam
のあるディレクトリに指定する。
%USERROFILE%\user-config.jam
に作って BOOST_BUILD_PATH
無しでもよいが、消し忘れるとあとではまる可能性が増えると思う。
Configuration
http://www.boost.org/build/doc/html/bbv2/overview/configuration.html
WindowsのBoost.Pythonは作るときも使うときもリンクではまる。
usdviewを使ってみる
USD_BUILD/bin/usdviewがある。
usdviewを改造してしまおう。
環境変数PATHとPYTHONPATHを追加。
usdview.cmd改造でもよいがpythonの方が書きやすいので。
usdviewの冒頭のimport前に下記を追加。
実行。
引数が必要と。
実行。
Windowは出た。しかしglslのエラーで3DViewの描画ができぬ。
Rx480がだめなのだろうか。
GTX買わねば・・・
Alembic追加する
ToDo