親イシュー: #29
依存: #30 (P0) ✅ 解消済み(2026-05-13 #39 でClose)
概要
現在各プロトコルの CMakeLists.txt は数百行に及び、add_definitions(...) (非推奨)が合計182箇所、file(GLOB) によるソース列挙、プロトコル固有の if/else ブロックなどが散在している。ccbench_add_protocol() 関数を導入することで、各プロトコルのCMake記述を数行になる。
やること
# 使用例
ccbench_add_protocol(silo
SOURCES silo.cc transaction.cc
WORKLOADS ycsb tpcc bomb sbomb
OPTIONS WAL=0 BACK_OFF=1
)
完了条件
- 各プロトコルの
CMakeLists.txt が10〜20行程度になること
add_definitions(...) が0箇所になること
- 全プロトコルのビルドが通ること
- CI が通ること
備考
- P2(per-protocolボイラープレート統合)およびP5(プロトコルジェネレータ)の前提となるタスク
親イシュー: #29
依存: #30 (P0)✅ 解消済み(2026-05-13 #39 でClose)概要
現在各プロトコルの
CMakeLists.txtは数百行に及び、add_definitions(...)(非推奨)が合計182箇所、file(GLOB)によるソース列挙、プロトコル固有のif/elseブロックなどが散在している。ccbench_add_protocol()関数を導入することで、各プロトコルのCMake記述を数行になる。やること
cmake/ProtocolHelpers.cmakeにccbench_add_protocol()関数を定義するadd_executable、target_link_libraries(... ccbench_common)、target_compile_definitionsを自動生成するcmake/Options.cmakeを作成し、CCBENCH_KEY_SIZE、CCBENCH_BACK_OFF等の共通オプションを集約する(現在の182箇所のadd_definitions(...)を置き換える)target_compile_definitions(... PRIVATE ...)への移行(ディレクトリスコープからターゲットスコープへ)CMakeLists.txtを新関数で書き直すccbench_add_protocol()の定義から自動生成できるようにする(README.md / CLAUDE.md の手動同期を容易にする)完了条件
CMakeLists.txtが10〜20行程度になることadd_definitions(...)が0箇所になること備考