複数のツールセットから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です。