BBv1とBBv2

今日はドキュメント書きしかしてないので、引き続きBoostBuildネタを。
BBv1を採用していたHamigakiライブラリですが、ドキュメントにBootBookを採用するにあたり、BBv2を混在させることになりました。Boostパッケージもv1/v2混在の状態なので、まずこれが何をしているのか調べてみました。
BoostでBBv2を使用する場合はbjamに--v2オプションを付けることになっています。このオプションはboost-build.jamの動作に影響を及ぼします。

#~ Copyright (C) 2002-2003, David Abrahams.
#~ Copyright (C) 2002-2003, Vladimir Prus.
#~ Copyright (C) 2003, Rene Rivera.
#~ Use, modification and distribution are subject to the
#~ Boost Software License, Version 1.0. (See accompanying file
#~ LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

BOOST_ROOT = $(.boost-build-file:D) ;
if --v2 in $(ARGV)
{
    JAMFILE = [Jj]amfile.v2 ;
    boost-build tools/build/v2 ;
}
else
{
    boost-build tools/build/v1 ;
}    

要するに、bjamに--v2というオプションがあるのではなく、boost-build.jamで引数を見て場合分けしているだけです。boost-build.jamの読み込みはbjamに組み込まれているJambaseファイルで行われています。これによるとboost-build.jamのサーチは、

  1. カレントディレクト
  2. 環境変数BOOST_BUILD_PATH
  3. 環境変数BOOST_ROOT

の順です。
Hamigakiライブラリではドキュメント以外にBBv2を使っていないので、docディレクトリに専用のboost-build.jamを置いて、BBv2に切り替えることにしました。なので、ドキュメントを作成する場合は、docディレクトリで、

bjam

とするだけでOKです。(--v2はいらない)
Jamfileも拡張子.v2を付ける必要はないんですが、なんとなく付けてます。