相対ワークエリア

相対サブプロジェクトは、別のプロジェクトによって使用される場合、親プロジェクトのワークエリア内にサブディレクトリーであるかのように存在します。これは、パフォーマンス上の理由でコードを複数のサブプロジェクトに構成しなければならない場合や、makefile またはツールが相対パスを使用するように作成されている場合に便利です。

以下の例は、前述の例に示されているのと同じプロジェクトのワークエリアを示しています。ただし、bar-1 サブプロジェクトが絶対サブプロジェクトではなく相対サブプロジェクトである点は異なります。

For Windows 以下の出力は、Windows のワークエリアを示しています。
c:¥ccm_wa¥ccm_tools
    foo-1¥
        foo¥
            a.c
            b.c
            bar¥
                c.c
For UNIX 以下の出力は、UNIX のワークエリアを示しています。
/users/joe/ccm_wa/ccm_tools
    foo-1¥
        foo¥
            a.c
            b.c
            bar¥
                c.c

相対サブプロジェクトは親プロジェクトのワークエリアに存在し、同期可能な場所が 1 つのみであるため、相対サブプロジェクトをサブプロジェクトとして使用できるのは 1 回のみです。 相対プロジェクトを複数の場所で使用する場合は、そのプロジェクトの複数のバージョンを使用する必要があります。

Windows と UNIX の両方のクライアント上のプロジェクトは、作成時にデフォルトで絶対プロジェクトになります。プロジェクトの新バージョンをチェックアウトする場合、新バージョンのワークエリアが相対ワークエリアになるのは、相対プロジェクトからチェックアウトする場合のみです。相対プロジェクトからチェックアウトしない場合は、絶対ワークエリアになります。

プロジェクト階層内の makefile が相対パスを介してサブプロジェクトのメンバーを参照する場合 (サブプロジェクトをサブディレクトリーであるかのように扱う場合)、またはサブプロジェクト・ディレクトリーへのシンボリック・リンクを使用できない場合は、プロジェクトを相対プロジェクトのままにしておく必要があります。プロジェクト階層内の makefile がサブプロジェクトのメンバーを参照する場合 (サブプロジェクトがまったく関連のないディレクトリー構造に存在するかのように扱う場合) は、サブプロジェクトを絶対サブプロジェクトにすることができます。

makefile を変更して、絶対プロジェクトまたは相対プロジェクトを扱うようにするか、これらの組み合わせを扱うようにすることができます。あるいは、既存の makefile がワークエリアのディレクトリー構造を認識できるように、サブプロジェクトを絶対サブプロジェクトまたは相対サブプロジェクトとしてセットアップすることができます。


フィードバック