2012年11月13日にリリースされた OpenCASCADE 6.5.4 を Microsoft Visual Studio でビルドする方法を忘れないうちにメモしておきます。
OpenCASCADE で単純に開発したいだけなら、バイナリパッケージのインストールだけで十分ですが、次のような場合は自前でビルドする必要があります。
- Microsoft VIsual Studio 2008 以外のバージョンで開発したい。
- OpenCASCADE 本体のソースコードを追いかけてデバッグしたい。
1. 必要なものを取得する
OpenCASCADE の公式ページの Download Center より、インストーラパッケージを取ってきます。ユーザ登録が必要ですので、登録後、公式ページにログインしてからダウンロードしてください。
ビルドに必要なパッケージは、OpenCASCADE654.exe だけです。また、開発にはクラスリファレンスも必要になってきますので、OCCTDocumentation654.exe も同時にダウンロードしておくべきでしょう。
OpenCASCADE654.tar.gz は、バイナリを含まないソースコードパッケージです。こちらの構成には、Visual Studio のソリューション・プロジェクトファイルの他に makefile も同梱されているので、非 Visual Studio 環境で開発する場合はこれを利用します。(今回は Visual Studio ですので割愛します。)
ちなみに、私の環境は Microsoft Windows 7 Professional 日本語版 32ビット、Microsoft Visual Studio 2008 SP1 です。
2. セットアップ
OpenCASCADE654.exe を実行すると、セットアップ・ウィザードが表示されます。インストールパスは、標準では「C:\OpenCASCADE6.5.4」となっていますが、任意の場所にインストールして構いません。(ただし、念の為にパス中に空白文字やワイド文字が入らない場所が無難でしょう。) 私の場合は、複数のバージョンの OpenCASCADE を使い分けているので「E:\opt\occ\654」にインストールすることにしました。この例でもこのパスを利用します。
次にインストール構成を設定します。「Custom installation」を選択するとインストールするものにチェックを入れて選択できるようになります。OpenCASCADE を利用した開発に最低限必要なのは、「Open CASCADE Technology」の「Binary Files」のみです。この Binary Files には、「Release」構成でビルドされた DLL ファイルの他、インクルードヘッダ、ライブラリファイルも含まれています。
今回は、自前で「Debug」構成のビルドをしたいので、バイナリに加えて「Source Files」も選択しておきます。「Documentation」は、先ほどダウンロードした OCCTDocumentation654.exe に入っているものとは違います。先ほどのファイルはクラスリファレンスですが、こちらのドキュメンテーションは、OpenCASCADE 全体について丁寧に解説してある PDF ファイルになります。有用な情報がたくさん入っているので、これもインストールした方がいいと思います。
また、サンプルも実際に動作する有用なコードがたくさん入っているので、自分の環境にあったものを入れておくと良いでしょう。
3. 簡単なディレクトリ構成の説明
インストールが終わると、指定した場所以下に全てのファイルが展開されています。ここでは「E:\opt\occ\654」を指定したので、そのフォルダを開くと以下のようなディレクトリが展開されていると思います。
3rdparty ... OpenCASCADE が利用しているサードパーティ製ライブラリ群 data ... サンプルとして使える CAD データファイル doc ... ドキュメンテーション ros ... OpenCASCADE の本体が入ってるフォルダ samples ... サンプルプロジェクト
ドキュメンテーションやサンプルをインストールしなければ、いくつか存在しないフォルダがあるかもしれません。
ソースコードやプロジェクトファイルが入っているのは、ros フォルダの下になります。この ros フォルダが OpenCASCADE を用いた開発の基点となるフォルダですので、以後 CASROOT と記載します。(OpenCASCADE では、この ros フォルダへのフルパスを環境変数 CASROOT として定義して参照しています。OpenCASCADE 関連のドキュメントで CASROOT という表現が出てきたら ros フォルダのことだと思ってください。)
CASROOT の内容は次のとおり。
adm ... プロジェクトファイルが入っているフォルダ drv ... クラスの定義ファイルが入っているフォルダ inc ... インクルード・ヘッダが入っているフォルダ src ... ソースファイルが入っているフォルダ win32 ... win32 向けのバイナリとライブラリファイルが入ってるフォルダ custom.bat ... 開発者の環境に合わせて環境変数などの定義を変更するためのスクリプト draw.bat ... Draw Test Harness を起動するためのスクリプト env.bat ... OpenCASCADE が必要とする環境変数を定義するスクリプト msvc.bat ... ビルドに必要な環境変数を設定し、Visual Studio を起動するためのスクリプト
それぞれのバッチファイルは、内部で env.bat を呼び出しています。OpenCASCADE のサンプルを実行したり、ビルドに必要な環境変数は env.bat や msvc.bat をテキストエディタで開いてみると分かると思います。
4. ビルド
以前のバージョンでは、日本語 Windows 環境では修正をしないとビルドが通りませんでしたが、今回の 6.5.4 は、そのままの状態でビルドが通るようになっています。
前述のとおり、OpenCASCADE をビルドする為に様々な環境変数を利用しています。そのため、adm フォルダ以下にあるソリューションファイル(.sln)またはプロジェクトファイル(.vcproj)をそのまま開いてもビルドする事ができません。
そこで、環境変数を設定して Visual Studio を起動してくれるスクリプト msvc.bat を実行します。
まず、コマンドプロンプトを起動して CASROOT に移動します。
> cd /d E:\opt\occ\654\ros
次に、msvc.bat を引数付きで実行します。
> msvc.bat vc9 win32 Debug
引数の意味は始めから、Visual Studio のバージョン、ビルド対象のプラットフォーム、ビルドの構成の順に指定します。私の環境は Visual Studio 2008 ですので、第1引数に vc9 を指定しています。vc8 が 2005、vc10 が 2010 になります。紛らわしいので注意が必要です。
第2引数には win32 または win64 が指定できます。第3引数は、「d」もしくは「Debug」を指定しないと Release 構成(デバッグシンボルとかがついていないバイナリを生成)になります。
Release 構成でビルドしたバイナリは、セットアップの手順で「Binary Files」を選択しておけば、自前でビルドしなくても最初からインストールされています。今回はデバッグシンボル付きの Debug 構成バージョンが欲しいので、Debug 構成でビルドすることとします。
※以前のバージョンでは、Visual Studio のインストールパス(デフォルトで C:\Program Files 以下)に空白文字が入っていると、msvc.bat から起動できないという致命的なバグがありましたが、本バージョンでは修正されているようです。
Visual Studio が起動したら、OCCT.sln というソリューションファイルが開かれていることを確認します。このソリューションファイルの実体は %CASROOT%\adm\msvc\vc9\OCCT.sln です。このソリューションには、OpenCASCADEの全67プロジェクトが属していますので、あとは「ソリューションをビルド」するだけでOKです。フルビルドには結構時間がかかりますので、お茶でも呑みながらまったり待ちます。
5. 確認
エラーが発生せずに、すべてのビルドが完了したら成功です。ビルドの成果物は、%CASROOT%\win32\vc9 以下に出力されます。
bin ... Release ビルドのバイナリファイル(*.dll;*.exe) bind ... Debug ビルドのバイナリファイル(*.dll;*.exe)とデバッグシンボル(*.pdb) lib ... Release ビルドのライブラリファイル(*.lib) libd ... Debug ビルドのライブラリファイル(*.lib) objd ... Debug ビルドの中間オブジェクトファイル、不要なので削除可。
bind や libd など、末尾に d がついているフォルダは Debug ビルドを意味しています。
OpenCASCADE を用いたアプリケーションを開発するには、インクルードパスに %CASROOT%\inc を、ライブラリパスに %CASROOT%\win32\vc9\lib または libd を追加すればOKです。また、そのアプリケーションを実行するには、%CASROOT%\win32\vc9\bin または bind に PATH を通します。さらに OpenCASCADE が利用しているサードパーティ製のライブラリ(%CASROOT%..\3rdparty 以下のフォルダ)のバイナリファイルがあるフォルダにも PATH を通す必要があります。
[…] Windows における OpenCASCADE は、標準ビルド環境が Microsoft Visual Studio のソリューションファイルとして提供されている為、前項のような開発者の環境に合わせた条件付きコンパイルがやりづらくなっています。基本的な手順は、6.5.4 の手順と変わりません。 […]