他のプロジェクトのターゲットを引っ張ってきてごにょごにょ

結局,よそから引っ張ってきたターゲットについて細かいことをしたいときには alias を1段挟むのが一番妥当な気がしてきた.

use-project /boost : path-to-boost ;

# toolset が msvc の場合の boost_filesystem に対する alias
alias
    boost_filesystem
  : /boost/filesystem//boost_filesystem/<link>shared/<cxxflags>"/Zc:wchar_t"
  : <toolset>msvc
  : # no default build
  : <define>BOOST_FILESYSTEM_DYN_LINK=1
    <runtime-link>shared
  ;

# toolset がそれ以外の場合の boost_filesystem に対する alias
alias
    boost_filesystem
  : /boost/filesystem//boost_filesystem/<link>shared
  : # no requirement
  : # no default build
  : <define>BOOST_FILESYSTEM_DYN_LINK=1
    <runtime-link>shared
  ;

# 陽に指定されない限り,boost_filesystem はビルド対象から外す
explicit boost_filesystem ;

# 各ビルド対象にライブラリを指定するのが面倒なら <library> で
# プロジェクトの requirements に指定してしまう.
project boost_filesystem_native_file_name
  : requirements
    <runtime-link>shared
    <define>BOOST_ALL_NO_LIB=1
    <library>boost_filesystem
  ;