bjam_win その7

Boost 1.34でも無事に動くようになったので、機能追加です。
昨日実装したexe/libに加え、testing.jamで定義される、

  • compile
  • compile-fail
  • link
  • link-fail
  • run
  • run-fail

に対応しました。
テストのソースファイル名が「hoge.cpp」なら「hoge.test」がターゲット名になります。(←今日、気付いた)
(4/19 追記) ↑勘違い。ターゲット名は拡張子なしの「hoge」でした。


現在の実装では、ルール名にマッチするものを抽出しているだけなので、

rule test-with-bzip2 ( sources * : requirements * ) {
    return [
            run $(sources)
            :
            :
            :
            <library>/boost/iostreams//boost_iostreams
            <link>shared:<define>BOOST_IOSTREAMS_DYN_LINK=1
            $(requirements)
    ] ;
}

のように独自ルールを使っている場合は正しくターゲット名を取得できません。
まじめに処理を追っていくのは厳しいですが、testとかrunとかを含むルールを全てテスト用とみなせば、お手軽に対応できそうな気はします。
Windows VistaUACみたいでイヤな仕様ですが。