Gears/Gearsの中心的なプロジェクトparallel_executionの入門
# 例題を追加したい
parallel_executionの例題はCMakeでビルドされている。
新しい例題(プロジェクト)を追加したい場合は、CMakeLists.txtに追記する必要がある。
# CMakeLists.txtへの追記
ファイル末尾に次のような記述をする。
|
|
GearsCommandはCMakeのマクロであり、ここにターゲット名と必要なソースを列挙することでビルド対象に加わる。
マクロの意味は次の通り。
TARGET- プロジェクトの名前。
make sampleなどでビルド出来るようになり、生成されたバイナリの名前にもなる
- プロジェクトの名前。
SOURCES- プロジェクトに含める
.cbcや.cなどのCファイル - ヘッダはここに含めない
- プロジェクトに含める
# 必ずいれないといけないCbCのソース
ContextやTaskManager関連の操作で必須となる
TaskManagerImpl.cbcCPUWorker.cbcSynchronizedQueue.cbcAtomicReference.cbc
# プロジェクトを始める
examplesの下にディレクトリを作成し、その中にmain.cbcを置く
- 別に
main.cbcである必要は無いけれど、わかりやすい - 他の
.cbcもそのディレクトリ中に置く- Gears全体に関わるものはトップディレクトリ(
CMakeLists.txtがあるディレクトリ)に置く
- Gears全体に関わるものはトップディレクトリ(
# Interfaceを書く
Interfaceを使いたい場合は(当然だけど)型定義から始める必要がある
- context.hへは自動で付け加えられる
生成用のPerlスクリプトがあるので、それを使うと最低限の雛形が生成される
perl tools/static_gen_header.pl --interface ExampleInterface-wをつけるとファイル生成してくれる-oの後にファイル名とパスを指定できる- static_gen_header.plが置いてある場所はプロジェクトごととかで異なるので頑張って探す
Interfaceの詳しい書き方はInterface入門を見ること
# Interfaceの実装の型
生成用のPerlスクリプトがあるので、それを使うと(ry
perl tools/static_gen_header.pl --interface ExampleInterface --impl ExampleInterfaceImpl-wをつけるとファイル生成してくれる-oの後にファイル名とパスを指定できる- static_gen_header.plが置いてある場所はプロジェクトごととかで異なるので頑張って探す
# 実装のcbcを作る
生成用のPerlスクリプトがあるのd(ry
perl tools/trans_impl.pl examples/sample/ExampleInterfaceImpl.h- 実装のヘッダファイルを入力する
- オプションは
trans_implと同じ様な世界観