複数のツールセットからICUを使う

今日も引き続きビルド環境の整備中です。
Boost.RegexにはICUを使うオプションがあるのですが、ツールセット毎に設定を行えるわけではないので困ります。
そこでこれを無理やりカスタマイズする方法を考えました。
以下はVC7.1用のビルド済みICUをC:\tools\icu-3_6に、VC8用に独自にビルドしたものをC:\tools\icu-3_6-vc8にインストールした場合のsite-config.jamの例です。

# モジュールをプロジェクトにする
import project ;
project.initialize $(__name__) ;
project site-config ;

# check-icu-configルールのチェックを回避するため
constant gICU_CONFIG_CHECKED : true ;
constant gHAS_ICU : true ;
# 外部から操作可能な変数はこれのみ
constant ICU_EXTRA_SOURCE : /site-config//icucore /site-config//icuin ;

# VC7.1

alias icu_base
    :
    :
    <toolset>msvc
    <toolset-msvc:version>7.1
    :
    :
    <include>C:/tools/icu-3_6/include
    <library-path>C:/tools/icu-3_6/lib
    ;

lib icucore
    :
    icu_base
    :
    <toolset>msvc
    <toolset-msvc:version>7.1
    <name>icuuc
    ;

lib icuin
    :
    icu_base
    :
    <toolset>msvc
    <toolset-msvc:version>7.1
    <name>icuin
    ;

# VC8
# DLLの名前が重複すると実行時に困るのでvc8-〜に改名

alias icu_base
    :
    :
    <toolset>msvc
    <toolset-msvc:version>8.0
    :
    :
    <include>C:/tools/icu-3_6-vc8/include
    <library-path>C:/tools/icu-3_6-vc8/lib
    ;

lib icucore
    :
    icu_base
    :
    <toolset>msvc
    <toolset-msvc:version>8.0
    <variant>debug:<name>vc8-icuucd
    <variant>release:<name>vc8-icuuc
    ;

lib icuin
    :
    icu_base
    :
    <toolset>msvc
    <toolset-msvc:version>8.0
    <variant>debug:<name>vc8-icuind
    <variant>release:<name>vc8-icuin
    ;

あとはパスの通ったディレクトリにそれぞれのDLLを置いておけばOKです。