本プログラムは、以下のコンパイラを使って開発している。
- Microsoft Visual C++ 6.0 Service Pack 5
本プログラムは、以下のライブラリを使って開発している。
- Boost C++ Library Version 1.28.0
- SDL(Simple DirectMedia Layer) Version 1.26.0
- SDL_image Version 1.2.3
- SDL_mixer Version 1.2.5
- SDL_ttf Version 2.0.6
- GLUT(OpenGL Utility Toolkit) for Win32 Version 3.7.6
- ICU(International Components for Unicode) 2.4
- Xerces-C++ version 2.3.0
- Xalan-C++ version 1.6.0
- ANTLR 2.7.0
ソースコードをコンパイルするためには、 以上のライブラリをセットアップしておくことが必須条件である。 以上のライブラリ環境において、本プログラムはエラー及び警告を一切出さずにコンパイルできる。 ただし、一部のライブラリはデフォルトのままではなく、 コンパイルオプションを変更してコンパイルしたものを用いる。そのことに関しては後述する。
また、開発支援として使用しているライブラリを以下に示す。
cppunit-xはコードのテストを支援するライブラリで、 testsディレクトリ以下に含まれるテストコードを実行するために必要なものである。 テストを実行しないのであれば以上のライブラリを設定する必要は必ずしも無い。
さらに、開発支援として使用しているツール群を以下に示す。
Doxygenはソースコードからドキュメントを生成するためのツールで、 Doxyfileというファイルがその設定ファイルである。 Inno Setupはインストーラ作成ツールで、Setup.issというファイルがその設定ファイルである。
デフォルトのプロジェクトの設定では、 使用するランタイムライブラリが通常シングルスレッドであるが、 SDLを使用する場合には使用するランタイムライブラリをマルチスレッドに設定する必要がある。 この設定はビルド時にリンクされるライブラリも同様であり、 ANTLRとcppunit-xをSDLと一緒に使用するためには、 プロジェクトの設定を変更してビルドしたものを使用する必要がある。 必要な変更は以下の通りである。
- デバックモード
- プロジェクトの設定 → C/C++ → カテゴリ:コード生成
- プロジェクトの設定 → ライブラリ
- リリースモード
- プロジェクトの設定 → C/C++ → カテゴリ:コード生成
- プロジェクトの設定 → ライブラリ
使用するランタイムライブラリ:マルチスレッド(DLL、デバック)
出力ファイル名:antlrD.lib, cppunitD.lib
使用するランタイムライブラリ:マルチスレッド(DLL)
出力ファイル名:antlr.lib, cppunit.lib
以上の設定によって得られたライブラリを、 VC++のパスの通ったディレクトリに置いておくことで正常にビルドが成功する。
source.zipをダウンロードして解凍すると、 プレゼンテーションシステムのソースコードが展開される。 プレゼンテーションシステムは、メインプログラムと6つのモジュールからなる。 それぞれのモジュールはディレクトリによって分けられているため、 コードがどのように配置されているかを知ることは、 開発をどのように行っていけばいいかの一つの指針となる。 ここでは、各ディレクトリの役割とそこに配置されている重要なファイルについて説明する。
プレゼンテーションシステムのルートディレクトリである。 このディレクトリに存在する重要なファイルを以下に示す。
- /Doxyfile, /my-header.html
ドキュメント生成の設定ファイル(要Doxygen)
このディレクトリは初期状態では存在しない。 ここにはコンパイル後の実行ファイルが格納される。 コンパイル後、このディレクトリに配置される重要なファイルを以下に示す。
- BlueRibbon.exe
- Setup.iss
プレゼンテーションプログラムの実行ファイル
インストーラー生成の設定ファイル(要Inno Setup)
このディレクトリは初期状態では存在しない。 ここにはDoxygenによって生成されたドキュメントが格納される。
このディレクトリは初期状態では存在しない。 ここにはコンパイル後のモジュールのライブラリファイルが格納される。
このディレクトリにはプレゼンテーションシステムを構築するために必要なプロジェクト・ソースコードが含まれている。
プレゼンテーションシステムをビルドするためのVC++ 6.0用のワークスペース及びメインプログラムが含まれている。 このディレクトリに存在する重要なファイルを以下に示す。
- BlueRibbon.dsw
- attachment/
プレゼンテーションシステムをビルドするためのVC++ 6.0用のワークスペース
プレゼンテーションシステムに必要な付属ファイルが格納されているディレクトリ。 プレゼンテーションシステムをビルド後、そのまま/bin/BlueRibbonディレクトリ内に配置される。
数式を計算するためのモジュールのソースコードが含まれている。
SDLによるアプリケーションフレームワークモジュールのソースコードが含まれている。
プレゼンテーションモジュールのソースコードが含まれている。 このディレクトリはさらに役割ごとにサブディレクトリが作られている。 各サブディレクトリの役割を以下に示す。
- attribute/
- component/
- effect/
- layout/
- parser/
コンポーネントの属性に関するクラス群のソースコードが含まれている。
プレゼンテーション上に配置されるコンポーネントに関するクラス群のソースコードが含まれている。
特殊効果に関するクラス群のソースコードが含まれている。
レイアウトに関するクラス群のソースコードが含まれている。
XMLからプレゼンテーションを読み込むためのソースコードが含まれている。
プレゼンテーションシステムの基本的な機能を追加したい場合には、 該当するディレクトリに配置されたソースコードの修正もしくは新しいクラスの追加を行うことになる。
テンプレートを使った汎用的なサポートモジュールのソースコードが含まれている。
SDL・OpenGLをサポートするモジュールのソースコードが含まれている。
Xerces-C++, Xalan-C++をサポートするモジュールのソースコードが含まれている。