IMPORT_MODULE

ようやく考えがまとまってきたので、小物から実装し始めました。
今日の成果物
ほとんどオリジナルと似たものになっています。


さて、今日のbjam豆知識はIMPORT_MODULEルールです。
これはIMPORTモジュールと違い、モジュール中のルールを全てインポートするものですが、個々のルールを個別にインポートするわけではなく、「モジュール名.ルール名」の形式でアクセスできるようにするものです。
なので、

module test
{
    rule hello ( )
    {
        ECHO hello ;
    }
}

# 現在のモジュールにモジュールtestをインポート
IMPORT_MODULE test : $(__name__);

test.hello ; # OK: 「hello」を出力

module test
{
    rule hello2 ( )
    {
        ECHO hello2 ;
    }
}

test.hello2 ; # OK: 「hello2」を出力

のようにIMPORT_MODULEの後で追加したルールにもアクセスできます。
内部的にはIMPORT_MODULEしたモジュールの名前だけが記録されていて、IMPORTED_MODULESルールで一覧を取得することもできます。
まぁ、やはり普通はこんなことしないと思いますけど。